204 Repositories
Rust cryptography-algorithms Libraries
Collection of block cipher algorithms written in pure Rust
RustCrypto: block ciphers Collection of block ciphers and block modes written in pure Rust. Warnings Currently only the aes crate provides constant-ti
Collection of stream cipher algorithms
RustCrypto: stream ciphers Collection of stream cipher algorithms written in pure Rust. ⚠️ Security Warning: Hazmat! Crates in this repository do not
Message authentication code algorithms written in pure Rust
RustCrypto: Message Authentication Codes Collection of Message Authentication Code (MAC) algorithms written in pure Rust. Supported Algorithms Algorit
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
Cryptographic signature algorithms: ECDSA, Ed25519
RustCrypto: signatures Support for digital signatures, which provide authentication of data using public-key cryptography. All algorithms reside in th
Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm).
Multi-party ECDSA This project is a Rust implementation of {t,n}-threshold ECDSA (elliptic curve digital signature algorithm). Threshold ECDSA include
Rust implementation of multi-party Schnorr signatures over elliptic curves.
Multi Party Schnorr Signatures This library contains several Rust implementations of multi-signature Schnorr schemes. Generally speaking, these scheme
Zerocaf: A library built for EC operations in Zero Knowledge.
Dusk-Zerocaf WARNING: WIP Repo. Fast, efficient and bulletproof-friendly cryptographic operations. This repository contains an implementation of the S
A Rust library for the Marlin preprocessing zkSNARK
Marlin marlin is a Rust library that implements a preprocessing zkSNARK for R1CS with universal and updatable SRS This library was initially developed
Spartan: High-speed zkSNARKs without trusted setup
Spartan: High-speed zkSNARKs without trusted setup Spartan is a high-speed zero-knowledge proof system, a cryptographic primitive that enables a prove
Interfaces for Relations and SNARKs for these relations
SNARK and Relation Traits The arkworks ecosystem consists of Rust libraries for designing and working with zero knowledge succinct non-interactive arg
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
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
Pure-Rust traits and utilities for constant-time cryptographic implementations.
subtle Pure-Rust traits and utilities for constant-time cryptographic implementations. It consists of a Choice type, and a collection of traits using
Multi Party Key Management System (KMS) for Secp256k1 Elliptic curve based digital signatures.
Key Management System (KMS) for curve Secp256k1 Multi Party Key Management System (KMS) for Secp256k1 Elliptic curve based digital signatures. Introdu
Multilayered Linkable Spontaneous Anonymous Group - Implemented as is from paper. Not Monero specific
MLSAG This is a pure Rust implementation of the Multilayered Linkable Spontaneous Anonymous Group construction. This implementation has not been revie
🔑 Threshold Shamir's secret sharing in Rust
Rusty Secrets Rusty Secrets is an implementation of a threshold Shamir's secret sharing scheme. Documentation (latest) Documentation (master) Design g
A pure-Rust implementation of various threshold secret sharing schemes
Threshold Secret Sharing Efficient pure-Rust library for secret sharing, offering efficient share generation and reconstruction for both traditional S
Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order).
Mundane Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order). Issues and
Secure storage for cryptographic secrets in Rust
secrets secrets is a library to help Rust programmers safely held cryptographic secrets in memory. It is mostly an ergonomic wrapper around the memory
Fuzzer to automatically find side-channel (timing) vulnerabilities
SideFuzz: Fuzzing for side-channel vulnerabilities SideFuzz is an adaptive fuzzer that uses a genetic-algorithm optimizer in combination with t-statis
Port path module (and tests) of nodejs to rust using the same algorithms.
rusty_nodejs_path Port path module (and tests) of nodejs to rust using the same algorithms. crates.io Documents Progress posix path.basename(path[, ex
zine/book about bitmap drawing algorithms and math with code examples in Rust
A Bitmapper's Companion - zine/book about bitmap drawing algorithms and math with code examples in Rust A small zine/book written in LaTeX. In progres
Common data structures and algorithms for competitive programming in Rust
algorithm-rs algorithm-rs is common data structures and algorithms for competitive programming in Rust. Contents TBA How To Contribute Contributions a
Learning rust by coding different sorting algorithms in it
Sorting in Rust Sorting a 32 bit unsigned integer vector by using: Radix Sort Quick Sort Merge Sort Bubble Sort Inbuilt Sort (Probably Tim Sort) This
Implementation of Yao's Millionare problem in Rust
Yao's Millionaire Problem Two millionaires wish to know who is richer; however, they do not want to find out inadvertently any additional information
"Algorithms for approximate string matching" in Rust, with Python bindings.
ukkonen Implementation of a bounded Levenshtein distance by Esko Ukkonen in "Algorithms for approximate string matching" in Rust, with Python bindings
Multi-threaded Padding Oracle attacks against any service. Written in Rust.
rustpad is a multi-threaded successor to the classic padbuster, written in Rust. It abuses a Padding Oracle vulnerability to decrypt any cypher text or encrypt arbitrary plain text without knowing the encryption key!
STARK-based virtual machine
Polygon Miden A STARK-based virtual machine. WARNING: This project is in an alpha stage. It has not been audited and may contain bugs and security fla
A library that can be used as a building block for high-performant graph algorithms.
graph A library that can be used as a building block for high-performant graph algorithms. Graph provides implementations for directed and undirected
Implementation of algorithms for Domain Name System (DNS) Cookies construction
DNS Cookie RFC7873 left the construction of Server Cookies to the discretion of the DNS Server (implementer) which has resulted in a gallimaufry of di
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
Generate or convert random bytes into passphrases. A Rust port of niceware.
niceware My blog post: Porting Niceware to Rust A Rust port of niceware. Sections of this README have been copied from the original project. This libr
Benchmarks of algorithms for convex min-plus convolutions
Convex min-plus convolution を実現するアルゴリズムの実行時間を比較します。 やり方 長さ N の convex な Veci32 を2本生成して、それらの min-plus convolution を3通りの方法で計算します。 brute: 定義どおり計算します。(Θ
Scalable and encrypted embedded database with 3-tier caching
Infinitree is a versioned, embedded database that uses uniform, encrypted blobs to store data.
Pure Rust implementation of the Leighton Micali Signature scheme.
Leighton-Micali Hash-Based Signatures LMS implementation in Rust according to the IETF RFC 8554. This implementation is binary compatible with the ref
ECFFT algorithms on the BN254 base field
ECFFT algorithms on the BN254 base field This crate implements structs and traits for the ECFFT algorithms from the paper Elliptic Curve Fast Fourier
Stalin Binary Search, Rust implementation
Stalin Binary Search Idea is based on Stalin Sort It's alike binary search but any checking element which is not target one is eliminated. Complexity
Implementation of Plonk by Hand in rust
plonk-by-fingers This is a toy implementation of the excellent Joshua Fitzgerald Plonk by hand (part2) (part3) tutorial all written from scratch, do n
Cross-platform Secure TUI Secret Locker
SafeCloset keeps your secrets in password protected files. SafeCloset is designed to be convenient and avoid common weaknesses like external editing or temporary files written on disk.
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
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
Cross-platform Secure TUI Secret Locker
SafeCloset keeps your secrets in password protected files. SafeCloset is designed to be convenient and avoid common weaknesses like external editing o
Label Propagation Algorithm by Rust. Label propagation (LP) is graph-based semi-supervised learning (SSL). LGC and CAMLP have been implemented.
label-propagation-rs Label Propagation Algorithm by Rust. Label propagation (LP) is graph-based semi-supervised learning (SSL). A simple LGC and a mor
DSP algorithms for embedded. Often integer math.
This crate contains some tuned DSP algorithms for general and especially embedded use.
Genetic Algorithms Library
genx genx provides modular building blocks to run simulations of optimization and search problems using Genetic Algorithms (GA). The vision for genx i
FS-DKR: One Round Distributed Key Rotation
FS-DKR: One Round Distributed Key Rotation Intro In this note we aim to re-purpose the Fouque-Stern Distributed Key Generation (DKG) to support a secu
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
A browser app that evolves vehicles using genetic algorithms, written in Rust and Bevy
Vehicle Evolver Deluxe This is a simulation that uses AI (to be specific: genetic algorithms) to try to build better and better vehicles. The vehicles
The fastest way to identify any mysterious text or analyze strings from a file, just ask `lemmeknow` !
The fastest way to identify anything lemmeknow ⚡ Identify any mysterious text or analyze strings from a file, just ask lemmeknow. lemmeknow can be use
Algorithms and Data Structures of all kinds written in Rust.
Classic Algorithms in Rust This repo contains the implementation of various classic algorithms for educational purposes in Rust. Right now, it is in i
Ruo is a dictionary-based password cracker written in rust 🦀 .
Ruo is a dictionary-based password cracker written in rust 🦀 . The primary purpose is to crack weak hashes/commonly used passwords.
This crate implements fast route planning algorithms in Rust.
This crate implements fast route planning algorithms in Rust. Algorithms Currently implemented: Contraction Hierarchies: The implementat
A tool used to evaluate the output of retrieval algorithms. Written in Rust.
Rusteval A tool used to evaluate the output of retrieval algorithms. Written in Rust. Building Install Rust with curl -sSf https://static.rust-lang.or
A modern, portable, easy to use crypto library.
Sodium is a new, easy-to-use software library for encryption, decryption, signatures, password hashing and more. It is a portable, cross-compilable, i
A pure-Rust implementation of various threshold secret sharing schemes
Threshold Secret Sharing Efficient pure-Rust library for secret sharing, offering efficient share generation and reconstruction for both traditional S
Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order).
Mundane Mundane is a Rust cryptography library backed by BoringSSL that is difficult to misuse, ergonomic, and performant (in that order). Issues and
Secure storage for cryptographic secrets in Rust
secrets secrets is a library to help Rust programmers safely held cryptographic secrets in memory. It is mostly an ergonomic wrapper around the memory
Fuzzer to automatically find side-channel (timing) vulnerabilities
SideFuzz: Fuzzing for side-channel vulnerabilities SideFuzz is an adaptive fuzzer that uses a genetic-algorithm optimizer in combination with t-statis
darwin-rs, evolutionary algorithms with rust
darwin-rs This library allows you to write evolutionary algorithms (EA) using the Rust programming language. Written by Willi Kappler, License: MIT -
Rust library for genetic algorithms
Spiril Spiril is an implementation of a genetic algorithm for obtaining optimum variables (genetics) for a task through mutation and natural selection
Execute genetic algorithm (GA) simulations in a customizable and extensible way.
genevo genevo provides building blocks to run simulations of optimization and search problems using genetic algorithms (GA). The vision for genevo is
Graph data structure library for Rust.
petgraph Graph data structure library. Supports Rust 1.41 and later. Please read the API documentation here Crate feature flags: graphmap (default) en
A rust implementation of some popular snowball stemming algorithms
Rust Stemmers This crate implements some stemmer algorithms found in the snowball project which are compiled to rust using the rust-backend of the sno
A safe implementation of the secure remote password authentication and key-exchange protocol (SRP), SRP6a and legacy are as features available.
Secure Remote Password (SRP 6 / 6a) A safe implementation of the secure remote password authentication and key-exchange protocol (SRP version 6a). Ver
Computational Geometry library written in Rust
RGeometry Computational Geometry in Rust! What is RGeometry? RGeometry is a collection of data types such as points, polygons, lines, and segments, an
Terminal UI implementation and types for the Dark Forest game
dark-forest.rs Terminal UI implementation and types for the Dark Forest game Development We use the standard Rust toolchain cargo check
Data structures and algorithms for 3D geometric modeling.
geom3d Data structures and algorithms for 3D geometric modeling. Features: Bezier curve and surface B-Spline curve and surface Spin surface Sweep surf
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
Compare binary files using alignment algorithms
biodiff Compare binary files using alignment algorithms. What is this This is a tool for binary diffing. The tool is able to show two binary files sid
Minimal implementation of the Mimblewimble protocol.
Grin Grin is an in-progress implementation of the Mimblewimble protocol. Many characteristics are still undefined but the following constitutes a firs
Fast 2D Delaunay triangulation in Rust. A port of Delaunator.
delaunator-rs A very fast static 2D Delaunay triangulation library for Rust. A port of Delaunator. Documentation Example use delaunator::{Point, trian
Geospatial primitives and algorithms for Rust
geo Geospatial Primitives, Algorithms, and Utilities The geo crate provides geospatial primitive types such as Point, LineString, and Polygon, and pro
Geospatial primitives and algorithms for Rust
geo Geospatial Primitives, Algorithms, and Utilities The geo crate provides geospatial primitive types such as Point, LineString, and Polygon, and pro
Collection of vision & graphics algorithms
Vision Magic Collection of vision & graphics algorithms Paper | Demo | Docs Built with 🦀 by The Vision Cortex Research Group Impression Impression is
Modern Cryptographic Firmware
Trussed® Modern Cryptographic Firmware Status Very much WIP. Actively developed. Unstable APIs.
JSON Web Token implementation in Rust.
Frank JWT Implementation of JSON Web Tokens in Rust. Algorithms and features supported HS256 HS384 HS512 RS256 RS384 RS512 ES256 ES384 ES512 Sign Veri
Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance calculations and string search.
triple_accel Rust edit distance routines accelerated using SIMD. Supports fast Hamming, Levenshtein, restricted Damerau-Levenshtein, etc. distance cal
Parameterized routing for generic resources in Rust
Usher Usher provides an easy way to construct parameterized routing trees in Rust. The nodes of these trees is naturally generic, allowing Usher to le
A Rust port of the password primitives used in Django Project.
Rust DjangoHashers A Rust port of the password primitives used in Django Project. Django's django.contrib.auth.models.User class has a few methods to
rabe is an Attribute Based Encryption library, written in Rust
Rabe rabe is a rust library implementing several Attribute Based Encryption (ABE) schemes using a modified version of the bn library of zcash (type-3
Master Password in Pure Rust
Master Password •••| This is the Rust version of the original found here. This can be used as a drop-in replacement for the reference C version, offer
Collection of cryptographic hash functions written in pure Rust
RustCrypto: hashes Collection of cryptographic hash functions written in pure Rust. All algorithms reside in the separate crates and implemented using
An extensible open-source framework for creating private/permissioned blockchain applications
Exonum Status: Project info: Community: Exonum is an extensible open-source framework for creating blockchain applications. Exonum can be used to crea
Sodium Oxide: Fast cryptographic library for Rust (bindings to libsodium)
sodiumoxide |Crate|Documentation|Gitter| |:---:|:-----------:|:--------:|:-----:|:------:|:----:| |||| NaCl (pronounced "salt") is a new easy-to-use h
An implementation of Keccak derived functions specified in FIPS-202, SP800-185 and KangarooTwelve
tiny-keccak An implementation of Keccak derived functions specified in FIPS-202, SP800-185 and KangarooTwelve. Documentation The Keccak-f[1600] permut
X25519 elliptic curve Diffie-Hellman key exchange in pure-Rust, using curve25519-dalek.
x25519-dalek A pure-Rust implementation of x25519 elliptic curve Diffie-Hellman key exchange, with curve operations provided by curve25519-dalek. This
Fast and efficient ed25519 signing and verification in Rust.
ed25519-dalek Fast and efficient Rust implementation of ed25519 key generation, signing, and verification in Rust. Documentation Documentation is avai
A pure-Rust implementation of group operations on Ristretto and Curve25519
curve25519-dalek A pure-Rust implementation of group operations on Ristretto and Curve25519. curve25519-dalek is a library providing group operations
A (mostly) pure-Rust implementation of various cryptographic algorithms.
Rust-Crypto A (mostly) pure-Rust implementation of various common cryptographic algorithms. Rust-Crypto seeks to create practical, auditable, pure-Rus
A modern TLS library in Rust
Rustls is a modern TLS library written in Rust. It's pronounced 'rustles'. It uses ring for cryptography and libwebpki for certificate verification. S
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An
Usable, easy and safe pure-Rust crypto
orion About Orion is a cryptography library written in pure Rust. It aims to provide easy and usable crypto while trying to minimize the use of unsafe
Safe, fast, small crypto using Rust
THE SOFTWARE IS PROVIDED "AS IS" AND BRIAN SMITH AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
Mathematical optimization in pure Rust
argmin A pure Rust optimization framework This crate offers a numerical optimization toolbox/framework written entirely in Rust. It is at the moment p
Astronomical algorithms in Rust
astro-rust Contents API Docs About Usage Contributing References About astro-rust is a library of advanced astronomical algorithms for the Rust progra
A Rust machine learning framework.
Linfa linfa (Italian) / sap (English): The vital circulating fluid of a plant. linfa aims to provide a comprehensive toolkit to build Machine Learning
Radiate is a parallel genetic programming engine capable of evolving solutions to many problems as well as training learning algorithms.
Radiate Coming from Evolutionary Radiation. Evolutionary radiation is a rapid increase in the number of species with a common ancestor, characterized
darwin-rs, evolutionary algorithms with rust
darwin-rs This library allows you to write evolutionary algorithms (EA) using the Rust programming language. Written by Willi Kappler, License: MIT -
Execute genetic algorithm (GA) simulations in a customizable and extensible way.
genevo genevo provides building blocks to run simulations of optimization and search problems using genetic algorithms (GA). The vision for genevo is