Collect libraries and packages about cryptography in Rust.

Overview

Awesome Cryptography Rust

Collect libraries and packages about cryptography in Rust.

Cryptography

Collection library

  • libsm A Rust Library of China's Standards of Encryption Algorithms (SM2/3/4).
  • mesalink MesaLink is a memory safe and OpenSSL-compatible TLS library.
  • orion Usable, easy and safe pure-Rust crypto.
  • rage age implementation. A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability.
  • ring Safe, fast, small crypto using Rust. (curve25519, aes-gcm, sha-256, sha-384, sha-512, hmac, hkdf, pbkdf2, p-256, p-384, x25519, chacha20-poly1305, ed25519).
  • rust-crypto A (mostly) pure-Rust implementation of various cryptographic algorithms.
  • rustls A modern TLS library in Rust.
  • sodiumoxide Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium).

Symmetric cryptography

  • aeads: Collection of Authenticated Encryption with Associated Data algorithms written in pure Rust.
  • block-ciphers Collection of block cipher algorithms written in pure Rust. (AES, Blowfish, DES + 3DES, Kuznyechik, Magma, RC2, Twofish).
  • stream-ciphers Collection of stream cipher algorithms.

Asymmetric Cryptography

RSA
  • RSA RSA implementation in pure Rust. (PKCS1v1.5: Encryption & Decryption, Sign & Verify).
DH
  • x25519-dalek Fast and efficient ed25519 signing and verification in Rust.

Hash Function

  • BLAKE3 Official implementations of the BLAKE3 cryptographic hash function.
  • hashes Collection of cryptographic hash functions written in pure Rust. (sha1, sha2, sha3, md4, md5, BLAKE2, RIPEMD-160, RIPEMD-320, GOST94, Grøstl, Streebog, Whirlpool).
  • tiny-keccak A tiny implementation of SHA-3, SHAKE, Keccak, and sha3sum in rust.
  • poseidon252 Starkad and Poseidon: New Hash Functions for Zero Knowledge Proof Systems.

Message Authentication Code

  • MACs Message authentication code algorithms written in pure Rust. (CMAC, DAA, HMAC, PMAC).

Digital Signature

Digital Signature Scheme
  • bls Aggregatable BLS sigantures. (w3f).
  • bls-signatures BLS Signatures in Rust.
  • ed25519-dalek Fast and efficient ed25519 signing and verification in Rust. (dalek)
  • milagro_bls BLS12-381 cryptography using Apache Milagro.
  • nisty NIST P-256 signatures for Cortex-M4 microcontrollers.
  • signatures Cryptographic signature algorithms (e.g. ECDSA, Ed25519).
Threshold Signature & Multi Party Signatures
  • multi-party-ecdsa Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm).
  • multi-party-schnorr Rust implementation of multi-party Schnorr signatures over elliptic curves.
  • multiproof-rs A rust implementation of Alexey Akhunov's multiproof algorithm.
  • threshold_crypto A pairing-based threshold cryptosystem for collaborative decryption and signatures.

Rseudo Random Number Generator

  • rand A Rust library for random number generation.

Zero Knowledge Proofs

  • bellman zk-SNARK library. (zcash - librustzcash).
  • bellman (matter-labs) Bellman zkSNARK library for community with Ethereum's BN256 support.
  • bellman (filecoin-project) GPU parallel acceleration to the FFT and Multiexponentation algorithms in the groth16 prover.
  • bulletproofs (Dalek) A pure-Rust implementation of Bulletproofs using Ristretto.
  • bulletproofs (KZen-networks) Bulletproof Rust implementation for Aggregated Range Proofs over multiple elliptic curves.
  • Dusk-Zerocaf Fast, efficient and bulletproof-friendly cryptographic operations.
  • halo (prototype) a zkp system.
  • marlin A Rust library for the Marlin preprocessing zkSNARK.
  • merlin Composable proof transcripts for public-coin arguments of knowledge.
  • OpenZKP pure Rust implementations of Zero-Knowledge Proof systems.
  • rust-secp256k1-zkp ZKP fork for rust-secp256k1, adds wrappers for range proofs, pedersen commitments, etc.
  • sonic a protocol for quickly verifiable, compact zero-knowledge proofs of arbitrary computations.
  • Spartan High-speed zkSNARKs without trusted setup.
  • zexe Rust library for decentralized private computation.
  • ZoKrates A toolbox for zkSNARKs on Ethereum.

Homomorphic Encryption

Secure Multi-party Computation

white-city Network layer for MPC protocols.(include use Tendermint/TokioServer/RocketServer).

Theorem

Math

  • fiat-crypto Formally verified arithmetic implementations for several elliptic curves and word sizes, extracted to Rust from specifications written using in the Coq theorem prover.
  • nalgebra Linear algebra library for Rust.
  • num A collection of numeric types and traits for Rust. (Bigint).
  • rust-decimal A Decimal Implementation written in pure Rust suitable for financial calculations.

Elliptic Curve

  • BLS12-381 Implementation of the BLS12-381 pairing-friendly elliptic curve group.
  • bn Fork from zcash Pairing cryptography library in Rust. Barreto-Naehrig (BN).
  • curve25519-dalek Group operations on Ristretto and Curve25519..
  • Jubjub Implementation of the Jubjub elliptic curve group.
  • k256 Pure Rust implementation of secp256k1 using complete Weierstrass formulas
  • libsecp256k1-rs Pure Rust Implementation of secp256k1. (Wei Tang).
  • p256 Pure Rust NIST P-256 implementation using complete Weierstrass formulas
  • rust-secp256k1 Rust language bindings for Bitcoin secp256k1 library. (rust-bitcoin).

Attack Defense

Constant time

  • subtle Pure-Rust traits and utilities for constant-time cryptographic implementations.
  • subtle-encoding Hex, Bech32, and Base64 in constant-time(ish).

Zeroing memory

  • Zeroize Securely zero memory while avoiding compiler optimizations.

Others

  • Double Ratchet Pure Rust implementation of the Double Ratchet algorithm. (communicate securely).
  • kms-secp256k1 Multi Party Key Management System (KMS) for Secp256k1 Elliptic curve based digital signatures.
  • KDFs Collection of Key Derivation Functions written in pure Rust.
  • librustzcash Rust-language assets for Zcash. (bellman-zk-SNARK, pairing-elliptic curves).
  • molasses A Rust implementation of the Message Layer Security group messaging protocol.
  • MLSAG Multilayered Linkable Spontaneous Anonymous Group, This particular version leverages Ristretto255.
  • password-hashing Password-based key derivation functions. (PBKDF2, scrypt).
  • opaque-ke A pure Rust implementation of the recent OPAQUE PAKE.
  • PAKEs Password-Authenticated Key Agreement protocols. (SRP, spake2).
  • rcmixed Mixed cryptosystem. inspired by PGP.
  • RustySecrets A Rust implementation of threshold Shamir's secret sharing.
  • schnorrkel Schnorr VRFs and signatures on the Ristretto group.
  • vdf An implementation of Verifiable Delay Functions in Rust.

Contribute

Contributions are most welcome. Not so many constraints, only lowercase > uppercase, symbols > letters.

License

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

You might also like...
Traits - Collection of cryptography-related traits

RustCrypto: Traits Collection of traits which describe functionality of cryptographic primitives. Crates Name Algorithm Crates.io Docs MSRV aead Authe

A down-to-the-metal ongoing cryptography challenge designed by Radical Semiconductor.

