Skip to content

Commit 82f5732

Browse files
author
ID Bot
committed
Script updating gh-pages from e4854ee. [ci skip]
1 parent 9dcedc6 commit 82f5732

3 files changed

Lines changed: 68 additions & 39 deletions

File tree

draft-davidben-tls-merkle-tree-certs.html

Lines changed: 33 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@
2222
google-i18n-address 3.1.1
2323
intervaltree 3.1.0
2424
Jinja2 3.1.6
25-
lxml 5.3.1
26-
platformdirs 4.5.0
25+
lxml 6.0.2
26+
platformdirs 4.5.1
2727
pycountry 24.6.1
28-
PyYAML 6.0.2
28+
PyYAML 6.0.3
2929
requests 2.32.5
3030
wcwidth 0.2.14
3131
-->
@@ -1050,7 +1050,7 @@
10501050
</tr></thead>
10511051
<tfoot><tr>
10521052
<td class="left">Benjamin, et al.</td>
1053-
<td class="center">Expires 18 June 2026</td>
1053+
<td class="center">Expires 4 July 2026</td>
10541054
<td class="right">[Page]</td>
10551055
</tr></tfoot>
10561056
</table>
@@ -1063,12 +1063,12 @@
10631063
<dd class="internet-draft">draft-davidben-tls-merkle-tree-certs-latest</dd>
10641064
<dt class="label-published">Published:</dt>
10651065
<dd class="published">
1066-
<time datetime="2025-12-15" class="published">15 December 2025</time>
1066+
<time datetime="2025-12-31" class="published">31 December 2025</time>
10671067
</dd>
10681068
<dt class="label-intended-status">Intended Status:</dt>
10691069
<dd class="intended-status">Standards Track</dd>
10701070
<dt class="label-expires">Expires:</dt>
1071-
<dd class="expires"><time datetime="2026-06-18">18 June 2026</time></dd>
1071+
<dd class="expires"><time datetime="2026-07-04">4 July 2026</time></dd>
10721072
<dt class="label-authors">Authors:</dt>
10731073
<dd class="authors">
10741074
<div class="author">
@@ -1128,7 +1128,7 @@ <h2 id="name-status-of-this-memo">
11281128
time. It is inappropriate to use Internet-Drafts as reference
11291129
material or to cite them other than as "work in progress."<a href="#section-boilerplate.1-3" class="pilcrow"></a></p>
11301130
<p id="section-boilerplate.1-4">
1131-
This Internet-Draft will expire on 18 June 2026.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
1131+
This Internet-Draft will expire on 4 July 2026.<a href="#section-boilerplate.1-4" class="pilcrow"></a></p>
11321132
</section>
11331133
</div>
11341134
<div id="copyright">
@@ -1644,7 +1644,7 @@ <h2 id="name-overview">
16441644
<path d="M 536,32 L 536,272" fill="none" stroke="black"></path>
16451645
<path d="M 536,352 L 536,464" fill="none" stroke="black"></path>
16461646
<path d="M 8,32 L 24,32" fill="none" stroke="black"></path>
1647-
<path d="M 216,32 L 256,32" fill="none" stroke="black"></path>
1647+
<path d="M 232,32 L 256,32" fill="none" stroke="black"></path>
16481648
<path d="M 296,32 L 312,32" fill="none" stroke="black"></path>
16491649
<path d="M 504,32 L 536,32" fill="none" stroke="black"></path>
16501650
<path d="M 224,64 L 312,64" fill="none" stroke="black"></path>
@@ -1687,8 +1687,8 @@ <h2 id="name-overview">
16871687
<circle cx="96" cy="464" r="6" class="closeddot" fill="black"></circle>
16881688
<circle cx="384" cy="208" r="6" class="closeddot" fill="black"></circle>
16891689
<g class="text">
1690-
<text x="80" y="36">Certificate</text>
1691-
<text x="168" y="36">Authority</text>
1690+
<text x="88" y="36">Certification</text>
1691+
<text x="184" y="36">Authority</text>
16921692
<text x="388" y="36">Authenticating</text>
16931693
<text x="472" y="36">Party</text>
16941694
<text x="36" y="68">2.</text>
@@ -1821,7 +1821,7 @@ <h2 id="name-overview">
18211821
<path d="M 480,240 L 480,288" fill="none" stroke="black"></path>
18221822
<path d="M 480,320 L 480,368" fill="none" stroke="black"></path>
18231823
<path d="M 8,32 L 24,32" fill="none" stroke="black"></path>
1824-
<path d="M 216,32 L 272,32" fill="none" stroke="black"></path>
1824+
<path d="M 232,32 L 272,32" fill="none" stroke="black"></path>
18251825
<path d="M 296,48 L 312,48" fill="none" stroke="black"></path>
18261826
<path d="M 448,48 L 464,48" fill="none" stroke="black"></path>
18271827
<path d="M 264,80 L 432,80" fill="none" stroke="black"></path>
@@ -1846,8 +1846,8 @@ <h2 id="name-overview">
18461846
<polygon class="arrowhead" points="296,256 284,250.4 284,261.6" fill="black" transform="rotate(0,288,256)"></polygon>
18471847
<polygon class="arrowhead" points="232,184 220,178.4 220,189.6" fill="black" transform="rotate(90,224,184)"></polygon>
18481848
<g class="text">
1849-
<text x="80" y="36">Certificate</text>
1850-
<text x="168" y="36">Authority</text>
1849+
<text x="88" y="36">Certification</text>
1850+
<text x="184" y="36">Authority</text>
18511851
<text x="348" y="52">Update</text>
18521852
<text x="408" y="52">Channel</text>
18531853
<text x="92" y="84">1.</text>
@@ -3751,7 +3751,7 @@ <h3 id="name-log-entries">
37513751
subjectPublicKeyInfoHash OCTET STRING,
37523752
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
37533753
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
3754-
extensions [3] EXPLICIT Extensions OPTIONAL }
3754+
extensions [3] EXPLICIT Extensions{{CertExtensions}} OPTIONAL }
37553755
</pre><a href="#section-5.3-5" class="pilcrow"></a>
37563756
</div>
37573757
<p id="section-5.3-6">The <code>version</code>, <code>issuer</code>, <code>validity</code>, <code>subject</code>, <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, and <code>extensions</code> fields have the corresponding semantics as in <span><a href="https://rfc-editor.org/rfc/rfc5280#section-4.1.2" class="relref">Section 4.1.2</a> of [<a href="#RFC5280" class="cite xref">RFC5280</a>]</span>, with the exception of <code>subjectPublicKeyInfoHash</code>. <code>subjectPublicKeyInfoHash</code> contains the hash of subject's public key as a SubjectPublicKeyInfo (<span><a href="https://rfc-editor.org/rfc/rfc5280#section-4.1.2.7" class="relref">Section 4.1.2.7</a> of [<a href="#RFC5280" class="cite xref">RFC5280</a>]</span>). The hash uses the log's hash function (<a href="#log-parameters" class="auto internal xref">Section 5.1</a>) and is computed over the SubjectPublicKeyInfo's DER <span>[<a href="#X.690" class="cite xref">X.690</a>]</span> encoding. The <code>issuer</code> field MUST be the issuance log's log ID as an X.509 distinguished name, as described in <a href="#log-ids" class="auto internal xref">Section 5.2</a>.<a href="#section-5.3-6" class="pilcrow"></a></p>
@@ -4252,7 +4252,7 @@ <h3 id="name-certificate-format">
42524252
<a href="#section-6.1" class="section-number selfRef">6.1. </a><a href="#name-certificate-format" class="section-name selfRef">Certificate Format</a>
42534253
</h3>
42544254
<p id="section-6.1-1">The information is encoded in an X.509 Certificate <span>[<a href="#RFC5280" class="cite xref">RFC5280</a>]</span> as follows:<a href="#section-6.1-1" class="pilcrow"></a></p>
4255-
<p id="section-6.1-2">The TBSCertificate's <code>version</code>, <code>issuer</code>, <code>validity</code>, <code>subject</code>, <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, and <code>extensions</code> MUST match the corresponding fields of the TBSCertificateLogEntry. Per <a href="#log-entries" class="auto internal xref">Section 5.3</a>, this means <code>issuer</code> MUST be the issuance log's log ID as an X.509 distinguished name, as described in <a href="#log-ids" class="auto internal xref">Section 5.2</a>.<a href="#section-6.1-2" class="pilcrow"></a></p>
4255+
<p id="section-6.1-2">The TBSCertificate's <code>version</code>, <code>issuer</code>, <code>validity</code>, <code>subject</code>, <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, and <code>extensions</code> MUST be equal to the corresponding fields of the TBSCertificateLogEntry. If any of <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, or <code>extensions</code> is absent in the TBSCertificateLogEntry, the corresponding field MUST be absent in the TBSCertificate. Per <a href="#log-entries" class="auto internal xref">Section 5.3</a>, this means <code>issuer</code> MUST be the issuance log's log ID as an X.509 distinguished name, as described in <a href="#log-ids" class="auto internal xref">Section 5.2</a>.<a href="#section-6.1-2" class="pilcrow"></a></p>
42564256
<p id="section-6.1-3">The TBSCertificate's <code>serialNumber</code> MUST contain the zero-based index of the TBSCertificateLogEntry in the log. <span><a href="https://rfc-editor.org/rfc/rfc5280#section-4.1.2.2" class="relref">Section 4.1.2.2</a> of [<a href="#RFC5280" class="cite xref">RFC5280</a>]</span> forbids zero as a serial number, but <a href="#log-entries" class="auto internal xref">Section 5.3</a> defines a <code>null_entry</code> type for use in entry zero, so the index will be positive. This encoding is intended to avoid implementation errors by having the serial numbers and indices off by one.<a href="#section-6.1-3" class="pilcrow"></a></p>
42574257
<p id="section-6.1-4">The TBSCertificate's <code>subjectPublicKeyInfo</code> contains the specified public key. Its hash MUST match the TBSCertificateLogEntry's <code>subjectPublicKeyInfoHash</code>.<a href="#section-6.1-4" class="pilcrow"></a></p>
42584258
<p id="section-6.1-5">The TBSCertificate's <code>signature</code> and the Certificate's <code>signatureAlgorithm</code> MUST contain an AlgorithmIdentifier whose <code>algorithm</code> is id-alg-mtcProof, defined below, and whose <code>parameters</code> is omitted.<a href="#section-6.1-5" class="pilcrow"></a></p>
@@ -5211,16 +5211,26 @@ <h2 id="name-asn1-module">
52115211
{ iso(1) identified-organization(3) dod(6) internet(1)
52125212
security(5) mechanisms(5) pkix(7) id-mod(0)
52135213
id-mod-algorithmInformation-02(58) }
5214-
ATTRIBUTE
5214+
Extensions{}, ATTRIBUTE
52155215
FROM PKIX-CommonTypes-2009 -- in [RFC5912]
52165216
{ iso(1) identified-organization(3) dod(6) internet(1)
52175217
security(5) mechanisms(5) pkix(7) id-mod(0)
5218-
id-mod-pkixCommon-02(57) } ;
5218+
id-mod-pkixCommon-02(57) }
5219+
CertExtensions
5220+
FROM PKIX1Implicit-2009 -- in [RFC5912]
5221+
{ iso(1) identified-organization(3) dod(6) internet(1)
5222+
security(5) mechanisms(5) pkix(7) id-mod(0)
5223+
id-mod-pkix1-implicit-02(59) }
5224+
Version, Name, Validity, UniqueIdentifier
5225+
FROM PKIX1Explicit-2009 -- in [RFC5912]
5226+
{ iso(1) identified-organization(3) dod(6) internet(1)
5227+
security(5) mechanisms(5) pkix(7) id-mod(0)
5228+
id-mod-pkix1-explicit-02(51) }
52195229
TrustAnchorID
52205230
FROM TrustAnchorIDs-2025 -- in [I-D.ietf-tls-trust-ancohor-ids]
52215231
{ iso(1) identified-organization(3) dod(6) internet(1)
52225232
security(5) mechanisms(5) pkix(7) id-mod(0)
5223-
id-mod-trustAnchorIDs-2025(TBD) }
5233+
id-mod-trustAnchorIDs-2025(TBD) } ;
52245234

