You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
Usage
To use Rust-Crypto, add the following to your Cargo.toml:
[dependencies]
rust-crypto = "^0.2"
and the following to your crate root:
externcrate crypto;
Contributions
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.
License
Rust-Crypto is dual licensed under the MIT and Apache 2.0 licenses, the same licenses
as the Rust compiler.
Algorithms
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
BLAKE2s
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)
Sha3
Sosemanuk
Whirlpool
About
A (mostly) pure-Rust implementation of various cryptographic algorithms.