Skip to content

Commit 6098edb

Browse files
author
ID Bot
committed
Script updating gh-pages from 18d138a. [ci skip]
1 parent 6e2326b commit 6098edb

2 files changed

Lines changed: 25 additions & 25 deletions

File tree

clarify-verification/draft-davidben-tls-merkle-tree-certs.html

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1914,7 +1914,7 @@ <h4 id="name-evaluating-a-subtree-inclus">
19141914
<p id="section-4.2.1-1">Given a subtree inclusion proof, <code>inclusion_proof</code>, for entry <code>index</code>, with hash <code>entry_hash</code>, of a subtree <code>[start, end)</code>, the subtree inclusion proof can be <em>evaluated</em> to compute the expected subtree hash:<a href="#section-4.2.1-1" class="pilcrow"></a></p>
19151915
<ol start="1" type="1" class="normal type-1" id="section-4.2.1-2">
19161916
<li id="section-4.2.1-2.1">
1917-
<p id="section-4.2.1-2.1.1">Check <code>start &lt;= index &lt; end</code>. If this does not hold, fail proof evaluation.<a href="#section-4.2.1-2.1.1" class="pilcrow"></a></p>
1917+
<p id="section-4.2.1-2.1.1">Check that <code>[start, end)</code> is a valid subtree (<a href="#definition-of-a-subtree" class="auto internal xref">Section 4.1</a>), and that <code>start &lt;= index &lt; end</code>. If either do not hold, fail proof evaluation.<a href="#section-4.2.1-2.1.1" class="pilcrow"></a></p>
19181918
</li>
19191919
<li id="section-4.2.1-2.2">
19201920
<p id="section-4.2.1-2.2.1">Set <code>fn</code> to <code>index - start</code> and <code>sn</code> to <code>end - start - 1</code>.<a href="#section-4.2.1-2.2.1" class="pilcrow"></a></p>
@@ -3387,30 +3387,27 @@ <h3 id="name-verifying-certificate-signa">
33873387
<p id="section-7.2-2.3.1">Let <code>index</code> be the certificate's serial number. If <code>index</code> is contained in one of the relying party's revoked ranges (<a href="#revocation-by-index" class="auto internal xref">Section 7.5</a>), abort this process and fail verification.<a href="#section-7.2-2.3.1" class="pilcrow"></a></p>
33883388
</li>
33893389
<li id="section-7.2-2.4">
3390-
<p id="section-7.2-2.4.1">Check the MTCProof's <code>start</code> and <code>end</code> describe a subtree per <a href="#definition-of-a-subtree" class="auto internal xref">Section 4.1</a>. If not, abort this process and fail verification.<a href="#section-7.2-2.4.1" class="pilcrow"></a></p>
3390+
<p id="section-7.2-2.4.1">Construct a TBSCertificateLogEntry as follows:<a href="#section-7.2-2.4.1" class="pilcrow"></a></p>
3391+
<ol start="1" type="1" class="normal type-1" id="section-7.2-2.4.2">
3392+
<li id="section-7.2-2.4.2.1">
3393+
<p id="section-7.2-2.4.2.1.1">Copy the <code>version</code>, <code>issuer</code>, <code>validity</code>, <code>subject</code>, <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, and <code>extensions</code> fields from the TBSCertificate.<a href="#section-7.2-2.4.2.1.1" class="pilcrow"></a></p>
33913394
</li>
3392-
<li id="section-7.2-2.5">
3393-
<p id="section-7.2-2.5.1">Construct a TBSCertificateLogEntry as follows:<a href="#section-7.2-2.5.1" class="pilcrow"></a></p>
3394-
<ol start="1" type="1" class="normal type-1" id="section-7.2-2.5.2">
3395-
<li id="section-7.2-2.5.2.1">
3396-
<p id="section-7.2-2.5.2.1.1">Copy the <code>version</code>, <code>issuer</code>, <code>validity</code>, <code>subject</code>, <code>issuerUniqueID</code>, <code>subjectUniqueID</code>, and <code>extensions</code> fields from the TBSCertificate.<a href="#section-7.2-2.5.2.1.1" class="pilcrow"></a></p>
3397-
</li>
3398-
<li id="section-7.2-2.5.2.2">
3399-
<p id="section-7.2-2.5.2.2.1">Set <code>subjectPublicKeyInfoHash</code> to the hash of the DER encoding of <code>subjectPublicKeyInfo</code>.<a href="#section-7.2-2.5.2.2.1" class="pilcrow"></a></p>
3395+
<li id="section-7.2-2.4.2.2">
3396+
<p id="section-7.2-2.4.2.2.1">Set <code>subjectPublicKeyInfoHash</code> to the hash of the DER encoding of <code>subjectPublicKeyInfo</code>.<a href="#section-7.2-2.4.2.2.1" class="pilcrow"></a></p>
34003397
</li>
34013398
</ol>
3399+
</li>
3400+
<li id="section-7.2-2.5">
3401+
<p id="section-7.2-2.5.1">Construct a MerkleTreeCertEntry of type <code>tbs_cert_entry</code> with contents the TBSCertificateLogEntry. Let <code>entry_hash</code> be the hash of the entry, <code>MTH({entry}) = HASH(0x00 || entry)</code>, as defined in <span><a href="https://rfc-editor.org/rfc/rfc9162#section-2.1.1" class="relref">Section 2.1.1</a> of [<a href="#RFC9162" class="cite xref">RFC9162</a>]</span>.<a href="#section-7.2-2.5.1" class="pilcrow"></a></p>
34023402
</li>
34033403
<li id="section-7.2-2.6">
3404-
<p id="section-7.2-2.6.1">Construct a MerkleTreeCertEntry of type <code>tbs_cert_entry</code> with contents the TBSCertificateLogEntry. Let <code>entry_hash</code> be the hash of the entry, <code>MTH({entry}) = HASH(0x00 || entry)</code>, as defined in <span><a href="https://rfc-editor.org/rfc/rfc9162#section-2.1.1" class="relref">Section 2.1.1</a> of [<a href="#RFC9162" class="cite xref">RFC9162</a>]</span>.<a href="#section-7.2-2.6.1" class="pilcrow"></a></p>
3404+
<p id="section-7.2-2.6.1">Let <code>expected_subtree_hash</code> be the result of evaluating the MTCProof's <code>inclusion_proof</code> for entry <code>index</code>, with hash <code>entry_hash</code>, of a subtree <code>[start, end)</code>, as described in <a href="#evaluating-a-subtree-inclusion-proof" class="auto internal xref">Section 4.2.1</a>. If evaluation fails, abort this process and fail verification.<a href="#section-7.2-2.6.1" class="pilcrow"></a></p>
34053405
</li>
34063406
<li id="section-7.2-2.7">
3407-
<p id="section-7.2-2.7.1">Let <code>expected_subtree_hash</code> be the result of evaluating the MTCProof's <code>inclusion_proof</code> for entry <code>index</code>, with hash <code>entry_hash</code>, of a subtree <code>[start, end)</code>, as described in <a href="#evaluating-a-subtree-inclusion-proof" class="auto internal xref">Section 4.2.1</a>. If evaluation fails, abort this process and fail verification.<a href="#section-7.2-2.7.1" class="pilcrow"></a></p>
3407+
<p id="section-7.2-2.7.1">If <code>[start, end)</code> matches a trusted subtree (<a href="#trusted-subtrees" class="auto internal xref">Section 7.4</a>), check that <code>expected_subtree_hash</code> is equal to the trusted subtree's hash. Return success if it matches and failure if it does not.<a href="#section-7.2-2.7.1" class="pilcrow"></a></p>
34083408
</li>
34093409
<li id="section-7.2-2.8">
3410-
<p id="section-7.2-2.8.1">If <code>[start, end)</code> matches a trusted subtree (<a href="#trusted-subtrees" class="auto internal xref">Section 7.4</a>), check that <code>expected_subtree_hash</code> is equal to the trusted subtree's hash. Return success if it matches and failure if it does not.<a href="#section-7.2-2.8.1" class="pilcrow"></a></p>
3411-
</li>
3412-
<li id="section-7.2-2.9">
3413-
<p id="section-7.2-2.9.1">Otherwise, check that the MTCProof's <code>signatures</code> contain a sufficient set of valid signatures from cosigners to satisfy the relying party's cosigner requirements (<a href="#trusted-cosigners" class="auto internal xref">Section 7.3</a>). Unrecognized cosigners MUST be ignored. Signatures are verified as described in <a href="#signature-format" class="auto internal xref">Section 5.4.1</a>. The <code>hash</code> field of the MTCSubtree is set to <code>expected_subtree_hash</code>.<a href="#section-7.2-2.9.1" class="pilcrow"></a></p>
3410+
<p id="section-7.2-2.8.1">Otherwise, check that the MTCProof's <code>signatures</code> contain a sufficient set of valid signatures from cosigners to satisfy the relying party's cosigner requirements (<a href="#trusted-cosigners" class="auto internal xref">Section 7.3</a>). Unrecognized cosigners MUST be ignored. Signatures are verified as described in <a href="#signature-format" class="auto internal xref">Section 5.4.1</a>. The <code>hash</code> field of the MTCSubtree is set to <code>expected_subtree_hash</code>.<a href="#section-7.2-2.8.1" class="pilcrow"></a></p>
34143411
</li>
34153412
</ol>
34163413
<p id="section-7.2-3">This procedure only replaces the signature verification portion of X.509 path validation. The relying party MUST continue to perform other checks, such as checking expiry.<a href="#section-7.2-3" class="pilcrow"></a></p>
@@ -4328,6 +4325,9 @@ <h3 id="name-since-draft-davidben-tls-merkle-tr">
43284325
<ul class="normal">
43294326
<li class="normal" id="appendix-D.8-1.1">
43304327
<p id="appendix-D.8-1.1.1">Clarify landmark zero<a href="#appendix-D.8-1.1.1" class="pilcrow"></a></p>
4328+
</li>
4329+
<li class="normal" id="appendix-D.8-1.2">
4330+
<p id="appendix-D.8-1.2.1">Clarify signature verification process<a href="#appendix-D.8-1.2.1" class="pilcrow"></a></p>
43314331
</li>
43324332
</ul>
43334333
</section>

