Skip to main content

Crate blsful

Crate blsful 

Source
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§

Bls12381G1Hasher
The BLS12-381 G1 implementation’s hasher for the G2 public-key group.
Bls12381G1Impl
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.
Bls12381G2Hasher
The BLS12-381 G2 implementation’s hasher for the G1 public-key group.
Bls12381G2Impl
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
ElGamalCiphertext
An ElGamal ciphertext
ElGamalDecryptionKey
An ElGamal decryption key, derived from a hidden secret key or combined shares, that can decrypt ciphertexts.
ElGamalDecryptionShare
An ElGamal decryption share is a point on the curve. It must be combined with other decryption shares to decrypt a ciphertext.
ElGamalProof
A discrete logarithm proof tied to a specific ElGamal ciphertext.
ElGamalProofData
The ciphertext and response values produced by ElGamal proof generation.
InnerPointShareG1
The share type for points in G1
InnerPointShareG2
The share type for points in G2
MultiPublicKey
An accumulated public key
ProofCommitmentChallenge
The proof-of-knowledge challenge value generated by the server in step 2 of the proof-generation process.
ProofCommitmentSecret
A commitment secret used to create the proof of knowledge.
ProofOfKnowledgeTimestamp
A timestamp-based signature proof of knowledge.
ProofOfPossession
A proof of possession of the secret key
PublicKey
A BLS public key
PublicKeyShare
A public key share is a point on the curve.
SecretKey
The secret key is a field element x where 0 < x < r and r is the curve order. See Section 4.3 of https://eprint.iacr.org/2016/663.pdf
SecretKeyShare
A secret key share is a field element x where 0 < x < r and r is the curve order.
SignCryptCiphertext
A signcryption ciphertext.
SignCryptCiphertextParts
Named components produced when sealing a signcryption ciphertext.
SignCryptDecryptionKey
A signcryption decryption key derived from a secret key or combined shares.
SignDecryptionShare
A signcryption decryption share is a point on the curve.
TimeCryptCiphertext
A time-lock encryption ciphertext.
TimeCryptCiphertextParts
Named components produced when sealing a time-lock ciphertext.
TimestampProofParts
Named components of a timestamped signature proof.

Enums§

AggregateSignature
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
MultiSignature
A BLS multi-signature combining signatures over the same message.
ProofCommitment
The commitment portion of the signature proof of knowledge
ProofOfKnowledge
A signature proof of knowledge.
ProofOfPossessionEnum
A proof of possession for either supported BLS12-381 signature group.
PublicKeyEnum
A public key for either supported BLS12-381 signature group.
SecretKeyEnum
A BLS secret key implementation
SignCryptCiphertextEnum
Signcryption ciphertext for either supported BLS12-381 signature group.
Signature
A BLS signature wrapped in the scheme used to generate it.
SignatureEnum
A BLS signature for either supported BLS12-381 signature group.
SignatureSchemes
The BLS signature algorithm schemes
SignatureShare
Represents a share of a signature.
TimeCryptCiphertextEnum
Time-lock ciphertext for either supported BLS12-381 signature group.

Constants§

SECRET_KEY_BYTES
Number of bytes needed to represent the secret key

Traits§

BlsElGamal
Methods for implementing ElGamal encryption and derived zero-knowledge proofs.
BlsMultiKey
A trait that defines the BLS schemes that support multi-signatures
BlsMultiSignature
A trait that defines the BLS schemes that support multi-signatures
BlsSerde
Serialization trait for inner types
BlsSignCrypt
Methods for implementing signcryption as described in https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.119.1717&rep=rep1&type=pdf
BlsSignatureBasic
BLS signature basic trait
BlsSignatureCore
The core methods used by BLS signatures
BlsSignatureImpl
Types that implement BLS signatures
BlsSignatureMessageAugmentation
BLS signature augmentation trait
BlsSignaturePop
BLS signature proof of possession trait
BlsSignatureProof
Methods for creating a signature proof of knowledge as in https://miracl.com/assets/pdf-downloads/mpin4.pdf
BlsTimeCrypt
Implements time-lock encryption.
HashToPoint
The hash to curve point methods
HashToScalar
The hash to scalar methods
Pairing
Operations that support pairings.

Type Aliases§

Bls12381G1
A BLS signature implementation using G1 for signatures and G2 for public keys
Bls12381G2
A BLS signature implementation using G2 for signatures and G1 for public keys
BlsResult
The result type generated by this library