Crate modular_frost

Source
Expand description

§Modular FROST

A modular implementation of FROST for any curve with a ff/group API. Additionally, custom algorithms may be specified so any signature reducible to Schnorr-like may be used with FROST.

A Schnorr algorithm is provided, of the form (R, s) where s = r + cx, which allows specifying the challenge format. This is intended to easily allow integrating with existing systems.

This library offers ciphersuites compatible with the IETF draft. Currently, version 15 is supported.

A variety of testing utilities are provided under the tests feature. These are provided with no guarantees and may have completely arbitrary behavior, including panicking for completely well-reasoned input.

This library was audited by Cypher Stack in March 2023, culminating in commit 669d2dbffc1dafb82a09d9419ea182667115df06. Any subsequent changes have not undergone auditing. While this audit included FROST’s definition of Ed448, the underlying Ed448 ciphersuite (offered by the ciphersuite crate) was not audited, nor was the minimal-ed448 crate implementing the curve itself.

Re-exports§

pub use dkg;

Modules§

algorithm
Algorithm for the signing process.
curve
Curve trait and provided curves/HRAMs, forming various ciphersuites.
sign
Threshold signing protocol.

Structs§

Participant
Distributed key generation protocol. The ID of a participant, defined as a non-zero u16.
ThresholdKeys
Distributed key generation protocol. Threshold keys usable for signing.
ThresholdParams
Distributed key generation protocol. Parameters for a multisig.
ThresholdView
Distributed key generation protocol. View of keys, interpolated and with the expected linear combination taken for usage.

Enums§

FrostError
Various errors possible during signing.

Functions§

validate_map
Validate a map of values to have the expected participants.