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
frost-core::Ciphersuite
implementations.
Status ⚠
The FROST specification is not yet finalized, and this codebase has not yet been audited or
released. The APIs and types in frost-core
are subject to change.
Usage
frost-core
implements the base traits and types in a generic manner, to enable top-level
implementations for different ciphersuites / curves without having to implement all of FROST from
scratch. End-users should not use frost-core
if they want to sign and verify signatures, they
should use the crate specific to their ciphersuite/curve parameters that uses frost-core
as a
dependency, such as frost_ristretto255
.
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
— Enableserde
support for types that need to be communicated. You can useserde
to serialize structs with any encoder that supportsserde
(e.g. JSON withserde_json
).
Re-exports
pub use serde;
Modules
- Performs batch Schnorr signature verification.
- An implementation of FROST (Flexible Round-Optimized Schnorr Threshold) signatures.
Structs
- A type refinement for the scalar field element representing the per-message challenge.
- A Schnorr signature over some prime order group (or subgroup).
- A signing key for a Schnorr signature on a FROST
Ciphersuite::Group
. - A valid verifying key for Schnorr signatures over a FROST
Ciphersuite::Group
.
Enums
- An error related to FROST.
- An error related to a scalar Field.
- An error related to a Group (usually an elliptic curve or constructed from one) or one of its Elements.
Traits
- A FROST ciphersuite specifies the underlying prime-order group details and cryptographic hash function.
- A prime order finite field GF(q) over which all scalar values for our prime order group can be multiplied are defined.
- A prime-order group (or subgroup) that provides everything we need to create and verify Schnorr signatures.