A suite of cryptographic libraries and protocol implementations, written in the systems programming language Rust, for creating blazingly-fast, production-quality cryptographic applications.
A pure-Rust implementation of group operations on Ristretto and Curve25519, providing a clean and safe mid-level API for use implementing a wide range of ECC-based crypto protocols.
A small collection of Rust traits and utility functions for writing constant-time code.
The fastest Bulletproofs implementation ever, featuring single and aggregated range proofs, strongly-typed online multiparty computation for proof aggregation, and a programmable constraint system API for proving arbitrary statements.
A memory-safe, fast, and efficient ed25519 signing and signature verification implementation which supports a well-designed API and friendly error management.
Elliptic curve Diffie-Hellman key exchange, made so simple-to-use you'll wonder why your application wasn't using it already. Now with adorable kittens!
D.A.V.R.O.S. (Deterministic And Verifiable Randomness On Schnorr signatures) is a work-in-progress implementation of Schnorr signatures and VRFs using Ristretto, to be released soon.
dalek-cryptography is a collection of libraries providing safe, mid-level APIs for cryptographic primitives, aimed at making it faster and easier to implement cryptographic protocols such as key agreement, signatures, anonymous credentials, range proofs, and zero-knowledge proof systems.
Other libraries aim to provide well-designed APIs for protocol users, but do not aim to provide well-designed API for protocol implementers. The result is that implementing new protocols often requires using unsafe internal APIs which were never intended for reuse.
Our goal is to provide both safe, mid-level APIs aimed at implementors of cryptographic protocols, as well as implementations providing safe, high-level APIs aimed at users of cryptographic protocols.
We hope to stabilise these libraries to production-quality versions soon, but—for now—they should be used for research.