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

Fix a few issues, formatting, issue tagging #176

Merged
merged 6 commits into from
Nov 17, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
198 changes: 60 additions & 138 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
company: "Mesur.io", companyURL: "https://mesur.io/",
w3cid: 130636
},
{
{
name: "Gabe Cohen",
url: "https://github.com/decentralgabe",
company: "Block",
Expand Down Expand Up @@ -138,7 +138,7 @@
and CBOR Object Signing and Encryption (COSE) [[RFC9052]].

This enables the Verifiable Credential data model
[[VC-DATA-MODEL]]to be implemented with standards
[[VC-DATA-MODEL]] to be implemented with standards
for signing and encryption that are widely adopted.
</p>
</section>
Expand Down Expand Up @@ -166,7 +166,7 @@ <h2>Introduction</h2>
properties make SD-JWT especially well suited to securing documents
conforming to the JSON-LD [[VC-DATA-MODEL]].
</p>
<p class="issue">
<p class="issue" data-number="175">
The working group is discussing how we might comment on recent work, that does make
use of encryption in <a
href="https://openid.net/specs/openid-4-verifiable-presentations-1_0.html#section-3.2">OpenID for Verifiable
Expand Down Expand Up @@ -288,7 +288,7 @@ <h2>Securing JSON-LD Verifiable Presentations with JOSE</h2>
This section details how to use JOSE to secure verifiable presentations conforming
to the [[VC-DATA-MODEL]].
</p>
<p>[[rfc7515]] MAY be used to secure this media type.</p>
<p>[[RFC7515]] MAY be used to secure this media type.</p>
<p>The <code>typ</code> parameter SHOULD be
<code>vp+ld+json+sd-jwt</code>
</p>
Expand Down Expand Up @@ -404,13 +404,13 @@ <h2>Wallets</h2>
</section>
<section class="normative">
<h2>Key Discovery</h2>
<p class="issue">
<p class="issue" data-number="160">
The working group is still discussing how to close many related issues.
</p>

<!-- DID URLS via "issuer" and "holder" -->
<p>
When <a href="iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-issuers">issuer</a>
When <a href="#iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-issuers">issuer</a>
is identified as a <a data-cite="DID-CORE#did-subject">DID Subject</a>,
the <a href="#kid">kid</a> MUST be an absolute <a data-cite="DID-CORE#relative-did-urls">DID URL</a>.
</p>
Expand All @@ -427,7 +427,7 @@ <h2>Key Discovery</h2>
}
</pre>
<p>
When <a href="iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-holders">holder</a>
When <a href="#iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-holders">holder</a>
is identified as a <a data-cite="DID-CORE#did-subject">DID Subject</a>,
the <a href="#kid">kid</a> MUST be an absolute <a data-cite="DID-CORE#relative-did-urls">DID URL</a>.
</p>
Expand All @@ -446,7 +446,7 @@ <h2>Key Discovery</h2>

<!-- REGULAR URLS via "issuer" and "holder" -->
<p>
When <a href="iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-issuers">issuer</a> is identified as a [[URL]],
When <a href="#iss">iss</a> is absent, and the <a data-cite="VC-DATA-MODEL#dfn-issuers">issuer</a> is identified as a [[URL]],
the <a href="#kid">kid</a> MUST be an absolute [[URL]] to a verification method listed in a controller document.
</p>

Expand All @@ -467,7 +467,7 @@ <h2>Key Discovery</h2>

<p>
When the <a data-cite="VC-DATA-MODEL#dfn-holders">holder</a> is identified as a [[URL]],
and <a href="iss">iss</a> is absent,
and <a href="#iss">iss</a> is absent,
the <a href="#kid">kid</a> MUST be an absolute [[URL]] to a verification method listed in a controller document.
</p>
<pre class="example" title="A holder identified by a controller document identifier">
Expand All @@ -488,12 +488,12 @@ <h2>Key Discovery</h2>
<!-- REGULAR URLS via "iss" -->

<p>
When <a href="iss">iss</a> is present, and is a [[URL]],
When <a href="#iss">iss</a> is present, and is a [[URL]],
the <a href="#kid">kid</a> MUST match a key discovered via <a href="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc-00#name-jwt-issuer-metadata">JWT Issuer Metadata Request</a>
</p>

<p class="issue" title="(AT RISK) Feature depends on demonstration of independent implementations">
This normative statement depends on a <a href="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc-00#name-jwt-issuer-metadata">-00 IETF OAUTH WG Adopted</a>a draft.
<p class="issue" title="(AT RISK) Feature depends on demonstration of independent implementations" data-number="160">
This normative statement depends on an <a href="https://datatracker.ietf.org/doc/html/draft-ietf-oauth-sd-jwt-vc-00#name-jwt-issuer-metadata">IETF OAUTH WG Adopted</a> draft.
This feature is at risk and will be removed from the specification if at least
two independent, interoperable implementations are not demonstrated.
</p>
Expand Down Expand Up @@ -558,10 +558,6 @@ <h2>iss</h2>
<a data-cite="RFC7515#section-4.1">JOSE Header</a>, it is expected to be useful to
distinguish the specific key used.
</p>
<p class="issue" data-number="31">
There are a few issues related to clarification of optionality and behavior of
registered claims.
</p>
</section>

<section>
Expand All @@ -578,7 +574,7 @@ <h2>cnf</h2>

<section>
<h2>Well Known URIs</h2>
<p class="issue">
<p class="issue" data-number="160">
The working group is currently exploring how
<a data-cite="RFC5785#section-3">Defining Well-Known Uniform Resource Identifiers (URIs)</a>
could be leveraged to assist a <a data-cite="VC-DATA-MODEL#dfn-verifier">verifier</a> in discovering verification keys for
Expand All @@ -597,21 +593,18 @@ <h2>JWT Issuer</h2>
</section>
<section class="informative">
<h3>Controller Documents</h3>

<p class="issue" data-number="160"></p>

<p>
<p>
A <a>controller document</a> is a set of data that specifies one or more
relationships between a <a>controller</a> and a set of data, such as a set of
public cryptographic keys. The <a>controller document</a> SHOULD
contain <a>verification relationships</a> that explicitly permit the use of
certain <a>verification methods</a> for specific purposes.
</p>
</p>


<section>
<h2>Verification Methods</h2>
<p>
<p>
A <a>controller document</a> can express <a>verification methods</a>, such as
cryptographic <a>public keys</a>, which can be used to <a>authenticate</a> or
authorize interactions with the <a>controller</a> or associated parties. For
Expand All @@ -621,7 +614,7 @@ <h2>Verification Methods</h2>
methods</a> might take many parameters. An example of this is a set of five
cryptographic keys from which any three are required to contribute to a
cryptographic threshold signature.
</p>
</p>

<dl>
<dt><dfn class="lint-ignore">verificationMethod</dfn></dt>
Expand Down Expand Up @@ -727,27 +720,35 @@ <h3>Verification Material</h3>
methods</a> using both properties above is shown below.
</p>

<pre id="example-various-verification-method-types"
<pre id="example-various-verification-method-types"
class="example nohighlight"
title="Verification methods using publicKeyJwk">
title="Verification methods using publicKeyJwk and publicKeyMultibse">
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://www.w3.org/ns/credentials/v2"
]
"id": "did:example:123456789abcdefghi",
<span class="comment">...</span>
"verificationMethod": [{
"id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
"type": "JsonWebKey", <span class="comment">// external (property value)</span>
"controller": "did:example:123",
"publicKeyJwk": {
"crv": "Ed25519", <span class="comment">// external (property name)</span>
"x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ", <span class="comment">// external (property name)</span>
"kty": "OKP", <span class="comment">// external (property name)</span>
"kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A" <span class="comment">// external (property name)</span>
"verificationMethod": [
{
"id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
"type": "JsonWebKey", <span class="comment">// external (property value)</span>
"controller": "did:example:123",
"publicKeyJwk": {
"crv": "Ed25519", <span class="comment">// external (property name)</span>
"x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ", <span class="comment">// external (property name)</span>
"kty": "OKP", <span class="comment">// external (property name)</span>
"kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A" <span class="comment">// external (property name)</span>
}
},
{
"id": "did:example:123#E-faHQqcY_-tiAFjPV4Ad6_651QY0UOpRl0QL2Fq",
"type": "Ed25519VerificationKey2020",
"controller": "did:example:123",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
OR13 marked this conversation as resolved.
Show resolved Hide resolved
}
}],
],
<span class="comment">...</span>
}
</pre>
Expand Down Expand Up @@ -778,9 +779,8 @@ <h3>JsonWebKey</h3>
It is RECOMMENDED that verification methods that use
JWKs [[RFC7517]] to represent their <a>public keys</a> use the value of `kid` as
their fragment identifier. It is RECOMMENDED that JWK `kid` values be set to
the public key fingerprint [[RFC7638]]. See the first key in
<a href="#example-various-verification-method-types"></a> for an example of a
public key with a compound key identifier.
the public key fingerprint [[RFC7638]]. See the first key in the example below
for an instancee of a public key with a compound key identifier.
</dd>
<dt><dfn class="lint-ignore">secretKeyJwk</dfn></dt>
<dd>
Expand All @@ -794,8 +794,7 @@ <h3>JsonWebKey</h3>
An example of an object that conforms to this data model is provided below:
</p>

