Crypto

Cryptography is a corner stone of a trusted web. Without it many services could not be offered reliably. Rust has strong cryptography libraries. Many of these are managed by Rust Crypto, an organization that maintains cryptography algorithms written in pure Rust.

Suites

  • openssl

    OpenSSL bindings

  • orion

    Usable, easy and safe pure-Rust crypto

  • libsodium-sys

    FFI binding to libsodium

  • gpgme

    GPGme bindings for Rust

  • ring

    Safe, fast, small crypto using Rust.

Random Number Generators

  • rand

    Random number generators and other randomness functionality.

  • uuid

    A library to generate and parse UUIDs.

Hashing

  • bcrypt

    Easily hash and verify passwords using bcrypt

  • blake2

    BLAKE2 hash functions

  • djangohashers

    A Rust port of the password primitives used in Django project.

  • hmac

    Generic implementation of Hash-based Message Authentication Code (HMAC)

  • fnv

    Fowler–Noll–Vo hash function

  • twox-hash

    A Rust implementation of the XXHash and XXH3 algorithms

  • md-5

    MD5 hash function

  • sha2

    Pure Rust implementation of the SHA-2 hash function family including SHA-224, SHA-256, SHA-384, and SHA-512.

  • pwhash

    A collection of password hashing routines in pure Rust.

Algorithms

  • aes-gcm

    Pure Rust implementation of the AES-GCM (Galois/Counter Mode) Authenticated Encryption with Associated Data (AEAD) Cipher with optional architecture-specific hardware acceleration

  • bulletproofs

    A pure-Rust implementation of Bulletproofs using Ristretto

  • chacha20poly1305

    Pure Rust implementation of the ChaCha20Poly1305 Authenticated Encryption with Additional Data Cipher (RFC 8439) with optional architecture-specific hardware acceleration. Also contains implementations of the XChaCha20Poly1305 extended nonce variant of ChaCha20Poly1305, and the reduced-round ChaCha8Poly1305 and ChaCha12Poly1305 lightweight variants.

  • curve25519-dalek

    A pure-Rust implementation of group operations on ristretto255 and Curve25519

  • ed25519-dalek

    Fast and efficient ed25519 EdDSA key generations, signing, and verification in pure Rust.

  • secp256k1

    Rust bindings for Pieter Wuille's `libsecp256k1` library. Implements ECDSA for the SECG elliptic curve group secp256k1 and related utilities.

  • subtle

    Pure-Rust traits and utilities for constant-time cryptographic implementations.

  • twox-hash

    A Rust implementation of the XXHash and XXH3 algorithms

  • x25519-dalek

    X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.

TLS

  • rustls

    Rustls is a modern TLS library written in Rust.

  • tokio-openssl

    An implementation of SSL streams for Tokio backed by OpenSSL

  • tokio-rustls

    Asynchronous TLS/SSL streams for Tokio using Rustls.

  • tokio-tls

    Deprecated in favor of `tokio-naitve-tls`. An implementation of TLS/SSL streams for Tokio giving an implementation of TLS for nonblocking I/O streams.

  • openssl

    OpenSSL bindings

  • webpki

    Web PKI X.509 Certificate Verification.

Do you know something we don't?

Did we miss an important crate? Or maybe you just recently launched something that should be listed here, too? Let us know!