Expand description
§tsslib
Easy-to-use threshold signature schemes in pure Rust. This crate is a port
of the broker-based protocols from the Go tss-lib and aims to be wire-
and save-data-compatible with it: messages serialized by one
implementation are consumed by the other, and persisted key shares
round-trip across both.
§Protocols
| Module | Scheme | Output |
|---|---|---|
frosttss | FROST(Ed25519, SHA-512), RFC 9591 | Ed25519 signatures |
frostristretto255tss | FROST(ristretto255, SHA-512), RFC 9591 | Ristretto255 signatures |
mldsatss | Threshold ML-DSA-44 (FIPS 204) | ML-DSA signatures |
dklstss | Threshold ECDSA / secp256k1 (DKLs23) | ECDSA signatures |
Each protocol is gated behind a like-named cargo feature (all enabled by default).
§Core
The tss module holds the transport-agnostic core shared by every
protocol: tss::PartyId, the rich tss::TssError, and the JSON
message/broker plumbing (tss::JsonMessage, tss::MessageBroker).
§Cryptography
Low-level group, scalar, and lattice arithmetic is provided by the
purecrypto crate. This crate
contains no hand-rolled field arithmetic of its own.
Modules§
- dklstss
- Threshold ECDSA on secp256k1 — DKLs23 (ePrint 2023/765).
- frostristretto255tss
- FROST(ristretto255, SHA-512) threshold signatures — RFC 9591 §6.2.
- frosttss
- FROST(Ed25519, SHA-512) threshold signatures — RFC 9591.
- mldsatss
- Threshold ML-DSA (FIPS 204) signing.
- tss
- Transport-agnostic core shared by every threshold protocol.