Ed25519 (Ed25519 v1.4.2)
View SourceEd25519 signature functions
This is mostly suitable as part of a pure Elixir solution.
Configuration
No configuration is needed in most cases. However, if needed, a custom hash
function can be configured. As per the specification - sha512
is the default.
config/config.exs
import Config
# The hash function will be invoked as 'Blake2.hash2b(payload, 16)'
config :ed25519,
hash_fn: {Blake2, :hash2b, [], [16]}
# The hash function will be invoked as ':crypto.hash(:sha256, payload)'
config :ed25519,
hash_fn: {:crypto, :hash, [:sha256], []}
Summary
Functions
derive the public signing key from the secret key
Generate a secret/public key pair
Generate a secret/public key pair from supplied secret
Returns whether a given key
lies on the ed25519 curve.
Sign a message
Derive the x25519/curve25519 encryption key from the ed25519 signing key
validate a signed message
Types
Functions
derive the public signing key from the secret key
Generate a secret/public key pair
Returned tuple contains {random_secret_key, derived_public_key}
Generate a secret/public key pair from supplied secret
Returned tuple contains {secret_key, derived_public_key}
Returns whether a given key
lies on the ed25519 curve.
Sign a message
If only the secret key is provided, the public key will be derived therefrom. This adds significant overhead.
Derive the x25519/curve25519 encryption key from the ed25519 signing key
By converting an EdwardsPoint
on the Edwards model to the corresponding MontgomeryPoint
on the Montgomery model
Handles either :secret
or :public
keys as indicated in the call
May raise
on an invalid input key or unknown atom
See: https://blog.filippo.io/using-ed25519-keys-for-encryption
validate a signed message