Documentation ¶
Overview ¶
Package ed25519 implements the Ed25519 signature algorithm. See https://ed25519.cr.yp.to/.
These functions are also compatible with the “Ed25519” function defined in RFC 8032.
Index ¶
- Constants
- func GenerateKey(rand io.Reader) (publicKey PublicKey, privateKey PrivateKey, err error)
- func GenerateKeyFromD(d [32]byte) (publicKey PublicKey, privateKey PrivateKey, err error)
- func IsValidPrivateKey(priv PrivateKey) bool
- func Sign(privateKey PrivateKey, message []byte) []byte
- func Verify(publicKey PublicKey, message, sig []byte) bool
- func VerifySig(publicKey PublicKey, message, sig []byte) error
- type PrivateKey
- func (priv PrivateKey) Clear()
- func (priv PrivateKey) Hex() string
- func (priv PrivateKey) PubByte() []byte
- func (priv PrivateKey) Public() crypto.PublicKey
- func (priv PrivateKey) Sign(rand io.Reader, message []byte, opts crypto.SignerOpts) (signature []byte, err error)
- func (priv PrivateKey) ToX25519Sk() []byte
- type PublicKey
Constants ¶
const ( // PublicKeySize is the size, in bytes, of public keys as used in this package. PublicKeySize = 32 // PrivateKeySize is the size, in bytes, of private keys as used in this package. PrivateKeySize = 64 // SignatureSize is the size, in bytes, of signatures generated and verified by this package. SignatureSize = 64 X25519SkSize = 32 )
Variables ¶
This section is empty.
Functions ¶
func GenerateKey ¶
func GenerateKey(rand io.Reader) (publicKey PublicKey, privateKey PrivateKey, err error)
GenerateKey generates chain public/private key pair using entropy from rand. If rand is nil, crypto/rand.Reader will be used.
func GenerateKeyFromD ¶
func GenerateKeyFromD(d [32]byte) (publicKey PublicKey, privateKey PrivateKey, err error)
GenerateKeyFromD generates chain public/private key pair using user given Deterministic value called d
func IsValidPrivateKey ¶
func IsValidPrivateKey(priv PrivateKey) bool
func Sign ¶
func Sign(privateKey PrivateKey, message []byte) []byte
Sign signs the message with privateKey and returns chain signature. It will panic if len(privateKey) is not PrivateKeySize.
Types ¶
type PrivateKey ¶
type PrivateKey []byte
PrivateKey is the type of Ed25519 private keys. It implements crypto.Signer.
func HexToPrivateKey ¶
func HexToPrivateKey(hexstr string) (PrivateKey, error)
func (PrivateKey) Clear ¶
func (priv PrivateKey) Clear()
func (PrivateKey) Hex ¶
func (priv PrivateKey) Hex() string
func (PrivateKey) PubByte ¶
func (priv PrivateKey) PubByte() []byte
Public returns the PublicKey in []byte type corresponding to priv.
func (PrivateKey) Public ¶
func (priv PrivateKey) Public() crypto.PublicKey
Public returns the PublicKey corresponding to priv.
func (PrivateKey) Sign ¶
func (priv PrivateKey) Sign(rand io.Reader, message []byte, opts crypto.SignerOpts) (signature []byte, err error)
Sign signs the given message with priv. Ed25519 performs two passes over messages to be signed and therefore cannot handle pre-hashed messages. Thus opts.HashFunc() must return zero to indicate the message hasn't been hashed. This can be achieved by passing crypto.Hash(0) as the value for opts.
func (PrivateKey) ToX25519Sk ¶
func (priv PrivateKey) ToX25519Sk() []byte
Public returns the PublicKey in []byte type corresponding to priv.