52255235
TBSCertificateLogEntry ::= SEQUENCE {
52265236
version [0] EXPLICIT Version DEFAULT v1,
@@ -5230,7 +5240,7 @@ <h2 id="name-asn1-module">
52305240
subjectPublicKeyInfoHash OCTET STRING,
52315241
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
52325242
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
5233-
extensions [3] EXPLICIT Extensions OPTIONAL }
5243+
extensions [3] EXPLICIT Extensions{{CertExtensions}} OPTIONAL }
52345244

52355245
id-alg-mtcProof OBJECT IDENTIFIER ::= {
52365246
iso(1) identified-organization(3) dod(6) internet(1) security(5)
@@ -6167,7 +6177,7 @@ <h2 id="name-acknowledgements">
61676177
<a href="#name-acknowledgements" class="section-name selfRef">Acknowledgements</a>
61686178
</h2>
61696179
<p id="appendix-D-1">This document stands on the shoulders of giants and builds upon decades of work in TLS authentication, X.509, and Certificate Transparency. The authors would like to thank all those who have contributed over the history of these protocols.<a href="#appendix-D-1" class="pilcrow"></a></p>
6170-
<p id="appendix-D-2">The authors additionally thank Bob Beck, Ryan Dickson, Aaron Gable, Nick Harper, Dennis Jackson, Matt Mueller, Chris Patton, Ryan Sleevi, and Emily Stark for many valuable discussions and insights which led to this document. We wish to thank Mia Celeste in particular, whose implementation of an earlier draft revealed several pitfalls.<a href="#appendix-D-2" class="pilcrow"></a></p>
6180+
<p id="appendix-D-2">The authors additionally thank Bob Beck, Ryan Dickson, Aaron Gable, Nick Harper, Russ Housley, Dennis Jackson, Matt Mueller, Chris Patton, Ryan Sleevi, and Emily Stark for many valuable discussions and insights which led to this document, as well as feedback on the document itself. We wish to thank Mia Celeste in particular, whose implementation of an earlier draft revealed several pitfalls.<a href="#appendix-D-2" class="pilcrow"></a></p>
61716181
<p id="appendix-D-3">The idea to mint tree heads infrequently was originally described by Richard Barnes in <span>[<a href="#STH-Discipline" class="cite xref">STH-Discipline</a>]</span>. The size optimization in Merkle Tree Certificates is an application of this idea to the certificate itself.<a href="#appendix-D-3" class="pilcrow"></a></p>
61726182
</section>
61736183
</div>
@@ -6378,6 +6388,9 @@ <h3 id="name-since-draft-davidben-tls-merkle-tre-2">
63786388
</li>
63796389
<li class="normal" id="appendix-E.10-1.2">
63806390
<p id="appendix-E.10-1.2.1">Set a more accurate intended status<a href="#appendix-E.10-1.2.1" class="pilcrow"></a></p>
6391+
</li>
6392+
<li class="normal" id="appendix-E.10-1.3">
6393+
<p id="appendix-E.10-1.3.1">Fixes to ASN.1 module<a href="#appendix-E.10-1.3.1" class="pilcrow"></a></p>
63816394
</li>
63826395
</ul>
63836396
</section>

draft-davidben-tls-merkle-tree-certs.txt

Lines changed: 33 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
Network Working Group D. Benjamin
66
Internet-Draft Google LLC
77
Intended status: Standards Track D. O'Brien
8-
Expires: 18 June 2026
8+
Expires: 4 July 2026
99
B. E. Westerbaan
1010
L. Valenta
1111
Cloudflare
1212
F. Valsorda
1313
Geomys
14-
15 December 2025
14+
31 December 2025
1515

1616

1717
Merkle Tree Certificates
@@ -58,7 +58,7 @@ Status of This Memo
5858
time. It is inappropriate to use Internet-Drafts as reference
5959
material or to cite them other than as "work in progress."
6060

61-
This Internet-Draft will expire on 18 June 2026.
61+
This Internet-Draft will expire on 4 July 2026.
6262

6363
Copyright Notice
6464

@@ -358,7 +358,7 @@ Table of Contents
358358
is assembled from the result and proves the information is in the
359359
CA's log.
360360

361-
+-- Certificate Authority -----+ +-- Authenticating Party ----+
361+
+-- Certification Authority ---+ +-- Authenticating Party ----+
362362
| | | |
363363
| 2. Validate request <---+----+-- 1. Request certificate |
364364
| | | | |
@@ -451,7 +451,7 @@ Table of Contents
451451
certificates are available after a short period of time and usable
452452
with up-to-date relying parties.
453453

454-
+-- Certificate Authority -------+
454+
+-- Certification Authority -----+
455455
| | +-- Update Channel --+
456456
| /\ | | |
457457
| / \ 1. Allocate landmarks -+--+----------------+ |
@@ -1180,7 +1180,7 @@ Table of Contents
11801180
subjectPublicKeyInfoHash OCTET STRING,
11811181
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
11821182
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
1183-
extensions [3] EXPLICIT Extensions OPTIONAL }
1183+
extensions [3] EXPLICIT Extensions{{CertExtensions}} OPTIONAL }
11841184

