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
Noneif 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.