Skip to content

HPKE base mode support or ephemeral-static ECDH API #300

Closed
@ctz

Description

@ctz

Problem:

Over in rustls, we'd like to implement Encrypted Client Hello. This uses HPKE "Base" mode. We've defined traits to generalise over this use, and would like to implement these traits on top of aws-lc-rs. HPKE is a pretty straightforward construction and I think the existing AEAD and HKDF APIs can be reused for this. Unfortunately the ECDH API cannot, because it only supports ephemeral-ephemeral key exchange -- the server key in ECH is static.

Solution:

I think there are two possible solutions:

  1. aws-lc-rs exposes HPKE base mode as a first-class API, and we use this directly.
  2. aws-lc-rs exposes an ephemeral-static ECDH API (and we do the glueing-together and known-answer testing in rustls.)

For reference these have issues/PRs in ring:

  1. Base Mode HPKE briansmith/ring#1462
  2. X25519 (and/or ECDH in general) with static keys briansmith/ring#331

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions