Skip to content

Commit

Permalink
Merge pull request #288 from w3c/issue-279-keyusage
Browse files Browse the repository at this point in the history
Fixes algorithm and signing fields in agent certificate.
  • Loading branch information
markafoltz authored Nov 14, 2022
2 parents 246bc07 + d62bf1b commit 3f1f148
Showing 1 changed file with 75 additions and 9 deletions.
84 changes: 75 additions & 9 deletions index.bs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ url: https://tools.ietf.org/html/rfc8122#section-5; type: dfn; spec: RFC8122; te
url: https://tools.ietf.org/html/rfc8122#section-5; type: dfn; spec: RFC8122; text: md5
url: https://tools.ietf.org/html/rfc6381#section-3; type: dfn; spec: RFC6381; text: codecs parameter
url: https://tools.ietf.org/html/rfc8610#section-3; type: dfn; spec: RFC8610; text: concise data definition language
url: https://tools.ietf.org/html/rfc5280#section-4.2.1.3; type: dfn; spec: RFC5280; text: digitalSignature
url: https://datatracker.ietf.org/doc/html/rfc8446#section-4.2.3; type: dfn; spec: RFC8446; text: signature scheme
</pre>

Introduction {#introduction}
Expand Down Expand Up @@ -365,15 +367,74 @@ QUIC connection.

The [=agent certificate=] must have the following characteristics:

* 256-bit or 384-bit ECDSA public key
* Self-signed
* Supporting the at least one of the following signature algorithms:
* secp256r1_sha256
* secp384r1_sha384
* Valid for signing
* 256-bit or 384-bit ECDSA public key.
* Self-signed.
* Supporting at least one of the [=certificate algorithms=] listed below.
* The `AlgorithmIdentifiers` are defined in [[!RFC5480]] (for public keys) and
[[!RFC5758]] (for signature schemes).
* [[!X690]] specifies the Distinguished Encoding Rules (DER) representation used to encode the identifiers.
* Valid for signing.

<table id="algorithms" class="data">
<caption><dfn lt="certificate algorithms">Agent Certificate Algorithms</dfn></caption>
<thead>
<tr>
<th>TLS 1.3 [=Signature Scheme=]</th>
<th>Public Key `AlgorithmIdentifier`</th>
<th>Signature `AlgorithmIdentifier`</th>
</tr>
</thead>
<tbody>
<tr>
<td>`secp256r1_sha256`</td>
<td>`secp256r1`
<p>
Object Identifiers:
<ol>
<li>`1.2.840.10045.2.1` (ECC)</li>
<li>`1.2.840.10045.3.1.7` (ECDSA P256)</li>
</ol>
DER representation: `301306072a8648ce3d020106082a8648ce3d030107`
</p>
</td>
<td>`ecdsa-with-SHA256`
<p>
Object identifier:
<ol>
<li>`1.2.840.10045.4.3.2`</li>
</ol>
DER representation: `300a06082a8648ce3d040302`
</p>
</td>
</tr>
<tr>
<td>`secp384r1_sha384`</td>
<td>`secp384r1`
<p>
Object Identifiers:
<ol>
<li>`1.2.840.10045.2.1` (ECC)</li>
<li>`1.3.132.0.34` (ECDSA P384)</li>
</ol>
DER representation: `301006072a8648ce3d020106052b81040022`
</p>
</td>
<td>`ecdsa-with-SHA384`
<p>
Object identifier:
<ol>
<li>`1.2.840.10045.4.3.3`</li>
</ol>
DER representation: `300a06082a8648ce3d040303`
</p>
</td>
</tr>
</tbody>
</table>

The following X.509 v3 fields are to be set as follows:

<div class="assertion">
<table>
<thead>
<th>Field</th>
Expand All @@ -389,8 +450,12 @@ The following X.509 v3 fields are to be set as follows:
<td>`<fp>`</td>
</tr>
<tr>
<td>Signature Algorithm ID</td>
<td>One of the values listed above.</td>
<td>Public Key `AlgorithmIdentifier`</td>
<td>One of the supported [=certificate algorithms=].</td>
</tr>
<tr>
<td>Signature `AlgorithmIdentifier`</td>
<td>One of the supported [=certificate algorithms=].</td>
</tr>
<tr>
<td>Issuer Name</td>
Expand All @@ -413,10 +478,11 @@ The following X.509 v3 fields are to be set as follows:
</tr>
<tr>
<td>Certificate Key usage</td>
<td>Signing</td>
<td>[=digitalSignature=]</td>
</tr>
</tbody>
</table>
</div>

Mandatory fields not mentioned above should be set according to [[!RFC5280]].

Expand Down

0 comments on commit 3f1f148

Please sign in to comment.