Authenticated Encryption with Associated Data Algorithms: high-level encryption ciphers
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Balazs Horvath 38a19b1f82 Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps
Three independent defects blocked the pact migration.

1. belt-dwp depended on universal-hash from kade/universal-hashes,
   which does not ship that package. It lives in kade/traits.

2. Four crates resolved twice in the graph, once from crates.io and
   once from the forks: belt-block, cipher, crypto-common and aead.
   The two BeltBlock types are distinct, so the cipher trait impls
   did not unify and belt-dwp failed with 8 unsatisfied-bound errors.
   Added patch.crates-io entries for all four. Registry sources drop
   from 37 to 12; patch.unused is empty.

3. crypto-common::InnerIvInit::inner_iv_init takes Self::Inner by
   value. belt-dwp called it on the BeltBlock-pinned BeltCtrCore alias
   while passing &self.cipher of the generic parameter C, which never
   unified. BeltCtr/BeltCtrCore are aliases for GenericBeltCtr<C> /
   GenericBeltCtrCore<C>, so the call sites now use the generic types
   and clone the inner cipher; the AeadInOut bound gains Clone.

cargo test --workspace: 217 passed, 0 failed, 10 ignored.
cargo clippy --workspace: clean. The one remaining clippy error is
pre-existing upstream, belt-dwp/benches/mod.rs uses #![feature(test)]
and cannot build on stable under --all-targets.
2026-10-04 15:14:25 +02:00
.cargo CI: fix security audit (#528) 2023-05-20 11:15:07 -06:00
.github CI: bump clippy to Rust 1.92 (#756) 2025-12-26 10:44:31 -07:00
aead-stream convert: flatten AEADs non-aes-gcm deps to kade/* refs 2026-08-30 20:12:07 +02:00
aes-gcm Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
aes-gcm-siv Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
aes-siv Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
ascon-aead128 Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
belt-dwp Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
benches Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
ccm Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
chacha20poly1305 fix: make the workspace resolvable as a git dependency 2026-10-04 12:12:12 +02:00
deoxys Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
eax Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
mgm Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
ocb3 Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
xaes-256-gcm Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
.gitignore Move criterion benchmarks into a separate crate (#210) 2020-08-26 12:10:45 +00:00
Cargo.lock Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
Cargo.toml Migrate to kade forks: unify belt-dwp, patch duplicate crypto deps 2026-10-04 15:14:25 +02:00
README.md HTTPS links 2025-09-02 20:46:06 -06:00
SECURITY.md Add SECURITY.md 2023-04-23 19:50:06 -06:00
traits fix: make the workspace resolvable as a git dependency 2026-10-04 12:12:12 +02:00

RustCrypto: Authenticated Encryption with Associated Data (AEAD) Algorithms

Dependency Status Project Chat

Collection of Authenticated Encryption with Associated Data (AEAD) algorithms written in pure Rust.

AEADs are high-level symmetric encryption primitives which defend against a wide range of potential attacks (i.e. IND-CCA3).

Usage

Crates functionality is expressed in terms of traits defined in the aead crate.

Crates

Name Algorithm Crates.io Documentation MSRV
aead-stream STREAM crates.io Documentation 1.85
aes-gcm-siv AES-GCM-SIV crates.io Documentation 1.85
aes-gcm AES-GCM crates.io Documentation 1.85
aes-siv AES-SIV crates.io Documentation 1.85
ascon-aead128 Ascon crates.io Documentation 1.85
ccm CCM crates.io Documentation 1.85
chacha20poly1305 (X)ChaCha20Poly1305 crates.io Documentation 1.85
deoxys Deoxys-I/II crates.io Documentation 1.85
eax EAX crates.io Documentation 1.85
mgm MGM crates.io Documentation 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.