Skip to content

Commit a0e77e4

Browse files
Defined APV values for ECDH-ES
1 parent eb61991 commit a0e77e4

1 file changed

Lines changed: 16 additions & 0 deletions

File tree

openid-4-verifiable-presentations-1_0.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,22 @@ into the key derivation process that is used to derive the content encryption ke
14101410

14111411
Note: For encryption, implementers have a variety of options available through JOSE, including the use of Hybrid Public Key Encryption (HPKE) as detailed in [@I-D.ietf-jose-hpke-encrypt].
14121412

1413+
### ECDH-ES APU/APV Values
1414+
When performing Reponse Encryption where the `alg` is ECDH-ES the `apv` MUST be set by the Wallet and validated by the Verifier. The value to set is is the base64url encodig of the sha-256 hash of the bytes of several fields concatanated. The fields to be concatanated is based on the response mode:
1415+
1416+
- When response mode is `direct_post.jwt` the clientId, nonce, jwkThumbprint and responseUri
1417+
- When response mode is `dc_api.jwt` the origin, nonce and jwkThumbprint
1418+
1419+
(TODO: Add two examples of the apv values, one for `direct_post.jwt` and another for `dc_api.jwt`).
1420+
1421+
The fields must be concatonated in the order specified here before being hashed, and base64url encoded. To validate the `apv` the Verifier MUST construct the same value and compare it to the `apv` included in the protected headed. If the `apv` value fails validation the Verifier MUST stop processing and discard the response.
1422+
1423+
These values are the same as those required to perform verification of the credential presentations. This binds the encryption to the presentation and allows the verifier to terminate processing early when the presentation is not meant for them.
1424+
1425+
Note that because the `apv` is attached, this does not allow the encryption to fail closed (i.e. be unable to decrypt when the presentation is not meant for them), but the same approach could be taken when such an algorithm is supported.
1426+
1427+
There are no requirements on the `apu` value so the Wallet may use any value (including leaving it empty).
1428+
14131429
### Response Mode "direct_post.jwt" {#direct_post_jwt}
14141430

14151431
This specification also defines a new Response Mode `direct_post.jwt`, which allows for encryption to be used on top of the Response Mode `direct_post` defined in (#response_mode_post). The mechanisms described in (#response_mode_post) apply unless specified otherwise in this section.

0 commit comments

Comments
 (0)