ReadonlyIDThe ciphersuite ID string. It should be equal to the contextString in the spec. For new ciphersuites, this should be a string that identifies the ciphersuite; it's recommended to use a similar format to the ciphersuites in the FROST spec, e.g. "FROST-RISTRETTO255-SHA512-v1".
ReadonlygroupThe prime order group (or subgroup) that this ciphersuite operates over. Provides access to Field and Group operations in a hierarchical manner.
The scalar type for this ciphersuite
The element type for this ciphersuite
The verifying key type
The signing key type
OptionalSIGNATURE_The length of a serialized signature in bytes. Defaults to elementSize() + scalarSize() if not specified. For BIP-340/Taproot ciphersuites this is typically 64 (2 * scalarSize).
Returns the zero element of the field, the additive identity.
Returns the one element of the field, the multiplicative identity.
Generate a random scalar from the entire space [0, l-1]
Serialize a scalar to bytes.
Add two scalars.
Subtract two scalars.
Multiply two scalars.
Check if two scalars are equal.
Returns the size in bytes of a serialized element.
Returns the size in bytes of a serialized scalar.
The order of the quotient group when the prime order subgroup divides the order of the full curve group. For prime order curves, this should return 1.
Additive identity of the prime order group.
The fixed generator element of the prime order group.
Add two group elements.
Subtract two group elements.
Multiply a group element by a scalar.
Scalar multiplication with the generator (g * scalar).
Check if two elements are equal.
Check if an element is the identity.
H1 for a FROST ciphersuite.
Maps arbitrary inputs to Scalar elements of the prime-order group scalar field.
H2 for a FROST ciphersuite.
Maps arbitrary inputs to Scalar elements of the prime-order group scalar field.
H3 for a FROST ciphersuite.
Maps arbitrary inputs to Scalar elements of the prime-order group scalar field.
H4 for a FROST ciphersuite.
Usually an alias for the ciphersuite hash function H with domain separation applied.
H5 for a FROST ciphersuite.
Usually an alias for the ciphersuite hash function H with domain separation applied.
OptionalHDKGHash function for a FROST ciphersuite, used for the DKG.
The DKG is not part of the specification, thus this is optional. Returns null if DKG is not supported by the Ciphersuite.
Maps arbitrary inputs to non-zero Scalar elements of the prime-order group scalar field.
OptionalHIDHash function for a FROST ciphersuite, used for deriving identifiers from strings.
This feature is not part of the specification and is just a convenient way of creating identifiers. Returns null if this is not supported.
Maps arbitrary inputs to non-zero Scalar elements of the prime-order group scalar field.
OptionalsingleOptional. Single-signer Schnorr signing. If provided, allows for optimized single-party signing without the full FROST protocol.
OptionalverifyOptional. Verify a Schnorr signature. If provided, allows for direct signature verification without going through FROST.
OptionalserializeOptional. Serialize a signature to bytes. If provided, allows for custom signature serialization.
OptionaldeserializeOptional. Deserialize a signature from bytes. If provided, allows for custom signature deserialization.
Optional. Generates the challenge as is required for Schnorr signatures. Called by round2.sign() and aggregate().
OptionalpreOptional. Pre-process round2.sign() inputs. Returns the same values or modified versions.
OptionalpreOptional. Pre-process compute_group_commitment() inputs in round2.sign().
OptionalcomputeOptional. Compute the signature share for a particular signer. Called by round2.sign().
OptionalverifyOptional. Verify a signing share. Called by aggregate() if cheater detection is enabled.
OptionalgroupVerifyingKey: unknownOptional group verifying key for ciphersuites that need it (e.g., BIP-340)
Compute binding factors for all participants.
Compute the group commitment from all signing commitments.
Compute the Lagrange coefficient for a participant.
OptionalpostOptional. Post-process DKG output (called at the end of part3). Used for ciphersuites that need to apply transformations after DKG, such as taproot tweaking for secp256k1-tr.
A FROST ciphersuite specifies the underlying prime-order group details and cryptographic hash function.
This is the unified Ciphersuite interface that combines both hierarchical access (via
group) and flattened methods for convenience.See
https://datatracker.ietf.org/doc/html/rfc9591#name-ciphersuites