typed-io/cryptoxide

crypto primitives in pure rust - wasm compatible - maintained fork of rust-crypto

Rust

75

454 commits

updated Oct 19, 2026

See the code

README

Cryptoxide

Crates.io MIT licensed APACHE-2 licensed Build Status

API Docs

A pure Rust implementation of various modern cryptographic algorithms, which has no dependencies and no foreign code (specially C or assembly code). This is compatible with WASM and embedded devices.

This crates package aims to support as many architectures as possible with as little dependencies as possible.

Disclaimer: There are no warranties in use as everything is cryptographically-related

Overview

Cryptoxide is a cryptographic crates aiming at providing good quality and efficient pure-rust implementation of popular cryptographic algorithms.

It provides various common algorithms in the following categories :

  • Cryptographic digests: SHA1, SHA2, SHA3, Kekkak, Blake2, Blake3, Ripemd160
  • Extendable-output functions (XOF): SHAKE128, SHAKE256
  • Message Authentication Code (MAC): HMAC, Poly1305
  • Symmetric ciphers: Salsa, Chacha
  • Authenticated Encryption (AE): ChachaPoly1305, AES-GCM
  • Key Derivation Function (KDF): Pbkdf2, HKDF, Scrypt, Argon2
  • Asymmetric DH/Signing: Ed25519, X25519
  • Key Encapsulation Mechanism (KEM): ML-KEM (post-quantum, FIPS 203)
  • Digital Signature: ML-DSA (post-quantum, FIPS 204)

Our main goals is to provide a library that is usable in a wide array of contextes, by supporting many platforms, but only by providing a bare bone and close to rust core APIs.

cryptoxide has zero dependencies, and will remain dependency free. As much as possible we rely on rust primitives, core only apis and in few places rely on alloc to get dymamic memory functionalities until we can remove them (when const-generic is stable).

Fork information

This is a fork of Rust-Crypto by DaGenix, to which we owe a debt of gratitude for starting some good quality pure Rust implementations of various cryptographic algorithms.

Notable differences with the original sources:

  • Maintained.
  • Extended ED25519 support for extended secret key (64 bytes) support.
  • ED25519 parametrized by its hash function, allowing BLAKE2b-512 in place of SHA512.
  • Proper implementation of ChaChaPoly1305 (according to spec).
  • Many cryptographic algorithms removed: Blowfish, Fortuna, RC4, Whirlpool, MD5.
  • Some algorithms have SIMD optimisation using AVX & AVX2

Running benches

normally:

cargo +nightly bench --features with-bench

or with all the cpu capability enabled:

RUSTFLAGS="-C target_cpu=native" cargo +nightly bench --features with-bench

supported compiler versions

Rusttest
stable✓
beta✓
nightly✓

We will always aim to support the current stable version at a minimum. However, it is likely that older versions of the Rust compiler are also supported.

License

This project is licensed under either of the following licenses:

typed-io/cryptoxide

crypto primitives in pure rust - wasm compatible - maintained fork of rust-crypto

Rust

75

454 commits

updated Oct 19, 2026

See the code

README

Cryptoxide

Crates.io MIT licensed APACHE-2 licensed Build Status

API Docs

A pure Rust implementation of various modern cryptographic algorithms, which has no dependencies and no foreign code (specially C or assembly code). This is compatible with WASM and embedded devices.

This crates package aims to support as many architectures as possible with as little dependencies as possible.

Disclaimer: There are no warranties in use as everything is cryptographically-related

Overview

Cryptoxide is a cryptographic crates aiming at providing good quality and efficient pure-rust implementation of popular cryptographic algorithms.

It provides various common algorithms in the following categories :

  • Cryptographic digests: SHA1, SHA2, SHA3, Kekkak, Blake2, Blake3, Ripemd160
  • Extendable-output functions (XOF): SHAKE128, SHAKE256
  • Message Authentication Code (MAC): HMAC, Poly1305
  • Symmetric ciphers: Salsa, Chacha
  • Authenticated Encryption (AE): ChachaPoly1305, AES-GCM
  • Key Derivation Function (KDF): Pbkdf2, HKDF, Scrypt, Argon2
  • Asymmetric DH/Signing: Ed25519, X25519
  • Key Encapsulation Mechanism (KEM): ML-KEM (post-quantum, FIPS 203)
  • Digital Signature: ML-DSA (post-quantum, FIPS 204)

Our main goals is to provide a library that is usable in a wide array of contextes, by supporting many platforms, but only by providing a bare bone and close to rust core APIs.

cryptoxide has zero dependencies, and will remain dependency free. As much as possible we rely on rust primitives, core only apis and in few places rely on alloc to get dymamic memory functionalities until we can remove them (when const-generic is stable).

Fork information

This is a fork of Rust-Crypto by DaGenix, to which we owe a debt of gratitude for starting some good quality pure Rust implementations of various cryptographic algorithms.

Notable differences with the original sources:

  • Maintained.
  • Extended ED25519 support for extended secret key (64 bytes) support.
  • ED25519 parametrized by its hash function, allowing BLAKE2b-512 in place of SHA512.
  • Proper implementation of ChaChaPoly1305 (according to spec).
  • Many cryptographic algorithms removed: Blowfish, Fortuna, RC4, Whirlpool, MD5.
  • Some algorithms have SIMD optimisation using AVX & AVX2

Running benches

normally:

cargo +nightly bench --features with-bench

or with all the cpu capability enabled:

RUSTFLAGS="-C target_cpu=native" cargo +nightly bench --features with-bench

supported compiler versions

Rusttest
stable✓
beta✓
nightly✓

We will always aim to support the current stable version at a minimum. However, it is likely that older versions of the Rust compiler are also supported.

License

This project is licensed under either of the following licenses:

Project health

Overall

3.8/10

Maintained

10/10

Code review

0/10
OpenSSF Scorecard

crates.io

Latest release

0.6.6 · Oct 11, 2026

Releases this year

9

Significant stargazers

Squirrel

214 followers · starred Nov 2025

Thomas Eizinger

609 followers · starred Mar 2022

Stewart Mackenzie

167 followers · starred Oct 2021

Iñigo Querejeta Azurmendi

28 followers · starred Mar 2021