Skip to content

First pass at HAIP HPKE section - #362

Open
Sakurann wants to merge 7 commits into
mainfrom
haip-hpke
Open

First pass at HAIP HPKE section#362
Sakurann wants to merge 7 commits into
mainfrom
haip-hpke

Conversation

@Sakurann

@Sakurann Sakurann commented Mar 9, 2026

Copy link
Copy Markdown
Collaborator

resolves #356
resolves #357
builds up on #361 (#361 needs to be merged first)

@Sakurann Sakurann changed the title Haip hpke First pass at HAIP HPKE section Mar 9, 2026
@Sakurann
Sakurann requested review from GarethCOliver, awoie, bc-pi, c2bo, hlozi, jogu, selfissued, tlodderstedt and tplooker and removed request for jogu March 9, 2026 16:07
Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated
Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated

### Response Encryption using HPKE with JWE

Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3.1]. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `HPKE-0` (as defined in [@I-D.ietf-jose-hpke-encrypt]). The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) value `A128GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported by Verifiers and Wallets.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need to omit enc.

Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>

@GarethCOliver GarethCOliver left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm with the suggested change.

Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated
Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated
Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated
Comment thread 1.1/openid4vc-high-assurance-interoperability-profile-1_1.md Outdated
@Sakurann
Sakurann marked this pull request as ready for review April 27, 2026 20:23
Co-authored-by: Kristina <52878547+Sakurann@users.noreply.github.com>
Co-authored-by: Jan Vereecken <ciao@janvereecken.com>
@Sakurann
Sakurann requested a review from javereec April 27, 2026 20:30

### Response Encryption using ECDH-ES with JWE

Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3]. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `ECDH-ES` (as defined in [@!RFC7518, section 4.6]), with key agreement utilizing keys on the `P-256` curve (see [@!RFC7518, section 6.2.1.1]) MUST be supported. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) values `A128GCM` and `A256GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported by Verifiers. Wallets MUST support `A128GCM` or `A256GCM`, or both. If both are supported, the Wallet SHOULD use `A256GCM` for the JWE `enc`. Verifiers MUST list both `A128GCM` and `A256GCM` in `encrypted_response_enc_values_supported` in their client metadata.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this makes the normative requirement clearer:

Suggested change
Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3]. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `ECDH-ES` (as defined in [@!RFC7518, section 4.6]), with key agreement utilizing keys on the `P-256` curve (see [@!RFC7518, section 6.2.1.1]) MUST be supported. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) values `A128GCM` and `A256GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported by Verifiers. Wallets MUST support `A128GCM` or `A256GCM`, or both. If both are supported, the Wallet SHOULD use `A256GCM` for the JWE `enc`. Verifiers MUST list both `A128GCM` and `A256GCM` in `encrypted_response_enc_values_supported` in their client metadata.
Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3]. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `ECDH-ES` (as defined in [@!RFC7518, section 4.6]), with key agreement utilizing keys on the `P-256` curve (see [@!RFC7518, section 6.2.1.1]) MUST be supported. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) values `A128GCM` and `A256GCM` (as defined in [@!RFC7518, section 5.3]) MUST be supported by Verifiers. Wallets MUST support `A128GCM` or `A256GCM` or both. If the Wallet supports both, it SHOULD use `A256GCM` for the JWE `enc`. Verifiers MUST list both `A128GCM` and `A256GCM` in `encrypted_response_enc_values_supported` in their client metadata.


### Response Encryption using HPKE with JWE

Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3.1] using JOSE HPKE integrated encryption. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `HPKE-0` (as defined in [@I-D.ietf-jose-hpke-encrypt]) MUST be supported by Wallets and Verifiers. `psk_id` (pre-shared key id) header parameter MUST NOT be present. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) MUST NOT be present.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3.1] using JOSE HPKE integrated encryption. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `HPKE-0` (as defined in [@I-D.ietf-jose-hpke-encrypt]) MUST be supported by Wallets and Verifiers. `psk_id` (pre-shared key id) header parameter MUST NOT be present. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) MUST NOT be present.
Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3.1] using JOSE HPKE integrated encryption. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `HPKE-0` (as defined in [@I-D.ietf-jose-hpke-encrypt]) MUST be supported by Wallets and Verifiers. The `psk_id` (pre-shared key id) header parameter MUST NOT be present. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) MUST NOT be present.


### Response Encryption using HPKE with JWE

Response encryption MUST be performed as specified in [@!OIDF.OID4VP, section 8.3.1] using JOSE HPKE integrated encryption. The JWE `alg` (algorithm) header parameter (see [@!RFC7516, section 4.1.1]) value `HPKE-0` (as defined in [@I-D.ietf-jose-hpke-encrypt]) MUST be supported by Wallets and Verifiers. `psk_id` (pre-shared key id) header parameter MUST NOT be present. The JWE `enc` (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) MUST NOT be present.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

psk_id (pre-shared key id) header parameter MUST NOT be present

The JWE enc (encryption algorithm) header parameter (see [@!RFC7516, section 4.1.2]) MUST NOT be present.

It would probably be helpful to clarify where/when they must not be present.


## Wallet Invocation

Either redirects or W3C Digital Credentials API (or an equivalent platform API) can be used by the Verifiers as defined in this section.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is really normative language. It should be rewritten to make this clear. Here's what I think is intended:

Suggested change
Either redirects or W3C Digital Credentials API (or an equivalent platform API) can be used by the Verifiers as defined in this section.
Verifiers that use OpenID for Verifiable Presentations via redirects or the W3C Digital Credentials API (or an equivalent platform API) MUST follow the requirements defined in this section.

@fkj

fkj commented Jul 24, 2026

Copy link
Copy Markdown
Member

I think this needs to be rebased before merging, and also we should probably check that section number references are still accurate.

@bc-pi bc-pi left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤷

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Profiling JOSE-HPKE for HAIP 1.1 Who HPKE is mandatory / optional for in HAIP 1.1

5 participants