Packages
Low-level elixir library to read, write, hash, and sign XDR primitive constructs used in the Stellar network.
Current section
Files
Jump to
Current section
Files
lib/key_pair/default.ex
defmodule StellarBase.KeyPair.Default do
@moduledoc """
Functions for Ed25519 KeyPairs.
"""
alias StellarBase.Ed25519.{PublicKey, SecretSeed}
@behaviour StellarBase.KeyPair.Spec
@impl true
def random do
{secret, public_key} = Ed25519.generate_key_pair()
encoded_public_key = PublicKey.encode!(public_key)
encoded_secret = SecretSeed.encode!(secret)
{encoded_public_key, encoded_secret}
end
@impl true
def from_secret(secret) do
decoded_secret = SecretSeed.decode!(secret)
derived_public_key = Ed25519.derive_public_key(decoded_secret)
encoded_public_key = PublicKey.encode!(derived_public_key)
{encoded_public_key, secret}
end
end