#Crypto #MD5 #Sha1 #Sha2 #AES


A (mostly) pure-Rust implementation of various common cryptographic algorithms

39 releases

0.2.36 May 20, 2016
0.2.34 Oct 29, 2015
0.2.31 Apr 4, 2015
0.2.27 Mar 30, 2015
0.1.2 Nov 24, 2014

#20 in Cryptography

Download history 7647/week @ 2018-06-15 7627/week @ 2018-06-22 8040/week @ 2018-06-29 8855/week @ 2018-07-06 9894/week @ 2018-07-13 8541/week @ 2018-07-20 9960/week @ 2018-07-27 8479/week @ 2018-08-03 9084/week @ 2018-08-10 7219/week @ 2018-08-17 7618/week @ 2018-08-24 8895/week @ 2018-08-31 8472/week @ 2018-09-07

29,352 downloads per month
Used in 290 crates (204 directly)


25K SLoC


Build Status

A (mostly) pure-Rust implementation of various common cryptographic algorithms.

Rust-Crypto seeks to create practical, auditable, pure-Rust implementations of common cryptographic algorithms with a minimum amount of assembly code where appropriate. The x86-64, x86, and ARM architectures are supported, although the x86-64 architecture receives the most testing.

Rust-Crypto targets the current, stable build of Rust. If you are having issues while using an older version, please try upgrading to the latest stable.

Rust-Crypto has not been thoroughly audited for correctness, so any use where security is important is not recommended at this time.


To use Rust-Crypto, add the following to your Cargo.toml:

rust-crypto = "^0.2"

and the following to your crate root:

extern crate crypto;


Contributions are extremely welcome. The most significant needs are help adding documentation, implementing new algorithms, and general cleanup and improvement of the code. By submitting a pull request you are agreeing to make you work available under the license terms of the Rust-Crypto project.


Rust-Crypto is dual licensed under the MIT and Apache 2.0 licenses, the same licenses as the Rust compiler.


Rust-Crypto already supports a significant number of algorithms and with your help it will support even more in the future. Currently supported algorithms include:

  • AES
  • Bcrypt
  • Blake2B
  • Blowfish
  • ChaCha20
  • Curve25519
  • ECB, CBC, and CTR block cipher modes
  • Ed25519
  • Fortuna
  • Ghash
  • HC128
  • HMAC
  • MD5
  • PBKDF2
  • PKCS padding for CBC block cipher mode
  • Poly1305
  • RC4
  • RIPEMD-160
  • Salsa20 and XSalsa20
  • Scrypt
  • Sha1
  • Sha2 (All fixed output size variants)
  • Sosemanuk
  • Whirlpool


~19K SLoC

  • build build.rs
  • build gcc 0.3