no-std kem

Traits for key encapsulation mechanisms

2 unstable releases

0.2.0 May 26, 2022
0.1.0 Jan 3, 2022
0.0.0 Feb 9, 2021

#318 in #crypto

Download history 12/week @ 2023-08-10 12/week @ 2023-08-17 19/week @ 2023-08-24 5/week @ 2023-08-31 15/week @ 2023-09-07 10/week @ 2023-09-14 5/week @ 2023-09-21 12/week @ 2023-09-28 15/week @ 2023-10-05 7/week @ 2023-10-12 12/week @ 2023-10-19 14/week @ 2023-10-26 13/week @ 2023-11-02 11/week @ 2023-11-09 13/week @ 2023-11-16 15/week @ 2023-11-23

57 downloads per month
Used in 2 crates

Apache-2.0 OR MIT

73 lines

RustCrypto: Key Encapsulation Mechanisms (KEMs)

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

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.

The crate exposes four traits, Encapsulator, Decapsulator, AuthEncapsulator, and AuthDecapsulator. These traits represent the ability to initiate a key exchange and complete a key exchange, in the case where the sender is authenticated to the receiver and in the case where the sender is not.


Minimum Supported Rust Version

Rust 1.56 or higher.

Minimum supported Rust version can be changed in the future, but it will be done with a minor version bump.

SemVer Policy

  • All on-by-default features of this library are covered by SemVer
  • MSRV is considered exempt from SemVer as noted above
  • The off-by-default features derive-preview and digest-preview are unstable "preview" features which are also considered exempt from SemVer. Breaking changes to these features will, like MSRV, be done with a minor version bump.


Licensed under either of

at your option.


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.