<pre class="example nohighlight"
title="JSON Web Key encoding of a secp384r1 (P-384) public key">
<pre class="example nohighlight" title="JSON Web Key encoding of a secp384r1 (P-384) public key">
{
"id": "did:example:123456789abcdefghi#key-1",
"type": "JsonWebKey",
Expand All @@ -815,12 +814,14 @@ <h3>JsonWebKey</h3>
In the example above, the `publicKeyJwk` value contains the JSON Web Key.
The `kty` property encodes the key type of "OKP", which means
"Octet string key pairs". The `alg` property identifies the algorithm intended
for use with the public key. Although `alg` is optional, it is RECOMMENDED to be included to avoid security issues arising from using the same key with multiple algorithms. The `crv` property identifies the particular
curve type of the public key. The `kid` property is a hint used to help discover the key;
if present, the `kid` value SHOULD match, or be included in the
`id` property of the encapsulating `JsonWebKey` object, as part of the path, query or fragment of the URL. Finally, the `x`
property specifies the point on the Ed25519 curve that is associated with the
public key.
for use with the public key. Although `alg` is optional, it is RECOMMENDED to
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
be included to avoid security issues arising from using the same key with multiple
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
algorithms. The `crv` property identifies the particular curve type of the
public key. The `kid` property is a hint used to help discover the key; if present,
the `kid` value SHOULD match, or be included in the `id` property of the
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
encapsulating `JsonWebKey` object, as part of the path, query or fragment of the
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
URL. Finally, the `x` property specifies the point on the Ed25519 curve that is
associated with the public key.
</p>

<p>
Expand Down Expand Up @@ -929,8 +930,12 @@ <h2>Verification Relationships</h2>
A <a>controller document</a> MAY include any of these, or other properties, to
express a specific <a>verification relationship</a>. In order to maximize global
interoperability, any such properties used SHOULD be registered in the
Data Integrity Specification Registries [TBD: DIS-REGISTRIES].
Data Integrity Specification Registries.
</p>
<p class="issue" title="Data Integrity Specification Registries List" data-number="173">
Add a reference to Data Integrity Specification Registries when it exists.
</p>


<section>
<h2>Authentication</h2>
Expand Down Expand Up @@ -1032,9 +1037,6 @@ <h2>Assertion</h2>
}
</pre>
</section>



