_____                               
                                                         /░░░░░\                              
                                                        /░░░░░░░╠══O                          
                                                        ╠═══════╣═════O                       
        ██████╗  █████╗ ██╗    ██████╗██╗  ██╗          ◖● ● ● ●◗                             
        ██╔══██╗██╔══██╗██║    ██╔═══╝██║ ██╔╝          ◖● ● ● ●◗                             
        ██║  ██║███████║██║    ████╗  █████╔╝          ◖ ● ● ● ● ◗                            
        ██║  ██║██╔══██║██║    ██╔═╝  ██╔═██╗         ◖ ●  ●  ● ● ◗                           
        ██████╔╝██║  ██║██████╗██████╗██║  ██╗       ◖_●___●___●_●_◗                          
        ╚═════╝ ╚═╝  ╚═╝╚═════╝╚═════╝╚═╝  ╚═╝       [░░░░░░░░░░░░░░]                         
 █████╗██████╗ ██╗   ██╗█████╗ ██████╗ ████╗  █████╗ ██████╗  █████╗ ██████╗ ██╗  ██╗██╗   ██╗
██╔═══╝██╔══██╗╚██╗ ██╔╝██╔═██╗╚═██╔═╝██╔═██╗██╔═══╝ ██╔══██╗██╔══██╗██╔══██╗██║  ██║╚██╗ ██╔╝
██║    ██████╔╝ ╚████╔╝ █████╔╝  ██║  ██║ ██║██║ ███╗██████╔╝███████║██████╔╝███████║ ╚████╔╝ 
██║    ██╔══██╗  ╚██╔╝  ██╔══╝   ██║  ██║ ██║██║  ██║██╔══██╗██╔══██║██╔═══╝ ██╔══██║  ╚██╔╝  
╚█████╗██║  ██║   ██║   ██║      ██║  ╚████╔╝╚█████╔╝██║  ██║██║  ██║██║     ██║  ██║   ██║   
 ╚════╝╚═╝  ╚═╝   ╚═╝   ╚═╝      ╚═╝   ╚═══╝  ╚════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝  ╚═╝   ╚═╝   

A suite of cryptographic libraries and protocol implementations, written in the systems programming language Rust, for creating blazingly-fast, production-quality cryptographic applications.

Learn more





CRYPTOGRAPHIC LIBRARIES



curve25519-dalek

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.

 API Documentation  

    Source Code    

Implementation Notes

subtle

A small collection of Rust traits and utility functions for writing constant-time code.



 API Documentation  

    Source Code     

bulletproofs

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.


 API Documentation  

    Source Code     





CRYPTOGRAPHIC PROTOCOL IMPLEMENTATIONS



ed25519-dalek

A memory-safe, fast, and efficient ed25519 signing and signature verification implementation which supports a well-designed API and friendly error management.


 API Documentation  

    Source Code     

x25519-dalek

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!



 API Documentation  

    Source Code     

D.A.V.R.O.S.

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.

 API Documentation  

    Source Code    







About


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.