Skip to content

Add additional text clarifying how to match vct and doctype - #744

Open
GarethCOliver wants to merge 13 commits into
openid:mainfrom
GarethCOliver:type-matching
Open

GarethCOliver wants to merge 13 commits into
openid:mainfrom
GarethCOliver:type-matching

Conversation

@GarethCOliver

@GarethCOliver GarethCOliver commented Jun 18, 2026 •

Copy link
Copy Markdown
Contributor

Resolves #741 by adding more explicit instructions on what allows a Credential to satisfy vct_values, and applies similar explicit text to doctype_value

This makes use of the SD-JWT VC draft 15 which added aka_vcts for this purpose

Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
GarethCOliver and others added 2 commits June 18, 2026 08:30
Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>
Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
GarethCOliver and others added 2 commits July 1, 2026 10:32
Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>
Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>

@c2bo c2bo left a comment •

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 guess this should also go into 1.0 errata?

#741 also asks about the RP/Verifier side -> Should we add a sentence that these checks must be verified by the Verifier?

Text looks good otherwise imho

Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
@Sakurann

Sakurann commented Jul 2, 2026

Copy link
Copy Markdown
Collaborator

WG discussion: makes sense to have this in errata, too and also not to limit validation rules to the wallet but also verifier.

Co-authored-by: Christian Bormann <chris.bormann@gmx.de>
Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
@brentzundel

Copy link
Copy Markdown
Collaborator

WG discussion suggests: Make sure it is clear this is an optional feature. @c2bo will propose text.

Co-authored-by: Frederik Krogsdal Jacobsen <fkj@users.noreply.github.com>
@GarethCOliver

Copy link
Copy Markdown
Contributor Author

From conversation at IETF: SD-JWT-VC intends to add a claim to make it explicit what the super-types of a particular credential are (which will make this trivial and correct).

Until that is in place we shouldn't update this text, and should update to reference it when it is ready. Note that the part of this PR related to mdoc can still go through.

@GarethCOliver

Copy link
Copy Markdown
Contributor Author

Updated text to reference the aka_vcts claim, making this nice and explicit.

Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated

@jogu jogu left a comment •

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 think if we make this change we have to make it in 1.0 as well - otherwise it's a breaking change in 1.1 and/or 1.0 and 1.1 differ in core behaviour.

But we need to come to a conclusion on #726 first really. If 1.0 is going to reference the latest SD-JWT spec then really 1.0 is going to gain this behaviour regardless, and if we agree on that then making it explicit in 1.0 is best.

(The actual changes in this PR do seem like a sensible way of addressing the problem.)

the inheritance logic defined in [@!I-D.ietf-oauth-sd-jwt-vc].
: REQUIRED. A non-empty array of strings that specifies allowed values for the type of the requested Verifiable Credential. All elements in the array MUST be valid type identifiers as defined in [@!I-D.ietf-oauth-sd-jwt-vc]. To satisfy the Credential Query, a Credential MUST be of a type that is included in the `vct_values` array as defined in [@!I-D.ietf-oauth-sd-jwt-vc].

When a Wallet or Verifier needs to determine whether a Credential's type satisfies a Credential Query, it MUST do so by evaluating if at least one of the following true:

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.

Note that this is tighter than the language in SD-JWT VC, which allows 'extends' to be considered too - https://drafts.oauth.net/oauth-sd-jwt-vc/draft-ietf-oauth-sd-jwt-vc.html#section-5.4

If the desired outcome is that only vct & aka_vcts matter, I think we should explicitly state that other data (like extends or any preexisting knowledge the wallet has of types that vct is equivalent to) MUST NOT be used.

However that feels like it would be a breaking change, so I think we need to say that Wallets may choose to return credentials with other vcts at a minimum in the case where aka_vcts is absent.

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.

see #726 (comment)
1.1 and 1.0 errata will reference sd-jwt vc

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Using just aka_vcts is by design. Using extends is highly problematic (both due to it being optional, and because it provides an inconsistent definition of extensibility between Wallet and Verifier).

aka_vcts is introduced for that purposes to provide a consistent shared definition so that a Wallet does not return an SD-JWT that a Verifier does not understand.

I think it would reasonable to provide it as a fallback when not present for backwards compatibility

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 that since using extends requires an out-of-band relationship anyway, we should not keep the fallback in the spec. Ecosystems that want to use the extends mechanism can still do that and the rest of us don't need to know about it. I think writing the "worse" way into the spec might make more people start doing it, which we should avoid.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

updated text to make this RECOMMENDED and added a note

Co-authored-by: Christian Bormann <chris.bormann@gmx.de>
@Sakurann
Sakurann requested review from awoie and c2bo August 31, 2026 12:51
@brentzundel

Copy link
Copy Markdown
Collaborator

Discussed today, @GarethCOliver will adjust the text as in the meeting notes.

@javereec javereec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Editorial remarks. Looks good otherwise.

Comment thread 1.1/openid-4-verifiable-presentations-1_1.md Outdated
@Sakurann

Copy link
Copy Markdown
Collaborator

@jogu 1.0 is going to reference the latest SD-JWT spec. please re-review

@Sakurann
Sakurann requested a review from jogu September 14, 2026 19:08
Co-authored-by: Jan Vereecken <ciao@janvereecken.com>

@javereec javereec left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Editorial suggestion

the inheritance logic defined in [@!I-D.ietf-oauth-sd-jwt-vc].
: REQUIRED. A non-empty array of strings that specifies allowed values for the type of the requested Verifiable Credential. All elements in the array MUST be valid type identifiers as defined in [@!I-D.ietf-oauth-sd-jwt-vc]. To satisfy the Credential Query, a Credential MUST be of a type that is included in the `vct_values` array as defined in [@!I-D.ietf-oauth-sd-jwt-vc].

When a Wallet or Verifier needs to determine whether a Credential's type satisfies a Credential Query, it is RECOMMENDED do so by evaluating if at least one of the following is true:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Another small editorial change.

Suggested change
When a Wallet or Verifier needs to determine whether a Credential's type satisfies a Credential Query, it is RECOMMENDED do so by evaluating if at least one of the following is true:
When a Wallet or Verifier needs to determine whether a Credential's type satisfies a Credential Query, it is RECOMMENDED to do so by evaluating if at least one of the following is true:

@brentzundel

Copy link
Copy Markdown
Collaborator

Discussed today, @jogu will re-review

@brentzundel

Copy link
Copy Markdown
Collaborator

Discussed in call. Looking for @jogu re-review

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.

Clarification on checking inheritance of received vct (VP token validation)

8 participants