clarify-verification/draft-davidben-tls-merkle-tree-certs.txt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -517,7 +517,8 @@ Table of Contents
517517
inclusion proof can be _evaluated_ to compute the expected subtree
518518
hash:
519519

520-
1. Check start <= index < end. If this does not hold, fail proof
520+
1. Check that [start, end) is a valid subtree (Section 4.1), and
521+
that start <= index < end. If either do not hold, fail proof
521522
evaluation.
522523

523524
2. Set fn to index - start and sn to end - start - 1.
@@ -1656,10 +1657,7 @@ Table of Contents
16561657
contained in one of the relying party's revoked ranges
16571658
(Section 7.5), abort this process and fail verification.
16581659

1659-
4. Check the MTCProof's start and end describe a subtree per
1660-
Section 4.1. If not, abort this process and fail verification.
1661-
1662-
5. Construct a TBSCertificateLogEntry as follows:
1660+
4. Construct a TBSCertificateLogEntry as follows:
16631661

16641662
1. Copy the version, issuer, validity, subject, issuerUniqueID,
16651663
subjectUniqueID, and extensions fields from the
@@ -1668,21 +1666,21 @@ Table of Contents
16681666
2. Set subjectPublicKeyInfoHash to the hash of the DER encoding
16691667
of subjectPublicKeyInfo.
16701668

