Skip to main content

Crate tsslib

Crate tsslib 

Source
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

ModuleSchemeOutput
frosttssFROST(Ed25519, SHA-512), RFC 9591Ed25519 signatures
frostristretto255tssFROST(ristretto255, SHA-512), RFC 9591Ristretto255 signatures
mldsatssThreshold ML-DSA-44 (FIPS 204)ML-DSA signatures
dklstssThreshold 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.