Crate signature_bls[][src]

Expand description

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

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

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

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

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

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

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

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

Represents a BLS partial signature in G2 using the proof of possession scheme

A proof of possession of the secret key

A proof of possession of the secret key

A BLS public key

A BLS public key

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

A secret key share is field element 0 < x < r where r is the curve order. See Section 4.3 in https://eprint.iacr.org/2016/663.pdf Must be combined with other secret key shares to produce the completed key, or used for creating partial signatures which can be combined into a complete signature

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

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

Enums

Errors during secret sharing