1671-
6. Construct a MerkleTreeCertEntry of type tbs_cert_entry with
1669+
5. Construct a MerkleTreeCertEntry of type tbs_cert_entry with
16721670
contents the TBSCertificateLogEntry. Let entry_hash be the hash
16731671
of the entry, MTH({entry}) = HASH(0x00 || entry), as defined in
16741672
Section 2.1.1 of [RFC9162].
16751673

1676-
7. Let expected_subtree_hash be the result of evaluating the
1674+
6. Let expected_subtree_hash be the result of evaluating the
16771675
MTCProof's inclusion_proof for entry index, with hash entry_hash,
16781676
of a subtree [start, end), as described in Section 4.2.1. If
16791677
evaluation fails, abort this process and fail verification.
16801678

1681-
8. If [start, end) matches a trusted subtree (Section 7.4), check
1679+
7. If [start, end) matches a trusted subtree (Section 7.4), check
16821680
that expected_subtree_hash is equal to the trusted subtree's
16831681
hash. Return success if it matches and failure if it does not.
16841682

1685-
9. Otherwise, check that the MTCProof's signatures contain a
1683+
8. Otherwise, check that the MTCProof's signatures contain a
16861684
sufficient set of valid signatures from cosigners to satisfy the
16871685
relying party's cosigner requirements (Section 7.3).
16881686
Unrecognized cosigners MUST be ignored. Signatures are verified
@@ -2941,6 +2939,8 @@ Since draft-davidben-tls-merkle-tree-certs-07
29412939

29422940
* Clarify landmark zero
29432941

2942+
* Clarify signature verification process
2943+
29442944
Authors' Addresses
29452945

29462946
David Benjamin

0 commit comments

Comments
 (0)