woodpecker 🪶 [NOTE: scoreboard will now be updated weekends, starting the weekend of 12/10/2022--sorry for delays! I'll also be merging in pull reque

Elliptic curve cryptography on Soroban.

Elliptic Curve Cryptography on Soroban Contract examples and reusable primitives. Groth 16 verifier. This crate provides a SorobanGroth16Verifier obje

Show details about outdated packages in your NixOS system.

nix-olde is a tool to show details about outdated packages in your NixOS system using https://repology.org/ database. It can use both default nixpkgs

Rust starter project for building CLI and libraries, with great CI
Rust starter project for building CLI and libraries, with great CI

Using the starter project: find where bumblefoot is and replace it with the name of your project. $ rg bumblefoot This is a dual library and binary pr

Automated security testing for open source libraries and applications.

autovet continuously searches for security breaches in open source libraries and applications. Recently processed packages package version channel las

rust client libraries to deal with the current cardano mainnet (byron / cardano-sl)

Rust implementation of Cardano primitives, helpers, and related applications Cardano Rust is a modular toolbox of Cardano’s cryptographic primitives,

rust-native-tls — Bindings for native TLS libraries

rust-native-tls Documentation An abstraction over platform-specific TLS implementations. Specifically, this crate uses SChannel on Windows (via the sc

A collection of libraries to be implemented for Automated Market Makers built in Sway.

🪓 🌴 Executor AMM 🪓 🌴 The Executor AMM is a reference implementation of Concentrated Liquidity in Sway. To run on the FuelVM many modifications had

Comments
  • Adds a mention of the fiat-crypto project,

    Adds a mention of the fiat-crypto project,

    The project maintains the following crate: https://crates.io/crates/fiat-crypto

    This contains formally verified arithmetic for various curves and architectures.

    opened by huitseeker 1
Owner
Rust Cryptography Community
a group of boring or interesting cryptographers who love Rust.
Rust Cryptography Community
A general solution for commonly used crypt in rust, collection of cryptography-related traits and algorithms.

Crypto-rs A general solution for commonly used crypt in rust, collection of cryptography-related traits and algorithms. This is a Rust implementation

houseme 4 Nov 28, 2022
Implementation of the Web Cryptography specification in Rust.

[wip] webcrypto Implementation of the Web Cryptography specification in Rust. This crate hopes to ease interoperability between WASM and native target

Divy Srivastava 5 Mar 7, 2022
Pairing cryptography library in Rust

bn This is a pairing cryptography library written in pure Rust. It makes use of the Barreto-Naehrig (BN) curve construction from [BCTV2015] to provide

Electric Coin Company Prototypes and Experiments 139 Dec 15, 2022
Pairing cryptography library in Rust

bn This is a pairing cryptography library written in pure Rust. It makes use of the Barreto-Naehrig (BN) curve construction from [BCTV2015] to provide

Parity Technologies 23 Apr 22, 2022
Example implementation for Biscuit tokens cryptography

example implementation for Biscuit token cryptography To aid in the implementation of Biscuit tokens in various languages, this repository contains an

Clever Cloud 6 May 25, 2021
Manage secret values in-repo via public key cryptography

amber Manage secret values in-repo via public key cryptography. See the announcement blog post for more motivation. Amber provides the ability to secu

FP Complete 82 Nov 10, 2022
Cryptography-related format encoders/decoders: PKCS, PKIX

RustCrypto: Formats Cryptography-related format encoders/decoders: PKCS, PKIX. Crates Name crates.io Docs Description base64ct Constant-time encoder a

Rust Crypto 112 Dec 20, 2022
Cryptography-oriented big integer library with constant-time, stack-allocated (no_std-friendly) implementations of modern formulas

RustCrypto: Cryptographic Big Integers Pure Rust implementation of a big integer library which has been designed from the ground-up for use in cryptog

Rust Crypto 88 Dec 31, 2022
BLS12-381 cryptography using Apache Milagro

BLS12-381 Aggregate Signatures in Rust using Apache Milagro WARNING: This library is a work in progress and has not been audited. Do NOT consider the

Sigma Prime 21 Apr 4, 2022
Ursa - Hyperledger Ursa is a shared cryptography library

HYPERLEDGER URSA Introduction Features Libursa Libzmix Dependencies Building from source Contributing Introduction Ursa was created because people in

Hyperledger 307 Dec 20, 2022