ABCDEFGHIJKLMNOPQRSTUVWXYZAAABACADAEAFAGAHAIAJAK
1
LogicalVerbNormative LanguageSection
How would this be tested
Difficult to test?Core Req?Worth errata?Positive TestNegative Test
2
Trees(linked)Data ModelsVerifier Behavior
Holder-Client Behavior
Issuer Behavior(reword or clarify)(human-readable)(link)(human-readable)(link)
3
MUSTThe Presentation Definition MUST contain an id property5.0X
4
MUSTThe value of this property MUST be a string.XX
5
SHOULDThe string SHOULD provide a unique ID for [i.e. within] the desired contextXX
6
MUSTThe Presentation Definition MUST contain an input_descriptors propertyXX
7
MUSTIts value MUST be an array of Input Descriptor Objects,XX
8
??All inputs listed in the input_descriptors array are required for submission, unless otherwise specified by a Feature.?
9
SHOULDIf `name` prop is present, its value SHOULD be a human-friendly string intended to constitute a distinctive designation of the Presentation Definition.XX
10
MUSTIf `purpose` prop is present, its value MUST be a string that describes the purpose for which the Presentation Definition's inputs are being used for.XX
11
MAYThe Presentation Definition MAY include a format property [in default or non-default location?], the value of which MUST be an object with one or more properties matching the registered Claim Format Designations (e.g., jwt, jwt_vc, jwt_vp, etc.).X
12
IF ^, MUSTThe value for each claim format property (mentioned above) MUST be an object composed as follows: X
13
IF ^, MUSTThe object MUST include a format-specific property (i.e., alg, proof_type) that expresses which algorithms the Verifier supports for the format.X?
14
IF ^, MUSTIts value MUST be an array of one or more format-specific algorithmic identifier references, as noted in the Claim Format Designations section.X
15
MUSTAll Input Descriptors MUST be satisfied, unless otherwise specified by a Feature.5.1XX
16
MUSTThe Input Descriptor Object MUST contain an id property.5.1.1X
17
MUSTThe value of the id property MUST be a string that does not conflict with the id of another Input Descriptor Object in the same Presentation Definition.X
18
SHOULDThe Input Descriptor Object MAY contain a name property. If present, its value SHOULD be a human-friendly name that describes what the target schema represents.X?
19
MAYThe Input Descriptor Object MAY contain a purpose property.X
20
IF ^, MUSTIf [^is] present, its value MUST be a string that describes the purpose for which the Claim's data is being requested.X?
21
MAYThe Input Descriptor Object MAY contain a format property.X
22
IF ^, MUSTIf present, its value MUST be an object with one or more properties matching the registered Claim Format DesignationsX
23
MUSTThe Input Descriptor Object MUST contain a constraints property.X
24
A and/or BMUST [The constraints property's] value MUST be an object composed of at least one of the following properties, UNLESS otherwise specified by a Feature:XXThe object must have at least one fields. property? only prop other than fields.* is limit_disclosure, which would make no sense alone
25
A1MUSTThe fields object MUST contain a path property. The value of this property MUST be an array of one or more JSONPath string expressions (as defined in the JSONPath Syntax Definition section) that select a target value from the input.XX
26
A1MAYThe array MUST be evaluated from 0-index forward, breaking as soon as a Field Query Result is foundXX
27
A2The fields object MAY contain an id property.X?
28
A2IF ^ MUSTIf present, its value MUST be a string that is unique from every other field object’s id property, including those contained in other Input Descriptor Objects.X
29
A3MAYThe fields object MAY contain a purpose property. X
30
A3IF ^ MUSTIf present, its value MUST be a string that describes the purpose for which the field is being requested.X
31
A4MAYThe fields object MAY contain a name property. X
32
A4IF ^ MUSTIf present, its value MUST be a stringX
33
A4IF ^ SHOULDIf present, its value SHOULD be a human-friendly name that describes what the target field represents.X
34
A5MAYThe fields object MAY contain a filter propertyX
35
A5IF ^ MUSTIf present its value MUST be a JSON Schema descriptor used to filter against the values returned from evaluation of the JSONPath string expressions in the path array.X?
36
A6MAYThe fields object MAY contain an optional property. X
37
A6IF ^ MUSTThe value of this property MUST be a boolean, wherein true indicates the field is optional, and false or non-presence of the property indicates the field is required. X
38
A6IF ^ MUSTEven when the optional property is present, the value located at the indicated path of the field MUST validate against the JSON Schema filter, if a filter is present.X
39
A7MAYRemember a valid JSON Schema MAY contain additional keywords (e.g., formatMinimum and formatMaximum) that require extensions to handle properly.X
40
A7IF ^ SHOULDA Holder SHOULD be able to gracefully handle additional properties, even if this just means ignoring the added keywords.X
41
B1MAYThe constraints object MAY contain a limit_disclosure property. X
42
B1IF ^MUSTIf present, its value MUST be one of the following strings: required / preferred X
43
B1IF ^MUSTREQUIRED indicates that the Conformant Consumer MUST limit submitted fields to those listed in the fields array (if present). X
44
B1IF ^MUSTConformant Consumers are not required to implement support for REQUIRED value, but they MUST understand this value sufficiently to return nothing (or cease the interaction with the Verifier) if they do not implement it.X
45
B2MAYOmission of the limit_disclosure property indicates the Conformant Consumer MAY submit a response that contains more than the data described in the fields array.X
46
MAYa Holder may wish to have assurances as to the provenance, identity, or status of a Presentation Definition.5.2XX
47
MAYSome presentation protocols may require that presentations be uniqueXX
48
MAYOther protocols may require that a presentation be bound to a particular communication exchange or sessionXX
49
MUSTEmbedded Presentation Submission objects MUST be located within target data format as the value of a presentation_submission property,6.0X
50
MUSTThe presentation_submission object MUST be included at the top-level of an Embed Target, or in the specific location described in the Embed Locations table in the Embed Target section below.(6.4.1)XX
51
MUSTThe presentation_submission object MUST contain an id property. The value of this property MUST be a unique identifier, such as a UUID.6.0X
52
MUSTThe presentation_submission object MUST contain a definition_id property.X
53
MUSTThe value of the definition_id property MUST be the id value of a valid Presentation Definition.X
54
MUSTThe presentation_submission object MUST include a descriptor_map propertyX
55
MUSTThe value of this property MUST be an array of Input Descriptor Mapping Objects, composed as follows:X
56
AMUSTThe descriptor_map object MUST include an id property.X
57
AMUSThe value of this property MUST be a string that matches the id property of the Input Descriptor in the Presentation Definition that this Presentation Submission is related to.X
58
BMUSTThe descriptor_map object MUST include a format property.X
59
BMUSTThe value of this property MUST be a string that matches one of the Claim Format Designation.X
60
CMUSTThe descriptor_map object MUST include a path property.X
61
CMUSTThe value of this property MUST be a JSONPath string expression.X
62
DMAYThe object MAY include a path_nested object to indicate the presence of a multi-Claim envelope format.X
63
DmayThe nesting [in a path_nested object] may be any number of levels deep. XX (MAY) - UNPOPULAR AND RARELY IMPLEMENTEDtest vector with a nested path 5 layers deep?
64
D???The format of a path_nested object mirrors that of a descriptor_map property. XXX (MUST)
65
DMUSTThe id property MUST be the same for each level of nesting.X
66
???If parsing of the Submission Entry (and any Nested Submission Traversal Objects present within it) produces a valid result, process it as the submission against the Input Descriptor indicated by the id property of the containing Input Descriptor Mapping Object.6.1X(SHOULD)?
67
SHOULD NOT If the fields property IS NOT present, or contains zero field objects, the submission SHOULD NOT include any data from the Claim.6.2XX Is there a Verifier SHOULD or MUST implicit here?
68
MUSTDuring validation, each Input Descriptor Object MUST only refer to a single discrete container within a Presentation Submission, such that all checks refer to properties within the same container and are protected by the same digital signature, if the container format supports digital signatures. 6.3?XX
69
---------{Skipping section 7 for now} 7
70
MUSTA Conformant Consumer of a Presentation Definition MUST use the following process to validate whether or not its candidate inputs meet the requirements it describes8XXambiguously normative?
71
MUSTThe Presentation Exchange specification adopts and defines the following JSON Schema data format and processing variant, which implementers MUST support for evaluation of the portions of the Presentation Exchange specification that call for JSON Schema validation: https://tools.ietf.org/html/draft-handrews-json-schema-0210.1XX
72
MUSTThe Presentation Exchange specification adopts and defines the following syntax from the JSONPath object query language, which implementers MUST support for evaluation of the portions of the Presentation Exchange specification that call for JSONPath expression execution11XX
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100