Crate fedimint_threshold_crypto

source ·
Expand description

A pairing-based threshold cryptosystem for collaborative decryption and signatures.

Re-exports§

Modules§

  • Crypto errors.
  • Utilities for distributed key generation: uni- and bivariate polynomials and commitments.
  • Serialization and deserialization implementations for group and field elements.

Structs§

  • An encrypted message.
  • A decryption share. A threshold of decryption shares can be used to decrypt a message.
  • This is an element of $\mathbb{G}_1$ represented in the affine coordinate space. It is ideal to keep elements in this representation to reduce memory usage and improve performance through the use of mixed curve model arithmetic.
  • This is an element of $\mathbb{G}_1$ represented in the projective coordinate space.
  • This is an element of $\mathbb{G}_2$ represented in the affine coordinate space. It is ideal to keep elements in this representation to reduce memory usage and improve performance through the use of mixed curve model arithmetic.
  • This is an element of $\mathbb{G}_2$ represented in the projective coordinate space.
  • A pairing::Engine for BLS12-381 pairing operations.
  • A public key.
  • A public key and an associated set of public key shares.
  • A public key share.
  • Represents an element of the scalar field $\mathbb{F}_q$ of the BLS12-381 elliptic curve construction.
  • A secret key; wraps a single prime field element. The field element is heap allocated to avoid any stack copying that result when passing SecretKeys between stack frames.
  • A secret key and an associated set of secret key shares.
  • A secret key share.
  • A signature.
  • A signature share.

Constants§

  • The size of a key’s representation in bytes.
  • The size of a signature’s representation in bytes.

Traits§

  • A conversion into an element of the field Scalar.

Functions§

  • Returns a hash of the given message in G2.