Skip to main content

Module group

Module group 

Source
Expand description

Group primitives for FROST over ed25519.

FROST (draft-irtf-cfrg-frost) is defined generically over a prime-order group. The “ed25519” instantiation works in the ristretto255-free Edwards form factor used by RFC 8032 ed25519 signatures so that the aggregate signature verifies under any standard ed25519 verifier (e.g. ed25519-dalek, libsodium, Go’s crypto/ed25519).

Scalars are 32-byte little-endian values reduced modulo the group order ℓ = 2^252 + 27742317777372353535851937790883648493. Group elements are Edwards points; their wire form is the 32-byte compressed-Y encoding (CompressedEdwardsY) used by ed25519 keys and signatures.

All FROST math is scalar / point arithmetic in this group; this module adds nothing cryptographically — it just pins the right curve types and serialization.

Constants§

ELEMENT_BYTES
Byte length of a compressed group element (commitment, public key).
SCALAR_BYTES
Byte length of a scalar in its canonical wire encoding.

Functions§

base_point
The base point B used throughout FROST and ed25519.
mul_base
Multiply the base point B by a scalar — s·B.
point_from_bytes
Decompress a 32-byte encoded point. Returns None if the encoding is not a valid point on the curve.
point_from_slice
Decompress a point from a slice, validating both length and curve membership.
point_to_bytes
Compress a point to its 32-byte wire form.
scalar_from_bytes_mod_order
Decode a scalar from 32 bytes, reducing mod ℓ. Used for inputs like the local share where the encoding may have come from a wide hash.
scalar_from_slice
Decode a scalar from a slice, validating length.
scalar_to_bytes
Encode a scalar to its 32-byte little-endian wire form.