Skip to content

Collection of block cipher algorithms written in pure Rust

Notifications You must be signed in to change notification settings

RustCrypto/block-ciphers

Repository files navigation

RustCrypto: block ciphers

Project Chatdependency statusApache2/MIT licensedHAZMAT

Collection of block ciphers written in pure Rust.

Higher level constructions

Crates in this repository implement ONLY raw block cipher functionality defined by traits in the cipher crate. In practice block ciphers are rarely used in isolation. Instead, they usually play role of a building block for higher level constructions. In RustCrypto such constructions are implemented generically over block ciphers in separate repositories:

Most users should use constructions defined in these repositories without directly relying on raw block cipher functionality.

Warnings

Currently only the aes crate provides constant-time implementation and has received a third-party security audit.

Other crates in this repository are not implemented in a constant-time manner and have not yet received any formal cryptographic and security reviews.

It's generally recommended not to use other cipher implementations in this repository besides the aes crate.

USE AT YOUR OWN RISK.

Supported algorithms

NameCrate namecrates.ioDocsMSRV
AES (Rijndael)aescrates.ioDocumentationMSRV 1.85
ARIAariacrates.ioDocumentationMSRV 1.85
BelT block cipherbelt-blockcrates.ioDocumentationMSRV 1.85
Blowfishblowfishcrates.ioDocumentationMSRV 1.85
Camelliacamelliacrates.ioDocumentationMSRV 1.85
CAST5 (CAST-128)cast5crates.ioDocumentationMSRV 1.85
CAST6 (CAST-256)cast6crates.ioDocumentationMSRV 1.85
DES + 3DES (DEA, 3DEA)descrates.ioDocumentationMSRV 1.85
IDEAideacrates.ioDocumentationMSRV 1.85
Kuznyechik (GOST R 34.12-2015)kuznyechikcrates.ioDocumentationMSRV 1.85
Magma (GOST R 34.12-2015)magmacrates.ioDocumentationMSRV 1.85
RC2 (ARC2)rc2crates.ioDocumentationMSRV 1.85
RC5rc5crates.ioDocumentationMSRV 1.85
Serpentserpentcrates.ioDocumentationMSRV 1.85
SM4sm4crates.ioDocumentationMSRV 1.85
Speckspeck-ciphercrates.ioDocumentationMSRV 1.85
Threefishthreefishcrates.ioDocumentationMSRV 1.85
Twofishtwofishcrates.ioDocumentationMSRV 1.85
XTEAxteacrates.ioDocumentationMSRV 1.85

License

All crates licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Collection of block cipher algorithms written in pure Rust

Resources

Stars

Watchers

Forks

Contributors 50

Languages