Versions in this module Expand all Collapse all v1 v1.0.1 Oct 21, 2022 Changes in this version + const ChainCodeLength + const MAX_VRF_BYTES + const MiniSecretKeySize + const PublicKeySize + const SecretKeySize + const SignatureSize + const VRFLabel + var ErrDeriveHardKeyType = errors.New("cannot derive hard key type, DerivableKey must be of type SecretKey") + var ErrSignatureNotMarkedSchnorrkel = errors.New("signature is not marked as a schnorrkel signature") + func GenerateKeypair() (*SecretKey, *PublicKey, error) + func GenerateMnemonic() (string, error) + func HexToBytes(in string) ([]byte, error) + func MnemonicToEntropy(mnemonic string) ([]byte, error) + func NewRandomElement() (*r255.Element, error) + func NewRandomScalar() (*r255.Scalar, error) + func NewSigningContext(context, msg []byte) *merlin.Transcript + func ScalarFromBytes(b [32]byte) (*r255.Scalar, error) + func SeedFromMnemonic(mnemonic string, password string) ([64]byte, error) + func SetKusamaVRF(k bool) + func TranscriptWithMalleabilityAddressed(t *merlin.Transcript, pk *PublicKey) *merlin.Transcript + func VerifyBatch(transcripts []*merlin.Transcript, signatures []*Signature, ...) (bool, error) + type BatchVerifier struct + func NewBatchVerifier() *BatchVerifier + func (v *BatchVerifier) Add(t *merlin.Transcript, sig *Signature, pubkey *PublicKey) error + func (v *BatchVerifier) Verify() bool + type DerivableKey interface + Decode func([32]byte) error + DeriveKey func(*merlin.Transcript, [ChainCodeLength]byte) (*ExtendedKey, error) + Encode func() [32]byte + type ExtendedKey struct + func DeriveKeyHard(key DerivableKey, i []byte, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func DeriveKeySimple(key DerivableKey, i []byte, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func DeriveKeySoft(key DerivableKey, i []byte, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func NewExtendedKey(k DerivableKey, cc [ChainCodeLength]byte) *ExtendedKey + func (ek *ExtendedKey) ChainCode() [ChainCodeLength]byte + func (ek *ExtendedKey) DeriveKey(t *merlin.Transcript) (*ExtendedKey, error) + func (ek *ExtendedKey) HardDeriveMiniSecretKey(i []byte) (*ExtendedKey, error) + func (ek *ExtendedKey) Key() DerivableKey + func (ek *ExtendedKey) Public() (*PublicKey, error) + func (ek *ExtendedKey) Secret() (*SecretKey, error) + type Keypair struct + func NewKeypair(pk *PublicKey, sk *SecretKey) *Keypair + func (kp *Keypair) Sign(t *merlin.Transcript) (*Signature, error) + func (kp *Keypair) Verify(s *Signature, t *merlin.Transcript) (bool, error) + func (kp *Keypair) VrfSign(t *merlin.Transcript) (*VrfInOut, *VrfProof, error) + func (kp *Keypair) VrfVerify(t *merlin.Transcript, out *VrfOutput, proof *VrfProof) (bool, error) + type MiniSecretKey struct + func GenerateMiniSecretKey() (*MiniSecretKey, error) + func MiniSecretKeyFromMnemonic(mnemonic string, password string) (*MiniSecretKey, error) + func NewMiniSecretKey(b [64]byte) *MiniSecretKey + func NewMiniSecretKeyFromHex(s string) (*MiniSecretKey, error) + func NewMiniSecretKeyFromRaw(b [MiniSecretKeySize]byte) (*MiniSecretKey, error) + func (mk *MiniSecretKey) DeriveKey(t *merlin.Transcript, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func (mk *MiniSecretKey) HardDeriveMiniSecretKey(i []byte, cc [ChainCodeLength]byte) (*MiniSecretKey, [ChainCodeLength]byte, error) + func (s *MiniSecretKey) Decode(in [MiniSecretKeySize]byte) error + func (s *MiniSecretKey) Encode() [MiniSecretKeySize]byte + func (s *MiniSecretKey) ExpandEd25519() *SecretKey + func (s *MiniSecretKey) ExpandUniform() *SecretKey + func (s *MiniSecretKey) Public() *PublicKey + type PublicKey struct + func NewPublicKey(b [PublicKeySize]byte) (*PublicKey, error) + func NewPublicKeyFromHex(s string) (*PublicKey, error) + func (p *PublicKey) Decode(in [PublicKeySize]byte) error + func (p *PublicKey) Encode() [PublicKeySize]byte + func (p *PublicKey) Verify(s *Signature, t *merlin.Transcript) (bool, error) + func (pk *PublicKey) DeriveKey(t *merlin.Transcript, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func (pk *PublicKey) DeriveScalarAndChaincode(t *merlin.Transcript, cc [ChainCodeLength]byte) (*r255.Scalar, [ChainCodeLength]byte, error) + func (pk *PublicKey) VrfVerify(t *merlin.Transcript, out *VrfOutput, proof *VrfProof) (bool, error) + type SecretKey struct + func NewSecretKey(key [SecretKeySize]byte, nonce [32]byte) *SecretKey + func (s *SecretKey) Decode(in [SecretKeySize]byte) error + func (s *SecretKey) Encode() [SecretKeySize]byte + func (s *SecretKey) Keypair() (*Keypair, error) + func (s *SecretKey) Public() (*PublicKey, error) + func (sk *SecretKey) DeriveKey(t *merlin.Transcript, cc [ChainCodeLength]byte) (*ExtendedKey, error) + func (sk *SecretKey) HardDeriveMiniSecretKey(i []byte, cc [ChainCodeLength]byte) (*MiniSecretKey, [ChainCodeLength]byte, error) + func (sk *SecretKey) Sign(t *merlin.Transcript) (*Signature, error) + func (sk *SecretKey) VrfSign(t *merlin.Transcript) (*VrfInOut, *VrfProof, error) + type Signature struct + func NewSignatureFromHex(s string) (*Signature, error) + func (s *Signature) Decode(in [SignatureSize]byte) error + func (s *Signature) DecodeNotDistinguishedFromEd25519(in [SignatureSize]byte) error + func (s *Signature) Encode() [SignatureSize]byte + type VrfInOut struct + func (io *VrfInOut) Encode() []byte + func (io *VrfInOut) MakeBytes(size int, context []byte) ([]byte, error) + func (io *VrfInOut) Output() *VrfOutput + type VrfOutput struct + func NewOutput(in [32]byte) (*VrfOutput, error) + func (out *VrfOutput) AttachInput(pub *PublicKey, t *merlin.Transcript) (*VrfInOut, error) + func (out *VrfOutput) Decode(in [32]byte) error + func (out *VrfOutput) Encode() [32]byte + type VrfProof struct + func (p *VrfProof) Decode(in [64]byte) error + func (p *VrfProof) Encode() [64]byte