Collection of block cipher algorithms written in pure Rust
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Reynard User 5a8d309c93
Some checks failed
aes.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
aria.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
belt-block.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
blowfish.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
camellia.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
cast5.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
cast6.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
des.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
gift.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
idea.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
kuznyechik.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
magma.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
rc2.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
rc5.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
rc6.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
serpent.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
sm4.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
speck.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
threefish.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
twofish.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
xtea.yml / chore: sync dependencies (monorepo) (push) Failing after 0s
Workspace / rustfmt (push) Has been cancelled
Workspace / typos (push) Has been cancelled
Security Audit / Security Audit (push) Has been cancelled
Workspace / clippy (push) Has been cancelled
chore: sync dependencies (monorepo)
2026-04-17 10:39:30 +02:00
.github ci: use Dependabot to update Cargo.lock (#546) 2026-03-30 18:08:57 +03:00
aes chore: sync dependencies (monorepo) 2026-04-11 00:44:57 +02:00
aria chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
belt-block chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
blowfish chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
camellia chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
cast5 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
cast6 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
des chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
gift chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
idea chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
kuznyechik chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
magma chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
rc2 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
rc5 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
rc6 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
serpent chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
sm4 chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
speck chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
threefish chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
twofish chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
xtea chore: sync dependencies (monorepo) 2026-04-06 15:20:40 +02:00
.gitignore Update crates to cipher v0.4 (#284) 2022-02-10 08:54:32 +00:00
Cargo.toml Bump cipher dependency to v0.5.0-rc.2 (#511) 2025-11-05 09:39:40 -07:00
README.md README: add Gift and RC6 to the algorithms table (#522) 2026-01-20 14:34:38 +03:00

RustCrypto: block ciphers

Project Chat dependency status Apache2/MIT licensed HAZMAT

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

Name Crate name crates.io Docs MSRV
AES (Rijndael) aes crates.io Documentation MSRV 1.85
ARIA aria crates.io Documentation MSRV 1.85
BelT block cipher belt-block crates.io Documentation MSRV 1.85
Blowfish blowfish crates.io Documentation MSRV 1.85
Camellia camellia crates.io Documentation MSRV 1.85
CAST5 (CAST-128) cast5 crates.io Documentation MSRV 1.85
CAST6 (CAST-256) cast6 crates.io Documentation MSRV 1.85
DES + 3DES (DEA, 3DEA) des crates.io Documentation MSRV 1.85
Gift gift-cipher crates.io Documentation MSRV 1.85
IDEA idea crates.io Documentation MSRV 1.85
Kuznyechik (GOST R 34.12-2015) kuznyechik crates.io Documentation MSRV 1.85
Magma (GOST R 34.12-2015) magma crates.io Documentation MSRV 1.85
RC2 (ARC2) rc2 crates.io Documentation MSRV 1.85
RC5 rc5 crates.io Documentation MSRV 1.85
RC6 rc6 crates.io Documentation MSRV 1.85
Serpent serpent crates.io Documentation MSRV 1.85
SM4 sm4 crates.io Documentation MSRV 1.85
Speck speck-cipher crates.io Documentation MSRV 1.85
Threefish threefish crates.io Documentation MSRV 1.85
Twofish twofish crates.io Documentation MSRV 1.85
XTEA xtea crates.io Documentation MSRV 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.