</section>
</section>
</section>
Expand Down Expand Up @@ -1084,8 +1086,10 @@ <h2>JOSE Header Parameters</h2>
<p>
When present, members of the header are to be interpreted and
processed according to the corresponding definitions found in
the IANA <a href="https://www.iana.org/assignments/jose/jose.xhtml">JSON Web Signature and Encryption Header Parameters</a> registry and
the IANA <a href="https://www.iana.org/assignments/jwt/jwt.xhtml">JSON Web Token Claims</a> registry.
the IANA <a href="https://www.iana.org/assignments/jose/jose.xhtml">JSON Web
Signature and Encryption Header Parameters</a> registry and
the IANA <a href="https://www.iana.org/assignments/jwt/jwt.xhtml">JSON Web
Token Claims</a> registry.
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
</p>
<p>
Additional members may be present. If they are not understood,
Expand Down Expand Up @@ -1287,69 +1291,6 @@ <h2><code>application/vp+ld+json+sd-jwt</code></h2>
</section>
</section>


<section id="json-web-token-claim-registrations">
<h3>Registered Claims</h3>
<p>
This section retains deprecated registered claim names
that were previously submitted to the Internet Engineering Steering
Group (IESG) for review, approval, and registration with IANA in the
"JSON Web Token Claims Registry".
</p>

