Crate ockam_signature_bls[][src]

This crate implements BLS signatures according to the IETF draft v4

for the Proof of Possession Cipher Suite

Since BLS signatures can use either G1 or G2 fields, there are two types of public keys and signatures. Normal and Variant (suffix’d with Vt).

Normal puts signatures in G1 and pubic keys in G2. Variant is the reverse.

This crate has been designed to be compliant with no-std by avoiding allocations

but provides some optimizations when an allocator exists for verifying aggregated signatures.

Structs

AggregateSignature

Represents a BLS signature in G1 for multiple signatures that signed the different messages

AggregateSignatureVt

Represents a BLS signature in G1 for multiple signatures that signed the different messages

MultiPublicKey

Represents multiple public keys into one that can be used to verify multisignatures

MultiPublicKeyVt

Represents multiple public keys into one that can be used to verify multisignatures

MultiSignature

Represents a BLS signature in G1 for multiple signatures that signed the same message

MultiSignatureVt

Represents a BLS SignatureVt in G1 for multiple SignatureVts that signed the same message

ProofOfPossession

A proof of possession of the secret key

ProofOfPossessionVt

A proof of possession of the secret key

PublicKey

A BLS public key

PublicKeyVt

A BLS public key

SecretKey

The secret key is field element 0 < x < r where r is the curve order. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf

Signature

Represents a BLS signature in G1 using the proof of possession scheme

SignatureVt

Represents a BLS SignatureVt in G1 using the proof of possession scheme