Skip to main content

Crate frost_core

Crate frost_core 

Source
Expand description

§FROST (Flexible Round-Optimised Schnorr Threshold signatures) Core

Base traits and types in Rust that implement ‘Two-Round Threshold Schnorr Signatures with FROST’ generically for Ciphersuite implementations.

For more details, refer to The ZF FROST Book.

§Example

See ciphersuite-specific crates, e.g. frost_ristretto255.

§Features

  • internals — Expose internal types, which do not have SemVer guarantees. This is an advanced feature which can be useful if you need to build a modified version of FROST. The docs won’t list them, you will need to check the source code.
  • serde (enabled by default) — Enable serde support for types that need to be communicated. You can use serde to serialize structs with any encoder that supports serde (e.g. JSON with serde_json).

Re-exports§

pub use serde;serde

Modules§

batch
Performs batch Schnorr signature verification.
keys
FROST keys, keygen, key shares
round1
FROST Round 1 functionality and types
round2
FROST Round 2 functionality and types, for signature share generation
serialization
Serialization support.

Structs§

BindingFactor
The binding factor, also known as rho (ρ)
BindingFactorList
A list of binding factors and their associated identifiers.
Challenge
A type refinement for the scalar field element representing the per-message challenge.
GroupCommitment
The product of all signers’ individual commitments, published as part of the final signature.
Identifier
A FROST participant identifier.
Signature
A Schnorr signature over some prime order group (or subgroup).
SigningKey
A signing key for a Schnorr signature on a FROST Ciphersuite::Group.
SigningPackage
Generated by the coordinator of the signing operation and distributed to each signing party
VerifyingKey
A valid verifying key for Schnorr signatures over a FROST Ciphersuite::Group.

Enums§

CheaterDetection
The type of cheater detection to use.
Error
An error related to FROST.
FieldError
An error related to a scalar Field.
GroupError
An error related to a Group (usually an elliptic curve or constructed from one) or one of its Elements.

Traits§

Ciphersuite
A FROST ciphersuite specifies the underlying prime-order group details and cryptographic hash function.
Field
A prime order finite field GF(q) over which all scalar values for our prime order group can be multiplied are defined.
Group
A prime-order group (or subgroup) that provides everything we need to create and verify Schnorr signatures.

Functions§

aggregate
Aggregates the signature shares to produce a final signature that can be verified with the group public key.
aggregate_custom
Like aggregate(), but allow specifying a specific cheater detection strategy. If you are disabling cheater detection, then the identifiers in signature_shares do not need to correspond to the senders (i.e. you don’t need to authenticate the origin of the shares).
verify_signature_share
Verify a signature share for the given participant identifier, verifying_share and signature_share; with the signing_package for which the signature share was produced and with the group’s verifying_key.

Type Aliases§

Element
An element of the Ciphersuite C’s Group.
Scalar
An element of the Ciphersuite C’s Group’s scalar Field.