11851185
The version, issuer, validity, subject, issuerUniqueID,
11861186
subjectUniqueID, and extensions fields have the corresponding
@@ -1550,10 +1550,13 @@ Table of Contents
15501550
follows:
15511551

15521552
The TBSCertificate's version, issuer, validity, subject,
1553-
issuerUniqueID, subjectUniqueID, and extensions MUST match the
1554-
corresponding fields of the TBSCertificateLogEntry. Per Section 5.3,
1555-
this means issuer MUST be the issuance log's log ID as an X.509
1556-
distinguished name, as described in Section 5.2.
1553+
issuerUniqueID, subjectUniqueID, and extensions MUST be equal to the
1554+
corresponding fields of the TBSCertificateLogEntry. If any of
1555+
issuerUniqueID, subjectUniqueID, or extensions is absent in the
1556+
TBSCertificateLogEntry, the corresponding field MUST be absent in the
1557+
TBSCertificate. Per Section 5.3, this means issuer MUST be the
1558+
issuance log's log ID as an X.509 distinguished name, as described in
1559+
Section 5.2.
15571560

15581561
The TBSCertificate's serialNumber MUST contain the zero-based index
15591562
of the TBSCertificateLogEntry in the log. Section 4.1.2.2 of
@@ -3024,16 +3027,26 @@ Appendix A. ASN.1 Module
30243027
{ iso(1) identified-organization(3) dod(6) internet(1)
30253028
security(5) mechanisms(5) pkix(7) id-mod(0)
30263029
id-mod-algorithmInformation-02(58) }
3027-
ATTRIBUTE
3030+
Extensions{}, ATTRIBUTE
30283031
FROM PKIX-CommonTypes-2009 -- in [RFC5912]
30293032
{ iso(1) identified-organization(3) dod(6) internet(1)
30303033
security(5) mechanisms(5) pkix(7) id-mod(0)
3031-
id-mod-pkixCommon-02(57) } ;
3034+
id-mod-pkixCommon-02(57) }
3035+
CertExtensions
3036+
FROM PKIX1Implicit-2009 -- in [RFC5912]
3037+
{ iso(1) identified-organization(3) dod(6) internet(1)
3038+
security(5) mechanisms(5) pkix(7) id-mod(0)
3039+
id-mod-pkix1-implicit-02(59) }
3040+
Version, Name, Validity, UniqueIdentifier
3041+
FROM PKIX1Explicit-2009 -- in [RFC5912]
3042+
{ iso(1) identified-organization(3) dod(6) internet(1)
3043+
security(5) mechanisms(5) pkix(7) id-mod(0)
3044+
id-mod-pkix1-explicit-02(51) }
30323045
TrustAnchorID
30333046
FROM TrustAnchorIDs-2025 -- in [I-D.ietf-tls-trust-ancohor-ids]
30343047
{ iso(1) identified-organization(3) dod(6) internet(1)
30353048
security(5) mechanisms(5) pkix(7) id-mod(0)
3036-
id-mod-trustAnchorIDs-2025(TBD) }
3049+
id-mod-trustAnchorIDs-2025(TBD) } ;
30373050

