openid / openid/OpenID4VP

Support negotiation of JWE content encryption (enc) algorithms for encrypted Authorization Requests

Open
#751 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Shell
Stars
112
Forks
38
Avg merge
12d 19h
Merged PRs (30d)
4

Description

To enable Request Encryption, the verifier can advertise usage of the POST method to receive wallet metadata, in particular a wallet-provided encryption key, which will be specified by the wallet as a JSON Web Key in the keys array of the wallet_metadata.jwks parameter if it supports request encryption. The key encryption algorithm can thus be inferred from the alg field of the JSON Web Key, but I currently miss any negotiation/advertisement option to agree on a content encryption algorithm (enc value).

This differs from how response encryption is handled, where wallet_metadata allows negotiation of both key as well as content encryption algorithms via authorization_encryption_alg_values_supported and authorization_encryption_enc_values_supported. Without external ecosystem requirements or additional out-of-band exchange mechanisms, this leaves the verifier assuming a default enc algorithm.

If this is indeed a gap in the current spec that is not intended, I would propose adding an additional parameter analogous to request_object_encryption_enc_values_supported from the RFC 9101 Authorization Server metadata parameters to wallet_metadata.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by comparing the existing wallet_metadata response-encryption parameters with the request-encryption flow described in the issue, then review the RFC 9101 request_object_encryption_enc_values_supported parameter. Done means the specification clearly establishes whether wallet_metadata advertises request-object content-encryption algorithms and defines the corresponding parameter and negotiation behavior.

Written by the indexing model from the issue text.

Assessment

Domain
cryptography, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.