Documentation
¶
Index ¶
- Constants
- Variables
- func AggregatePublicKeyToBytes(apk *AggregatePublicKey) []byte
- func AggregateSignatureToBytes(asig *AggregateSignature) []byte
- func PublicKeyBytes(pk *PublicKey) []byte
- func PublicKeyToCompressedBytes(pk *PublicKey) []byte
- func PublicKeyToUncompressedBytes(key *PublicKey) []byte
- func SecretKeyToBytes(sk *SecretKey) []byte
- func SignatureToBytes(sig *Signature) []byte
- func Verify(pk *PublicKey, sig *Signature, msg []byte) bool
- func VerifyAggregate(apk *AggregatePublicKey, asig *AggregateSignature, msg []byte) bool
- func VerifyAggregateProofOfPossession(apk *AggregatePublicKey, asig *AggregateSignature, msg []byte) bool
- func VerifyProofOfPossession(pk *PublicKey, sig *Signature, msg []byte) bool
- type AggregatePublicKey
- type AggregateSignature
- type Ciphersuite
- type PublicKey
- type SecretKey
- type Signature
- type Signer
Constants ¶
const ( SecretKeyLen = 32 PublicKeyLen = 48 // Compressed G1 point SignatureLen = 96 // Compressed G2 point )
Variables ¶
var ( ErrNoPublicKeys = errors.New("no public keys") ErrFailedPublicKeyDecompress = errors.New("couldn't decompress public key") ErrInvalidPublicKey = errors.New("invalid public key") ErrFailedPublicKeyAggregation = errors.New("couldn't aggregate public keys") ErrFailedSignatureDecompress = errors.New("couldn't decompress signature") ErrInvalidSignature = errors.New("invalid signature") ErrNoSignatures = errors.New("no signatures") ErrFailedSignatureAggregation = errors.New("couldn't aggregate signatures") ErrFailedSecretKeyDeserialize = errors.New("couldn't deserialize secret key") )
Functions ¶
func AggregatePublicKeyToBytes ¶ added in v1.1.2
func AggregatePublicKeyToBytes(apk *AggregatePublicKey) []byte
AggregatePublicKeyToBytes converts an aggregate public key to bytes
func AggregateSignatureToBytes ¶ added in v1.1.2
func AggregateSignatureToBytes(asig *AggregateSignature) []byte
AggregateSignatureToBytes converts an aggregate signature to bytes
func PublicKeyBytes ¶ added in v1.1.2
PublicKeyBytes is a helper that returns the compressed bytes of a public key
func PublicKeyToCompressedBytes ¶
PublicKeyToCompressedBytes returns the compressed big-endian format of the public key.
func PublicKeyToUncompressedBytes ¶
PublicKeyToUncompressedBytes returns the uncompressed big-endian format of the public key.
func SecretKeyToBytes ¶ added in v0.1.3
SecretKeyToBytes returns the big-endian format of the secret key.
func SignatureToBytes ¶
SignatureToBytes returns the compressed big-endian format of the signature.
func VerifyAggregate ¶ added in v1.1.2
func VerifyAggregate(apk *AggregatePublicKey, asig *AggregateSignature, msg []byte) bool
VerifyAggregate verifies an aggregate signature
func VerifyAggregateProofOfPossession ¶ added in v1.1.2
func VerifyAggregateProofOfPossession(apk *AggregatePublicKey, asig *AggregateSignature, msg []byte) bool
VerifyAggregateProofOfPossession verifies an aggregate proof of possession
Types ¶
type AggregatePublicKey ¶
type AggregatePublicKey = PublicKey
Types wrapping the blst BLS types
func AggregatePublicKeyFromBytes ¶ added in v1.1.2
func AggregatePublicKeyFromBytes(pkBytes []byte) (*AggregatePublicKey, error)
AggregatePublicKeyFromBytes converts bytes to an aggregate public key
type AggregateSignature ¶
type AggregateSignature = Signature
Types wrapping the blst BLS types
func AggregateSignatureFromBytes ¶ added in v1.1.2
func AggregateSignatureFromBytes(sigBytes []byte) (*AggregateSignature, error)
AggregateSignatureFromBytes converts bytes to an aggregate signature
type Ciphersuite ¶
type Ciphersuite int
const ( CiphersuiteSignature Ciphersuite = iota CiphersuiteProofOfPossession )
func (Ciphersuite) Bytes ¶
func (c Ciphersuite) Bytes() []byte
func (Ciphersuite) String ¶
func (c Ciphersuite) String() string
type PublicKey ¶
type PublicKey struct {
// contains filtered or unexported fields
}
Types wrapping the blst BLS types
func AggregatePublicKeys ¶
AggregatePublicKeys aggregates a non-zero number of public keys into a single aggregated public key.
func PublicFromSecretKey ¶ added in v1.1.2
PublicFromSecretKey returns the public key associated with sk
func PublicKeyFromCompressedBytes ¶
PublicKeyFromCompressedBytes parses the compressed big-endian format of the public key into a public key.
func PublicKeyFromValidUncompressedBytes ¶
PublicKeyFromValidUncompressedBytes parses the uncompressed big-endian format of the public key into a public key. It is assumed that the provided bytes are valid.
type SecretKey ¶ added in v0.1.3
type SecretKey struct {
// contains filtered or unexported fields
}
Types wrapping the blst BLS types
func NewSecretKey ¶ added in v0.1.3
NewSecretKey generates a new secret key from the local source of cryptographically secure randomness.
func SecretKeyFromBytes ¶ added in v0.1.3
SecretKeyFromBytes parses the big-endian format of the secret key into a secret key.
func SecretKeyFromSeed ¶ added in v1.17.27
SecretKeyFromSeed derives a secret key from a seed using proper BLS key derivation. The seed is passed through HKDF internally by blst.KeyGen, so any 32+ byte input will produce a valid secret key.
func (*SecretKey) PublicKey ¶ added in v0.1.3
PublicKey returns the public key associated with the secret key.
type Signature ¶
type Signature struct {
// contains filtered or unexported fields
}
Types wrapping the blst BLS types
func AggregateSignatures ¶
AggregateSignatures aggregates a non-zero number of signatures into a single aggregated signature.
func SignProofOfPossession ¶ added in v1.1.2
SignProofOfPossession signs msg to prove ownership of sk
func SignatureFromBytes ¶
SignatureFromBytes parses the compressed big-endian format of the signature into a signature.