go1.20.5
GoThrough

ed25519.PrivateKeySize

// PrivateKeySize is the size, in bytes, of private keys as used in this package. const PrivateKeySize = 64

ed25519.PublicKeySize

// PublicKeySize is the size, in bytes, of public keys as used in this package. const PublicKeySize = 32

ed25519.SeedSize

// SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. const SeedSize = 32

ed25519.SignatureSize

// SignatureSize is the size, in bytes, of signatures generated and verified by this package. const SignatureSize = 64

ed25519.GenerateKey

// GenerateKey generates a public/private key pair using entropy from rand. // If rand is nil, [crypto/rand.Reader] will be used. func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error)

ed25519.NewKeyFromSeed

// NewKeyFromSeed calculates a private key from a seed. It will panic if // len(seed) is not [SeedSize]. This function is provided for interoperability // with RFC 8032. RFC 8032's private keys correspond to seeds in this // package. func NewKeyFromSeed(seed []byte) PrivateKey

ed25519.Sign

// Sign signs the message with privateKey and returns a signature. It will // panic if len(privateKey) is not [PrivateKeySize]. func Sign(privateKey PrivateKey, message []byte) []byte

ed25519.Verify

// Verify reports whether sig is a valid signature of message by publicKey. It // will panic if len(publicKey) is not [PublicKeySize]. func Verify(publicKey PublicKey, message []byte, sig []byte) bool

ed25519.VerifyWithOptions

// VerifyWithOptions reports whether sig is a valid signature of message by // publicKey. A valid signature is indicated by returning a nil error. It will // panic if len(publicKey) is not [PublicKeySize]. // // If opts.Hash is [crypto.SHA512], the pre-hashed variant Ed25519ph is used and // message is expected to be a SHA-512 hash, otherwise opts.Hash must be // [crypto.Hash](0) and the message must not be hashed, as Ed25519 performs two // passes over messages to be signed. func VerifyWithOptions(publicKey PublicKey, message []byte, sig []byte, opts *Options) error