Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add interoperable way for holder-asserted claims in a VP #1186

Merged
merged 18 commits into from
Jul 23, 2023
Merged
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 72 additions & 0 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -2030,6 +2030,78 @@ <h4>Presentations Using Derived Credentials</h4>
</figcaption>
</figure>
</section>
<section>
<h4>Presentations Including Holder Claims</h4>
<p>
A <a>holder</a> MAY use the <code>verifiableCredential</code>
<a>property</a> in a <a>verifiable presentation</a> to include
<a>verifiable credentials</a> from any <a>issuer</a>, including
themselves. When the <a>issuer</a> of a <a>verifiable credential</a>
is the <a>holder</a>, its <a>claims</a> are considered to be
self-asserted. These self-asserted claims can be secured by their
own mechanism like any other <a>verifiable credential</a> or by
the same mechanism that secures the <a>verifiable presentation</a>
in which they are included.
</p>
<p>
A <a>verifiable presentation</a> that includes a self-asserted
<a>verifiable credential</a> that is only secured using the same mechanism as
the <a>verifiable presentation</a> MUST include a <code>holder</code>
<a>property</a>.
</p>
<p>
A self-asserted <a>verifiable credential</a> that has been included in the value
of the <code>verifiableCredential</code> <a>property</a> of a
<a>verifiable presentation</a> MUST include the following properties:
</p>

<dl>
<dt><var>type</var></dt>
<dd>
The <code>type</code> <a>property</a> is required. One value MUST be
<code>VerifiableCredential</code>, and it is RECOMMENDED that another
value be <code>SelfAssertedCredential</code>. Additional types MAY also
be included. For example,<br>
<code>"type": ["VerifiableCredential", "SelfAssertedCredential", "ExampleTypeCredential"]</code>
</dd>
<dt><var>issuer</var></dt>
<dd>
The <code>issuer</code> <a>property</a> is required. For self-asserted
<a>verifiable credentials</a> that are secured using the same mechanism as the
<a>verifiable presentation</a>, the value MUST be identical to the
<code>holder</code> <a>property</a> of the <a>verifiable presentation</a>.
Self-asserted <a>verifiable credentials</a> that use their own securing
mechanism MUST follow the normative guidance for the <code>issuer</code>
<a>property</a> in Section <a href="#issuer"></a>.
Copy link
Member

Choose a reason for hiding this comment

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

This MUST + these requireds seem redundant, especially when considering VCs in general (i.e., not self-asserted), which already require type and issuer.... If I'm not confused about this (please confirm!), I'll draft a rephrasing of lines 2062-2084.

Copy link
Member Author

Choose a reason for hiding this comment

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

I would much appreciate a suggested rephrasing. The clarification was added in response to previous comments, and I am open to other possible ways of wording this.

Copy link
Member Author

Choose a reason for hiding this comment

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

@TallTed in a fit of productivity, I have rephrased and attempted to eliminate the redundancies in this section. bef11ba

</dd>
</dl>
<p>
The example below shows a <a>verifiable presentation</a> that embeds a
self-asserted <a>verifiable credential</a> that is secured using the same
mechanism as the <a>verifiable presentation</a>.
</p>

<pre class="example nohighlight" title="Verifiable presentation with a self-asserted verifiable credential">
msporny marked this conversation as resolved.
Show resolved Hide resolved
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://www.w3.org/ns/credentials/examples/v2"
],
"type": ["VerifiablePresentation", "ExamplePresentation"],
"holder": "did:example:12345678",
"verifiableCredential": [{
"@context": "https://www.w3.org/ns/credentials/v2",
"type": ["VerifiableCredential", "SelfAssertedCredential", "ExampleFoodPreferenceCredential"],
brentzundel marked this conversation as resolved.
Show resolved Hide resolved
"issuer": "did:example:12345678",
"credentialSubject": {
"favoriteCheese": "Gouda"
},
{ <span class="comment">...</span> }
}],
"proof": [{ <span class="comment">...</span> }]</span>
OR13 marked this conversation as resolved.
Show resolved Hide resolved
}
</pre>
</section>
</section>
</section>

Expand Down