Documentation ¶
Index ¶
- Constants
- func AggregateCompressedSignatures(multiSigs [][]byte) (common.Signature, error)
- func AggregateSignatures(sigs []common.Signature) common.Signature
- func NewAggregateSignature() common.Signature
- func RandKey() (common.SecretKey, error)
- func UnaggregatedSignatures(sigs []common.Signature) []byte
- func VerifyMultipleSignatures(sigs [][]byte, msgs [][32]byte, pubKeys [][]common.PublicKey) (bool, error)
- func VerifySignature(sig []byte, msg [32]byte, pubKey common.PublicKey) (bool, error)
- type DilithiumKey
- type PublicKey
- type Signature
- type SignatureBatch
- func (s *SignatureBatch) AggregateBatch() (*SignatureBatch, error)
- func (s *SignatureBatch) Copy() *SignatureBatch
- func (s *SignatureBatch) Join(set *SignatureBatch) *SignatureBatch
- func (s *SignatureBatch) RemoveDuplicates() (int, *SignatureBatch, error)
- func (s *SignatureBatch) Verify() (bool, error)
- func (s *SignatureBatch) VerifyVerbosely() (bool, error)
Constants ¶
const AggregatedSignature = "dilithium aggregated signature"
AggregatedSignature represents aggregated signature produced by AggregateBatch()
Variables ¶
This section is empty.
Functions ¶
func NewAggregateSignature ¶
func UnaggregatedSignatures ¶
Types ¶
type DilithiumKey ¶
DilithiumKey represents a BLS secret or private key.
func SecretKeyFromBytes ¶
func SecretKeyFromBytes(seed []byte) (DilithiumKey, error)
TODO (cyyber): Rename SecretKeyFromBytes to SecretKeyFromSeed
type PublicKey ¶
PublicKey represents a BLS public key.
func AggregatePublicKeys ¶
func PublicKeyFromBytes ¶
type Signature ¶
Signature represents a BLS signature.
func SignatureFromBytes ¶
type SignatureBatch ¶
type SignatureBatch struct { Signatures [][]byte PublicKeys [][]PublicKey Messages [][32]byte Descriptions []string }
SignatureBatch refers to the defined set of signatures and its respective public keys and messages required to verify it.
func (*SignatureBatch) AggregateBatch ¶
func (s *SignatureBatch) AggregateBatch() (*SignatureBatch, error)
AggregateBatch aggregates common messages in the provided batch to reduce the number of pairings required when we finally verify the whole batch.
func (*SignatureBatch) Copy ¶
func (s *SignatureBatch) Copy() *SignatureBatch
Copy the attached signature batch and return it to the caller.
func (*SignatureBatch) Join ¶
func (s *SignatureBatch) Join(set *SignatureBatch) *SignatureBatch
Join merges the provided signature batch to out current one.
func (*SignatureBatch) RemoveDuplicates ¶
func (s *SignatureBatch) RemoveDuplicates() (int, *SignatureBatch, error)
RemoveDuplicates removes duplicate signature sets from the signature batch.
func (*SignatureBatch) Verify ¶
func (s *SignatureBatch) Verify() (bool, error)
Verify the current signature batch using the batch verify algorithm.
func (*SignatureBatch) VerifyVerbosely ¶
func (s *SignatureBatch) VerifyVerbosely() (bool, error)
VerifyVerbosely verifies signatures as a whole at first, if fails, fallback to verify each single signature to identify invalid ones.