- Rust 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
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
|
||
| .github | ||
| aes | ||
| aria | ||
| belt-block | ||
| blowfish | ||
| camellia | ||
| cast5 | ||
| cast6 | ||
| des | ||
| gift | ||
| idea | ||
| kuznyechik | ||
| magma | ||
| rc2 | ||
| rc5 | ||
| rc6 | ||
| serpent | ||
| sm4 | ||
| speck | ||
| threefish | ||
| twofish | ||
| xtea | ||
| .gitignore | ||
| Cargo.toml | ||
| README.md | ||
RustCrypto: block ciphers
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:
- AEADs: GCM, SIV, CCM, MGM, etc.
- MACs: CMAC, PMAC.
- Block modes: CTR, CBC, CFB, etc.
- Key wrapping: AES-KW.
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 |
|||
| ARIA | aria |
|||
| BelT block cipher | belt-block |
|||
| Blowfish | blowfish |
|||
| Camellia | camellia |
|||
| CAST5 (CAST-128) | cast5 |
|||
| CAST6 (CAST-256) | cast6 |
|||
| DES + 3DES (DEA, 3DEA) | des |
|||
| Gift | gift-cipher |
|||
| IDEA | idea |
|||
| Kuznyechik (GOST R 34.12-2015) | kuznyechik |
|||
| Magma (GOST R 34.12-2015) | magma |
|||
| RC2 (ARC2) | rc2 |
|||
| RC5 | rc5 |
|||
| RC6 | rc6 |
|||
| Serpent | serpent |
|||
| SM4 | sm4 |
|||
| Speck | speck-cipher |
|||
| Threefish | threefish |
|||
| Twofish | twofish |
|||
| XTEA | xtea |
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.