18 releases

0.2.0 Dec 2, 2023
0.1.2 Nov 21, 2023
0.1.1 Jun 22, 2023
0.1.0 Feb 7, 2022
0.0.2 Nov 10, 2020

#2 in #hpke

Download history 2453/week @ 2024-07-29 2447/week @ 2024-08-05 2368/week @ 2024-08-12 2722/week @ 2024-08-19 5400/week @ 2024-08-26 4671/week @ 2024-09-02 3283/week @ 2024-09-09 3962/week @ 2024-09-16 4173/week @ 2024-09-23 4627/week @ 2024-09-30 2303/week @ 2024-10-07 4861/week @ 2024-10-14 5157/week @ 2024-10-21 4409/week @ 2024-10-28 5036/week @ 2024-11-04 3992/week @ 2024-11-11

18,861 downloads per month
Used in 10 crates (3 directly)

MPL-2.0 license

1.5MB
1.5K SLoC

HPKE

Build & Test crates.io Docs Rust Version

An implementation of HPKE (RFC 9180) with flexible crypto backends.

From the RFC:

This scheme provides a variant of public-key encryption of arbitrary-sized plaintexts for a recipient public key. It also includes three authenticated variants, including one which authenticates possession of a pre-shared key, and two optional ones which authenticate possession of a KEM private key.

Supported HPKE modes

  • Base
  • PSK
  • Auth
  • AuthPSK

Supported cipher suites

KEM

  • DH KEM x25519
  • DH KEM P256

AEAD

  • AES GCM 128
  • AES GCM 256
  • ChaCha20 Poly1305
  • Exporter only

KDF

  • HKDF SHA-256
  • HKDF SHA-384
  • HKDF SHA-512

Crypto Backends

This crate does not implement the cryptographic primitives itself. Instead it expects an implementation of the HpkeCrypto trait.

Dependencies