-
Notifications
You must be signed in to change notification settings - Fork 63
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HPKE base mode support or ephemeral-static ECDH API #300
Comments
Seeing as AWS-LC has API to support HPKE, we'll pursue "option 1" and provide a first-class API for HPKE. |
A PR for "option 2" is here: #302 |
Hi @ctz -- as of aws-lc-rs v1.6.0 we support agreement with non-ephemeral keys. Does this resolve this issue for you? |
👋 Hi folks, Just wanted to report back that we implemented HPKE in Rustls using the non-ephemeral key agreement support added in 1.6.0+ - thanks again! In case it's interesting I also bumped into a challenge w.r.t the HKDF API: in short, the In RFC 9180 there's one place (In Section 5.1, while computing the
The existing HKDF API doesn't allow access to extract PRKs for this purpose, and so we had to implement this using our in-crate HKDF-Using-HMAC algorithms instead of using the native AWS HKDF algorithms. There's no change required from our end, I think we're happy with the arrangement we landed on. I just wanted to share this in case it was helpful for considering future API adjustments. Thanks again for your support! |
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:
For reference these have issues/PRs in ring:
The text was updated successfully, but these errors were encountered: