An Ed25519 note signer: a key name and private key, with the key ID computed per the C2SP signed-note recommendation.
Signers are created from an existing 32-byte Ed25519 seed with
from_ed25519_seed/2 or freshly with generate/1. The corresponding
SignedNote.Verifier comes from verifier/1.
Summary
Functions
Builds a signer from a key name and a 32-byte Ed25519 private-key seed (RFC 8032).
Parses the reference implementation's private-key encoding
Generates a new Ed25519 signer under name.
Renders this signer in the reference implementation's private-key encoding.
The verifier for this signer's public key.
Types
@type t() :: %SignedNote.Signer{ key_id: <<_::4*8>>, name: String.t(), public_key: <<_::32*8>>, seed: <<_::32*8>> }
An Ed25519 signer: key name, 4-byte key ID, seed and public key.
Functions
@spec from_ed25519_seed(String.t(), <<_::32*8>>) :: {:ok, t()} | {:error, SignedNote.Error.t()}
Builds a signer from a key name and a 32-byte Ed25519 private-key seed (RFC 8032).
@spec from_string(String.t()) :: {:ok, t()} | {:error, SignedNote.Error.t()}
Parses the reference implementation's private-key encoding:
PRIVATE+KEY+<name>+<hex key ID>+<base64(0x01 || seed)>The embedded key ID must match the ID computed from the name and the seed's public key.
@spec generate(String.t()) :: {:ok, t()} | {:error, SignedNote.Error.t()}
Generates a new Ed25519 signer under name.
Renders this signer in the reference implementation's private-key encoding.
@spec verifier(t()) :: SignedNote.Verifier.t()
The verifier for this signer's public key.