A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Logical | Verb | Normative Language | Section | How would this be tested | Difficult to test? | Core Req? | Worth errata? | Positive Test | Negative Test | |||||||||||||||||||||||||||
2 | Trees | (linked) | Data Models | Verifier Behavior | Holder-Client Behavior | Issuer Behavior | (reword or clarify) | (human-readable) | (link) | (human-readable) | (link) | ||||||||||||||||||||||||||
3 | MUST | The Presentation Definition MUST contain an id property | 5.0 | X | |||||||||||||||||||||||||||||||||
4 | MUST | The value of this property MUST be a string. | X | X | |||||||||||||||||||||||||||||||||
5 | SHOULD | The string SHOULD provide a unique ID for [i.e. within] the desired context | X | X | |||||||||||||||||||||||||||||||||
6 | MUST | The Presentation Definition MUST contain an input_descriptors property | X | X | |||||||||||||||||||||||||||||||||
7 | MUST | Its value MUST be an array of Input Descriptor Objects, | X | X | |||||||||||||||||||||||||||||||||
8 | ?? | All inputs listed in the input_descriptors array are required for submission, unless otherwise specified by a Feature. | ? | ||||||||||||||||||||||||||||||||||
9 | SHOULD | If `name` prop is present, its value SHOULD be a human-friendly string intended to constitute a distinctive designation of the Presentation Definition. | X | X | |||||||||||||||||||||||||||||||||
10 | MUST | If `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. | X | X | |||||||||||||||||||||||||||||||||
11 | MAY | The 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 ^, MUST | The value for each claim format property (mentioned above) MUST be an object composed as follows: | X | ||||||||||||||||||||||||||||||||||
13 | IF ^, MUST | The 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 ^, MUST | Its value MUST be an array of one or more format-specific algorithmic identifier references, as noted in the Claim Format Designations section. | X | ||||||||||||||||||||||||||||||||||
15 | MUST | All Input Descriptors MUST be satisfied, unless otherwise specified by a Feature. | 5.1 | X | X | ||||||||||||||||||||||||||||||||
16 | MUST | The Input Descriptor Object MUST contain an id property. | 5.1.1 | X | |||||||||||||||||||||||||||||||||
17 | MUST | The 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 | SHOULD | The 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 | MAY | The Input Descriptor Object MAY contain a purpose property. | X | ||||||||||||||||||||||||||||||||||
20 | IF ^, MUST | If [^is] present, its value MUST be a string that describes the purpose for which the Claim's data is being requested. | X | ? | |||||||||||||||||||||||||||||||||
21 | MAY | The Input Descriptor Object MAY contain a format property. | X | ||||||||||||||||||||||||||||||||||
22 | IF ^, MUST | If present, its value MUST be an object with one or more properties matching the registered Claim Format Designations | X | ||||||||||||||||||||||||||||||||||
23 | MUST | The Input Descriptor Object MUST contain a constraints property. | X | ||||||||||||||||||||||||||||||||||
24 | A and/or B | MUST | [The constraints property's] value MUST be an object composed of at least one of the following properties, UNLESS otherwise specified by a Feature: | X | X | The object must have at least one fields. property? only prop other than fields.* is limit_disclosure, which would make no sense alone | |||||||||||||||||||||||||||||||
25 | A1 | MUST | The 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. | X | X | ||||||||||||||||||||||||||||||||
26 | A1 | MAY | The array MUST be evaluated from 0-index forward, breaking as soon as a Field Query Result is found | X | X | ||||||||||||||||||||||||||||||||
27 | A2 | The fields object MAY contain an id property. | X | ? | |||||||||||||||||||||||||||||||||
28 | A2 | IF ^ MUST | If 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 | A3 | MAY | The fields object MAY contain a purpose property. | X | |||||||||||||||||||||||||||||||||
30 | A3 | IF ^ MUST | If present, its value MUST be a string that describes the purpose for which the field is being requested. | X | |||||||||||||||||||||||||||||||||
31 | A4 | MAY | The fields object MAY contain a name property. | X | |||||||||||||||||||||||||||||||||
32 | A4 | IF ^ MUST | If present, its value MUST be a string | X | |||||||||||||||||||||||||||||||||
33 | A4 | IF ^ SHOULD | If present, its value SHOULD be a human-friendly name that describes what the target field represents. | X | |||||||||||||||||||||||||||||||||
34 | A5 | MAY | The fields object MAY contain a filter property | X | |||||||||||||||||||||||||||||||||
35 | A5 | IF ^ MUST | If 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 | A6 | MAY | The fields object MAY contain an optional property. | X | |||||||||||||||||||||||||||||||||
37 | A6 | IF ^ MUST | The 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 | A6 | IF ^ MUST | Even 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 | A7 | MAY | Remember a valid JSON Schema MAY contain additional keywords (e.g., formatMinimum and formatMaximum) that require extensions to handle properly. | X | |||||||||||||||||||||||||||||||||
40 | A7 | IF ^ SHOULD | A Holder SHOULD be able to gracefully handle additional properties, even if this just means ignoring the added keywords. | X | |||||||||||||||||||||||||||||||||
41 | B1 | MAY | The constraints object MAY contain a limit_disclosure property. | X | |||||||||||||||||||||||||||||||||
42 | B1 | IF ^MUST | If present, its value MUST be one of the following strings: required / preferred | X | |||||||||||||||||||||||||||||||||
43 | B1 | IF ^MUST | REQUIRED indicates that the Conformant Consumer MUST limit submitted fields to those listed in the fields array (if present). | X | |||||||||||||||||||||||||||||||||
44 | B1 | IF ^MUST | Conformant 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 | B2 | MAY | Omission 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 | MAY | a Holder may wish to have assurances as to the provenance, identity, or status of a Presentation Definition. | 5.2 | X | X | ||||||||||||||||||||||||||||||||
47 | MAY | Some presentation protocols may require that presentations be unique | X | X | |||||||||||||||||||||||||||||||||
48 | MAY | Other protocols may require that a presentation be bound to a particular communication exchange or session | X | X | |||||||||||||||||||||||||||||||||
49 | MUST | Embedded Presentation Submission objects MUST be located within target data format as the value of a presentation_submission property, | 6.0 | X | |||||||||||||||||||||||||||||||||
50 | MUST | The 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) | X | X | ||||||||||||||||||||||||||||||||
51 | MUST | The presentation_submission object MUST contain an id property. The value of this property MUST be a unique identifier, such as a UUID. | 6.0 | X | |||||||||||||||||||||||||||||||||
52 | MUST | The presentation_submission object MUST contain a definition_id property. | X | ||||||||||||||||||||||||||||||||||
53 | MUST | The value of the definition_id property MUST be the id value of a valid Presentation Definition. | X | ||||||||||||||||||||||||||||||||||
54 | MUST | The presentation_submission object MUST include a descriptor_map property | X | ||||||||||||||||||||||||||||||||||
55 | MUST | The value of this property MUST be an array of Input Descriptor Mapping Objects, composed as follows: | X | ||||||||||||||||||||||||||||||||||
56 | A | MUST | The descriptor_map object MUST include an id property. | X | |||||||||||||||||||||||||||||||||
57 | A | MUST | he 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 | B | MUST | The descriptor_map object MUST include a format property. | X | |||||||||||||||||||||||||||||||||
59 | B | MUST | The value of this property MUST be a string that matches one of the Claim Format Designation. | X | |||||||||||||||||||||||||||||||||
60 | C | MUST | The descriptor_map object MUST include a path property. | X | |||||||||||||||||||||||||||||||||
61 | C | MUST | The value of this property MUST be a JSONPath string expression. | X | |||||||||||||||||||||||||||||||||
62 | D | MAY | The object MAY include a path_nested object to indicate the presence of a multi-Claim envelope format. | X | |||||||||||||||||||||||||||||||||
63 | D | may | The nesting [in a path_nested object] may be any number of levels deep. | X | X (MAY) - UNPOPULAR AND RARELY IMPLEMENTED | test vector with a nested path 5 layers deep? | |||||||||||||||||||||||||||||||
64 | D | ??? | The format of a path_nested object mirrors that of a descriptor_map property. | X | X | X (MUST) | |||||||||||||||||||||||||||||||
65 | D | MUST | The 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.1 | X | (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.2 | X | X Is there a Verifier SHOULD or MUST implicit here? | ||||||||||||||||||||||||||||||||
68 | MUST | During 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 | ? | X | X | |||||||||||||||||||||||||||||||
69 | --------- | {Skipping section 7 for now} | 7 | ||||||||||||||||||||||||||||||||||
70 | MUST | A Conformant Consumer of a Presentation Definition MUST use the following process to validate whether or not its candidate inputs meet the requirements it describes | 8 | X | X | ambiguously normative? | |||||||||||||||||||||||||||||||
71 | MUST | The 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-02 | 10.1 | X | X | ||||||||||||||||||||||||||||||||
72 | MUST | The 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 execution | 11 | X | X | ||||||||||||||||||||||||||||||||
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 |