Skip to content

Commit f243f64

Browse files
jogutplookerc2boselfissued
authored
Fix description of deviceauth_alg_values for mdoc + add examples (#650)
Merging now we have all the reviews as per agreement on yesterday's WG call. Thanks to Tobias for doing all the work! * Grammar fixes to sentence about deviceauth_alg_values for mdoc As per Oliver's suggestion on the issue closes #644 * updates to PR * Update openid-4-verifiable-presentations-1_0.md Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com> * Apply MikeJ's suggestions Co-authored-by: Michael B. Jones <michael_b_jones@hotmail.com> --------- Co-authored-by: Tobias Looker <tobias.looker@mattr.global> Co-authored-by: Tobias Looker <tplooker@gmail.com> Co-authored-by: Christian Bormann <8774236+c2bo@users.noreply.github.com> Co-authored-by: Michael B. Jones <michael_b_jones@hotmail.com>
1 parent 37721f1 commit f243f64

File tree

1 file changed

+29
-11
lines changed

1 file changed

+29
-11
lines changed

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

Lines changed: 29 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2751,23 +2751,41 @@ Some document types support some transaction data ((#transaction_data)) to be pr
27512751
The `vp_formats_supported` parameter of the Verifier metadata or Wallet metadata MUST have the Credential Format Identifier as a key, and the value MUST be an object consisting of the following name/value pairs:
27522752

27532753
* `issuerauth_alg_values`: OPTIONAL. A non-empty array containing cryptographic algorithm identifiers. The Credential MUST be considered to fulfill the requirement(s) expressed in this parameter if one of the following is true: 1) The value in the array matches the 'alg' value in the IssuerAuth COSE header. 2) The value in the array is a fully specified algorithm according to [@!I-D.ietf-jose-fully-specified-algorithms] and the combination of the `alg` value in the `IssuerAuth` COSE header and the curve used by the signing key of the COSE structure matches the combination of the algorithm and curve identified by the fully specified algorithm. As an example, if the `IssuerAuth` structure contains an `alg` header with value `-7` (which stands for ECDSA with SHA-256 in [@IANA.COSE]) and is signed by a P-256 key, then it matches an `issuerauth_alg_values` element of `-7` and `-9` (which stands for ECDSA using P-256 curve and SHA-256 in [@!I-D.ietf-jose-fully-specified-algorithms]).
2754-
* `deviceauth_alg_values`: OPTIONAL. A non-empty array containing cryptographic algorithm identifiers. The Credential MUST be considered to fulfill requirement(s) expressed in this parameter if one of the following is true: 1) The value in the array matches the 'alg' value in the `DeviceSignature` or `DeviceMac` COSE header. 2) The value in the array is a fully specified algorithm according to [@!I-D.ietf-jose-fully-specified-algorithms] and the combination of the `alg` value in the `DeviceSignature` COSE header and the curve used by the signing key of the COSE structure matches the combination of the algorithm and curve identified by the fully specified algorithm. 3) The value in the array is the `alg` of the `DeviceMac` COSE header is `HMAC 256/256` (as described in Section 9.1.3.5 of [@ISO.18013-5]) and the curve of the device key (from Table 22 of [@ISO.18013-5]) matches one of the values defined in the following table:
2754+
* `deviceauth_alg_values`: OPTIONAL. A non-empty array containing cryptographic algorithm identifiers. The Credential MUST be considered to fulfill the requirement(s) expressed in this parameter if one of the following is true: 1) The value in the array matches the 'alg' value in the `DeviceSignature` or `DeviceMac` COSE header. 2) The value in the array is a fully-specified algorithm according to [@!I-D.ietf-jose-fully-specified-algorithms] and the combination of the `alg` value in the `DeviceSignature` COSE header and the curve used by the signing key of the COSE structure matches the combination of the algorithm and curve identified by the fully-specified algorithm. 3) The `alg` of the `DeviceMac` COSE header is `HMAC 256/256` (as described in Section 9.1.3.5 of [@ISO.18013-5]) and the curve of the device key (from Table 22 of [@ISO.18013-5]) matches a value in the array using the identifiers defined in the following table:
27552755

2756-
| Curve Name | Value |
2756+
| Algorithm Name | Algorithm Value |
27572757
|:--- |:--- |
2758-
| Curve P-256 | -65537 |
2759-
| Curve P-384 | -65538 |
2760-
| Curve P-521 | -65539 |
2761-
| X25519 | -65540 |
2762-
| X448 | -65541 |
2763-
| brainpoolP256r1 | -65542 |
2764-
| brainpoolP320r1 | -65543 |
2765-
| brainpoolP384r1 | -65544 |
2766-
| brainpoolP512r1 | -65545 |
2758+
| HMAC 256/256 using ECDH with Curve P-256 | -65537 |
2759+
| HMAC 256/256 using ECDH with Curve P-384 | -65538 |
2760+
| HMAC 256/256 using ECDH with Curve P-521 | -65539 |
2761+
| HMAC 256/256 using ECDH with X25519 | -65540 |
2762+
| HMAC 256/256 using ECDH with X448 | -65541 |
2763+
| HMAC 256/256 using ECDH with brainpoolP256r1 | -65542 |
2764+
| HMAC 256/256 using ECDH with brainpoolP320r1 | -65543 |
2765+
| HMAC 256/256 using ECDH with brainpoolP384r1 | -65544 |
2766+
| HMAC 256/256 using ECDH with brainpoolP512r1 | -65545 |
27672767
Table: Mapping of curves to `alg` identifiers used for the `HMAC 256/256` case
27682768

27692769
Note: These are specified in OpenID4VP only for private use in this parameter in this specification, and might be superseded by a future registration in IANA.
27702770

2771+
For clarity, the following is a couple of non-normative examples of the `deviceauth_alg_values` parameter
2772+
2773+
The example below indicates the verifier supports DeviceMac with HMAC 256/256, where the MAC key is established via ECDH using keys on the P-256 curve as per Section 9.1.3.5 of [@ISO.18013-5].
2774+
2775+
```json
2776+
{
2777+
"deviceauth_alg_values": [ -65537 ]
2778+
}
2779+
```
2780+
2781+
The example below indicates the verifier supports DeviceMac with HMAC 256/256, where the MAC key is established via ECDH using keys on the P-256 curve as per Section 9.1.3.5 of [@ISO.18013-5], and DeviceSignature using ECDSA with the P-256 curve.
2782+
2783+
```json
2784+
{
2785+
"deviceauth_alg_values": [ -65537, -9 ]
2786+
}
2787+
```
2788+
27712789
The following is a non-normative example of `client_metadata` request parameter value in a request to present an ISO/IEC 18013-5 mDOC.
27722790

27732791
<{{examples/client_metadata/mso_mdoc_verifier_metadata.json}}

0 commit comments

Comments
 (0)