Skip to content

Further clarify doctype_value and vct_values matching after #744, add to 1.0, and add missing document history entry - #803

Open
c2bo wants to merge 8 commits into
mainfrom
744-clarify-vct-doctype-matching
Open

c2bo wants to merge 8 commits into
mainfrom
744-clarify-vct-doctype-matching

Conversation

@c2bo

@c2bo c2bo commented Oct 1, 2026

Copy link
Copy Markdown
Member

per comment in #744

#744 (comment):

@c2bo will raise a separate PR for bringing the same changes to v1.0 Errata

(also added document history entry)

Comment thread 1.0/openid-4-verifiable-presentations-1_0.md Outdated
brentzundel and others added 2 commits October 12, 2026 13:47
merging as discussed in call today

Co-authored-by: Christian Bormann <chris.bormann@gmx.de>
@brentzundel

Copy link
Copy Markdown
Collaborator

discussed today. We cam to agreement on the language for 1.o, @c2bo will revise the PR so v1.1 matches.

Comment thread 1.0/openid-4-verifiable-presentations-1_0.md Outdated
c2bo and others added 2 commits October 22, 2026 16:33
Co-authored-by: Joseph Heenan <joseph@authlete.com>
@brentzundel

Copy link
Copy Markdown
Collaborator

discussed today: All changes have been made to review comments, please re-check (@javereec and @jogu ?)

@jogu jogu changed the title Add changes of #744 to 1.0 and add missing document history entry Further clarify doctype_value and vct_values matching after #744, add to 1.0, and add missing document history entry Oct 22, 2026
1. The `aka_vcts` claim is present and has at least one element that is contained in the `vct_values` array.
1. There exists out of band information that the received `vct` value is interpreted as a match with at least one element in the `vct_values` array.

Note: A Wallet can infer that a Credential satisfies the `vct_values` parameter via out-of-band mechanisms e.g., type extension, in the absence of an `aka_vcts` claim. However, because standard evaluation by the Verifier relies strictly on matching `vct` or `aka_vcts` values, such presentations could be subject to rejection. To preserve data minimization and avoid presentation failure, Wallets should only use out-of-band type resolution when it is known the Verifier will resolve it in the same way and accept the presentation.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the language is clearer if you flip this around:

Suggested change
Note: A Wallet can infer that a Credential satisfies the `vct_values` parameter via out-of-band mechanisms e.g., type extension, in the absence of an `aka_vcts` claim. However, because standard evaluation by the Verifier relies strictly on matching `vct` or `aka_vcts` values, such presentations could be subject to rejection. To preserve data minimization and avoid presentation failure, Wallets should only use out-of-band type resolution when it is known the Verifier will resolve it in the same way and accept the presentation.
Note: A Wallet can infer that a Credential satisfies the `vct_values` parameter via out-of-band mechanisms e.g., type extension, in the absence of an `aka_vcts` claim. However, because standard evaluation by the Verifier relies strictly on matching `vct` or `aka_vcts` values, such presentations could be subject to rejection. To preserve data minimization and avoid presentation failure, Wallets SHOULD NOT use out-of-band type resolution except when it is known the Verifier will resolve the type in the same way and accept the presentation.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving aside the wording (I'm okay with the new wording if we're going to say this), I think that SHOULD NOT is actually really hard to satisfy.

The onus really falls onto the verifier - if it's requesting a vct that is likely to have type extensions that aren't encoded in aka_vcts, it needs to keep on top of that.

If you think about the EU PID (where I believe it's expected that each country will extend it and have their own VCT) my expectation would be something like when Albania is admitted to the EU, it will be on each verifier to update to accept the VCT for Albania's PID. There is no realistic way I'm aware of for the wallet to know if the verifier has made that update or not.

The better fix is telling issuers they SHOULD include aka_vcts if they're extending a type. The VP spec is an odd place to put a requirement on issuers (and ideally it would be a MUST, which we can't do in 1.0 Errata or 1.1), but we could at least say it non-normatively here, and make it a SHOULD in the HAIP SD-JWT VC profile. Something like this (would need copying to 1.1 as well):

Suggested change
Note: A Wallet can infer that a Credential satisfies the `vct_values` parameter via out-of-band mechanisms e.g., type extension, in the absence of an `aka_vcts` claim. However, because standard evaluation by the Verifier relies strictly on matching `vct` or `aka_vcts` values, such presentations could be subject to rejection. To preserve data minimization and avoid presentation failure, Wallets should only use out-of-band type resolution when it is known the Verifier will resolve it in the same way and accept the presentation.
Note: In the absence of an `aka_vcts` claim, a Wallet can infer that a Credential satisfies the `vct_values` parameter via out-of-band mechanisms, e.g., type extension. However, a Wallet generally cannot know whether the Verifier will resolve the type in the same way, so such presentations may be rejected. The most reliable way to avoid this is for Issuers that extend a type to list the extended types in the `aka_vcts` claim defined in [@!I-D.ietf-oauth-sd-jwt-vc], so that Wallets and Verifiers can match against `vct_values` without out-of-band knowledge. A Verifier that requests a type likely to be extended by Credentials without an `aka_vcts` claim needs to recognize those extended types itself.

What do people think?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We cannot really put requirements on Issuers and this is about handling the out of band resolution. We can wordsmith to make that text better, but i would not change the general direction of this text. which is basically a warning on the out-of band resoltion (to only use it of there is certainty the verifier will act the same by ecosystem rules etc.)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think you can really get that certainty though. (and the text is carefully worded so it's not a requirement on Issuers.)

I at least see where the SHOULD / SHOULD NOT was going now. Can we clarify that it's "where the ecosystem requires Verifiers to use out of band resolution" perhaps?

I still think it would be useful to include a sentence that makes clearer that this is a thing the issuers need to get right (and to include an actual SHOULD on the issuer in HAIP).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with adding something in HAIP (or VCI for that matter), it just feels like the wrong place to me with OpenID4VP since we are talking about wallet <-> RP interactions here.

Comment thread 1.0/openid-4-verifiable-presentations-1_0.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Co-authored-by: Joseph Heenan <joseph@heenan.me.uk>
Co-authored-by: Christian Bormann <chris.bormann@gmx.de>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants