Skip to content

Commit 4a6aaa9

Browse files
authored
support returning multiple presentations for a single dcql credential query when requested using multiple (#398)
6 approvals. open for more than a week.
1 parent cf917b0 commit 4a6aaa9

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed

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

+19-5
Original file line numberDiff line numberDiff line change
@@ -669,8 +669,8 @@ unknown properties.
669669

670670
## Credential Query {#credential_query}
671671

672-
A Credential Query is an object representing a request for a presentation of one
673-
Credential.
672+
A Credential Query is an object representing a request for a presentation of one or more matching
673+
Credentials.
674674

675675
Each entry in `credentials` MUST be an object with the following properties:
676676

@@ -686,6 +686,9 @@ be present more than once.
686686
Verifiable Credential. Valid Credential Format Identifier values are defined in
687687
(#format_specific_parameters).
688688

689+
`multiple`:
690+
: OPTIONAL. A boolean which indicates whether multiple Credentials can be returned for this Credential Query. If omitted, the default value is `false`.
691+
689692
`meta`:
690693
: OPTIONAL. An object defining additional properties requested by the Verifier that
691694
apply to the metadata and validity data of the Credential. The properties of
@@ -985,7 +988,7 @@ When a VP Token is returned, the respective response includes the following para
985988

986989
`vp_token`:
987990
: REQUIRED. The structure of this parameter depends on the query language used to request the presentations in the Authorization Request:
988-
* If DCQL was used, this is a JSON-encoded object; the keys are the `id` values used for the Credential Queries in the DCQL query, and the values are the Verifiable Presentations that match the respective Credential Query. The Verifiable Presentations are represented as strings or objects depending on the format as defined in (#format_specific_parameters). The same rules as above apply for encoding the Verifiable Presentations.
991+
* If DCQL was used, this is a JSON-encoded object containing entries where: the key is the `id` value used for a Credential Query in the DCQL query; and the value is an array of one or more Verifiable Presentations that match the respective Credential Query. When `multiple` is omitted, or set to `false`, the array MUST contain only one Verifiable Presentation. There MUST NOT be any entry in the JSON-encoded object for optional Credential Queries when there are no matching Credentials for the respective Credential Query. Each Verifiable Presentation is represented as a string or object, depending on the format as defined in (#format_specific_parameters). The same rules as above apply for encoding the Verifiable Presentations.
989992
* In case [@!DIF.PresentationExchange] was used, it is a string or JSON object that MUST contain a single Verifiable Presentation or an array of strings and JSON objects each of them containing a Verifiable Presentation. Each Verifiable Presentation MUST be represented as a string (that is a base64url-encoded value) or a JSON object depending on a format as defined in (#format_specific_parameters). When a single Verifiable Presentation is returned, the array syntax MUST NOT be used. If (#format_specific_parameters) defines a rule for encoding the respective Credential format in the Credential Response, this rules MUST also be followed when encoding Credentials of this format in the `vp_token` response parameter. Otherwise, this specification does not require any additional encoding when a Credential format is already represented as a JSON object or a string.
990993

991994
`presentation_submission`:
@@ -1019,7 +1022,17 @@ brevity):
10191022

10201023
```json
10211024
{
1022-
"my_credential": "eyJhbGci...QMA"
1025+
"my_credential": ["eyJhbGci...QMA"]
1026+
}
1027+
```
1028+
1029+
The following is a non-normative example of the contents of a VP Token
1030+
containing multiple Verifiable Presentations in the SD-JWT VC format when the
1031+
Credential Query has `multiple` set to `true` (shortened for brevity):
1032+
1033+
```json
1034+
{
1035+
"my_credential": ["eyJhbGci...QMA", "eyJhbGci...QMA", ...]
10231036
}
10241037
```
10251038

@@ -2283,7 +2296,7 @@ An example DCQL query using the mdoc format is shown in (#more_dcql_query_exampl
22832296

22842297
```json
22852298
{
2286-
"my_credential": "<base64url-encoded DeviceResponse>"
2299+
"my_credential": ["<base64url-encoded DeviceResponse>"]
22872300
}
22882301
```
22892302

@@ -2823,6 +2836,7 @@ The technology described in this specification was made available from contribut
28232836
* add language on client ID and nonce binding for ISO mdocs and W3C VCs
28242837
* clarify the behavior is not to sign when authorization_signed_response_alg is omitted
28252838
* add a note on the use of apu/apv in the JWE header of encrypted responses
2839+
* support returning multiple presentations for a single dcql credential query when requested using `multiple`
28262840

28272841
-24
28282842

0 commit comments

Comments
 (0)