#encryption #encryption-key #public-key #traits #transmit #cryptosystems

no-std kem

Traits for Key Encapsulation Mechanisms (KEMs): public-key cryptosystems designed to enable a sender (a.k.a. encapsulator) to generate and encrypt a short secret key and transmit it to a receiver (a.k.a. decapsulator) confidentially

10 releases

Uses new Rust 2024

0.4.0-rc.5 Jan 23, 2026
0.4.0-rc.1 Dec 27, 2025
0.4.0-pre.2 Nov 5, 2025
0.3.0-rc.6 Feb 5, 2026
0.0.0 Feb 9, 2021

#2909 in Cryptography

Download history 7365/week @ 2025-10-23 7542/week @ 2025-10-30 12517/week @ 2025-11-06 12088/week @ 2025-11-13 10012/week @ 2025-11-20 13762/week @ 2025-11-27 20012/week @ 2025-12-04 17409/week @ 2025-12-11 15511/week @ 2025-12-18 10252/week @ 2025-12-25 21105/week @ 2026-01-01 27025/week @ 2026-01-08 21752/week @ 2026-01-15 25004/week @ 2026-01-22 25934/week @ 2026-01-29 26664/week @ 2026-02-05

103,550 downloads per month
Used in 64 crates (15 directly)

Apache-2.0 OR MIT

39KB
691 lines

RustCrypto: Key Encapsulation Mechanisms (KEMs)

crate Docs Build Status Apache2/MIT licensed Rust Version Project Chat

About

This crate provides a common set of traits for key encapsulation mechanisms—algorithms for non-interactively establishing secrets between peers.

This is intended to be implemented by libraries which produce or contain implementations of key encapsulation mechanisms, and used by libraries which want to produce or consume encapsulated secrets while generically supporting any compatible backend.

License

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.

Dependencies

~0.5–1.8MB
~40K SLoC