30383051
TBSCertificateLogEntry ::= SEQUENCE {
30393052
version [0] EXPLICIT Version DEFAULT v1,
@@ -3043,7 +3056,7 @@ Appendix A. ASN.1 Module
30433056
subjectPublicKeyInfoHash OCTET STRING,
30443057
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
30453058
subjectUniqueID [2] IMPLICIT UniqueIdentifier OPTIONAL,
3046-
extensions [3] EXPLICIT Extensions OPTIONAL }
3059+
extensions [3] EXPLICIT Extensions{{CertExtensions}} OPTIONAL }
30473060

30483061
id-alg-mtcProof OBJECT IDENTIFIER ::= {
30493062
iso(1) identified-organization(3) dod(6) internet(1) security(5)
@@ -3505,9 +3518,10 @@ Acknowledgements
35053518
contributed over the history of these protocols.
35063519

35073520
The authors additionally thank Bob Beck, Ryan Dickson, Aaron Gable,
3508-
Nick Harper, Dennis Jackson, Matt Mueller, Chris Patton, Ryan Sleevi,
3509-
and Emily Stark for many valuable discussions and insights which led
3510-
to this document. We wish to thank Mia Celeste in particular, whose
3521+
Nick Harper, Russ Housley, Dennis Jackson, Matt Mueller, Chris
3522+
Patton, Ryan Sleevi, and Emily Stark for many valuable discussions
3523+
and insights which led to this document, as well as feedback on the
3524+
document itself. We wish to thank Mia Celeste in particular, whose
35113525
implementation of an earlier draft revealed several pitfalls.
35123526

35133527
The idea to mint tree heads infrequently was originally described by
@@ -3654,6 +3668,8 @@ Since draft-davidben-tls-merkle-tree-certs-09
36543668

36553669
* Set a more accurate intended status
36563670

3671+
* Fixes to ASN.1 module
3672+
36573673
Authors' Addresses
36583674

36593675
David Benjamin

0 commit comments

Comments
 (0)