<p class="issue" data-number="119"></p>

<section id="vc-json-web-token-claim">
<h4>`vc`</h4>
OR13 marked this conversation as resolved.
Show resolved Hide resolved
<table>
<tr>
<th>Claim Name: </th>
<td>"vc" </td>
</tr>
<tr>
<th>Claim Description: </th>
<td>Verifiable Credential</td>
</tr>
<tr>
<th>Change Controller: </th>
<td>W3C</td>
</tr>
<tr>
<th>Specification Document(s): </th>
<td>
<a href="https://www.w3.org/TR/vc-data-model/">Section 6.3.1.2: JSON Web Token
Extensions of Verifiable Credentials Data Model 1.0</a>
</td>
</tr>
</table>
</section>

<section id="vp-json-web-token-claim">
<h4>`vp`</h4>
<table>
<tr>
<th>Claim Name: </th>
<td>"vp"</td>
</tr>
<tr>
<th>Claim Description: </th>
<td>Verifiable Presentation</td>
</tr>
<tr>
<th>Change Controller: </th>
<td>W3C</td>
</tr>
<tr>
<th>Specification Document(s):</th>
<td>
<a href="https://www.w3.org/TR/vc-data-model/">Section 6.3.1.2: JSON Web Token
Extensions of Verifiable Credentials Data Model 1.0</a>
</td>
</tr>
</table>
</section>
</section>
</section>
</section>
<section>
<h3>Other Considerations</h3>
Expand Down Expand Up @@ -1478,27 +1419,6 @@ <h2>Accessibility</h2>
considerations called out in the [[VC-DATA-MODEL]].
</p>
</section>


<section class="informative">
<h2>Internationalization</h2>
<p>
Implementers should take into account several
internationalization considerations when publishing data
described in this specification. Disregarding
internationalization hampers the production and consumption of
data across diverse languages and societies, thereby restricting
the applicability and significantly reducing the value of the
specification as a standard.
</p>
<p>
Implementers are advised to note and abide by all
internationalization considerations called out in the
[[VC-DATA-MODEL]], see also <a href="https://www.w3.org/standards/webdesign/i18n">i18n</a>,
<a href="https://url.spec.whatwg.org">URL Standard</a>
</p>
</section>

</section>


Expand Down Expand Up @@ -1723,7 +1643,9 @@ <h3>Data URIs</h3>
<h2>
Detached Payload
</h2>
<p class="issue">TODO add COSE Sign1 detached payload examples</p>
<p class="issue" data-number="174">
TODO add COSE Sign1 detached payload examples
</p>
</section>
</section>
</section>
Expand Down
4 changes: 2 additions & 2 deletions terms.html
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@
<dd>
A globally unique persistent identifier that does not require a centralized
registration authority and is often generated and/or registered
cryptographically. The generic format of a is defined in [[DID-CORE]]. Many—but
not all—methods make use of <a>distributed ledger technology</a> (DLT) or some
cryptographically. The generic format of a DID is defined in [[DID-CORE]]. Many—but
not all—DID methods make use of <a>distributed ledger technology</a> (DLT) or some
decentralgabe marked this conversation as resolved.
Show resolved Hide resolved
other form of decentralized network.
</dd>

Expand Down