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).
- ecdsatss
- Legacy threshold ECDSA (GG18/GG20) — Paillier + MtA — for migrating keys from
the Go
tss-lib/ecdsatss. - eddsatss
- Legacy threshold EdDSA (GG18-style) on Ed25519 — Feldman VSS + threshold
Schnorr — for migrating keys from the Go
tss-lib/eddsatss. - frost
- Shared FROST core (RFC 9591), used by the Ed25519 and ristretto255 variants. Shared FROST core (RFC 9591), generic over the prime-order group.
- 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.