Expand description
This crate implements BLS signatures according to the latest IETF draft for the proof-of-possession cipher suite.
Because BLS signatures can use either the G1 or G2 group, there are two types of public keys and signatures.
Re-exports§
pub use vsss_rs;
Modules§
- inner_
types - The inner representation types
Structs§
- Bls12381
G1Hasher - The BLS12-381 G1 implementation’s hasher for the G2 public-key group.
- Bls12381
G1Impl - Represents BLS signatures on the BLS12-381 curve with signatures in G1 and public keys in G2; that is, signatures are small and public keys are large.
- Bls12381
G2Hasher - The BLS12-381 G2 implementation’s hasher for the G1 public-key group.
- Bls12381
G2Impl - Represents BLS signatures on the BLS12-381 curve with signatures in G2 and public keys in G1; that is, signatures are large and public keys are small.
- BlsSignature
- A BLS signature implementation
- ElGamal
Ciphertext - An ElGamal ciphertext
- ElGamal
Decryption Key - An ElGamal decryption key, derived from a hidden secret key or combined shares, that can decrypt ciphertexts.
- ElGamal
Decryption Share - An ElGamal decryption share is a point on the curve. It must be combined with other decryption shares to decrypt a ciphertext.
- ElGamal
Proof - A discrete logarithm proof tied to a specific ElGamal ciphertext.
- ElGamal
Proof Data - The ciphertext and response values produced by ElGamal proof generation.
- Inner
Point Share G1 - The share type for points in G1
- Inner
Point Share G2 - The share type for points in G2
- Multi
Public Key - An accumulated public key
- Proof
Commitment Challenge - The proof-of-knowledge challenge value generated by the server in step 2 of the proof-generation process.
- Proof
Commitment Secret - A commitment secret used to create the proof of knowledge.
- Proof
OfKnowledge Timestamp - A timestamp-based signature proof of knowledge.
- Proof
OfPossession - A proof of possession of the secret key
- Public
Key - A BLS public key
- Public
KeyShare - A public key share is a point on the curve.
- Secret
Key - The secret key is a field element
xwhere 0 <x<randris the curve order. See Section 4.3 of https://eprint.iacr.org/2016/663.pdf - Secret
KeyShare - A secret key share is a field element
xwhere 0 <x<randris the curve order. - Sign
Crypt Ciphertext - A signcryption ciphertext.
- Sign
Crypt Ciphertext Parts - Named components produced when sealing a signcryption ciphertext.
- Sign
Crypt Decryption Key - A signcryption decryption key derived from a secret key or combined shares.
- Sign
Decryption Share - A signcryption decryption share is a point on the curve.
- Time
Crypt Ciphertext - A time-lock encryption ciphertext.
- Time
Crypt Ciphertext Parts - Named components produced when sealing a time-lock ciphertext.
- Timestamp
Proof Parts - Named components of a timestamped signature proof.
Enums§
- Aggregate
Signature - A BLS aggregate signature combining signatures over different messages.
- Bls12381
- A convenience wrapper for the two BLS signature implementations that does not require specifying the generics and can be used in trait-object-like situations.
- BlsError
- The error types generated by this library
- Multi
Signature - A BLS multi-signature combining signatures over the same message.
- Proof
Commitment - The commitment portion of the signature proof of knowledge
- Proof
OfKnowledge - A signature proof of knowledge.
- Proof
OfPossession Enum - A proof of possession for either supported BLS12-381 signature group.
- Public
KeyEnum - A public key for either supported BLS12-381 signature group.
- Secret
KeyEnum - A BLS secret key implementation
- Sign
Crypt Ciphertext Enum - Signcryption ciphertext for either supported BLS12-381 signature group.
- Signature
- A BLS signature wrapped in the scheme used to generate it.
- Signature
Enum - A BLS signature for either supported BLS12-381 signature group.
- Signature
Schemes - The BLS signature algorithm schemes
- Signature
Share - Represents a share of a signature.
- Time
Crypt Ciphertext Enum - Time-lock ciphertext for either supported BLS12-381 signature group.
Constants§
- SECRET_
KEY_ BYTES - Number of bytes needed to represent the secret key
Traits§
- BlsEl
Gamal - Methods for implementing ElGamal encryption and derived zero-knowledge proofs.
- BlsMulti
Key - A trait that defines the BLS schemes that support multi-signatures
- BlsMulti
Signature - A trait that defines the BLS schemes that support multi-signatures
- BlsSerde
- Serialization trait for inner types
- BlsSign
Crypt - Methods for implementing signcryption as described in https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.1717&rep=rep1&type=pdf
- BlsSignature
Basic - BLS signature basic trait
- BlsSignature
Core - The core methods used by BLS signatures
- BlsSignature
Impl - Types that implement BLS signatures
- BlsSignature
Message Augmentation - BLS signature augmentation trait
- BlsSignature
Pop - BLS signature proof of possession trait
- BlsSignature
Proof - Methods for creating a signature proof of knowledge as in https://miracl.com/assets/pdf-downloads/mpin4.pdf
- BlsTime
Crypt - Implements time-lock encryption.
- Hash
ToPoint - The hash to curve point methods
- Hash
ToScalar - The hash to scalar methods
- Pairing
- Operations that support pairings.
Type Aliases§
- Bls12381
G1 - A BLS signature implementation using G1 for signatures and G2 for public keys
- Bls12381
G2 - A BLS signature implementation using G2 for signatures and G1 for public keys
- BlsResult
- The result type generated by this library