You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<pid="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><ahref="https://rfc-editor.org/rfc/rfc5280#section-4.1.2" class="relref">Section 4.1.2</a> of [<ahref="#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><ahref="https://rfc-editor.org/rfc/rfc5280#section-4.1.2.7" class="relref">Section 4.1.2.7</a> of [<ahref="#RFC5280" class="cite xref">RFC5280</a>]</span>). The hash uses the log's hash function (<ahref="#log-parameters" class="auto internal xref">Section 5.1</a>) and is computed over the SubjectPublicKeyInfo's DER <span>[<ahref="#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 <ahref="#log-ids" class="auto internal xref">Section 5.2</a>.<ahref="#section-5.3-6" class="pilcrow">¶</a></p>
<pid="section-6.1-1">The information is encoded in an X.509 Certificate <span>[<ahref="#RFC5280" class="cite xref">RFC5280</a>]</span> as follows:<ahref="#section-6.1-1" class="pilcrow">¶</a></p>
4255
-
<pid="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 <ahref="#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 <ahref="#log-ids" class="auto internal xref">Section 5.2</a>.<ahref="#section-6.1-2" class="pilcrow">¶</a></p>
4255
+
<pid="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 <ahref="#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 <ahref="#log-ids" class="auto internal xref">Section 5.2</a>.<ahref="#section-6.1-2" class="pilcrow">¶</a></p>
4256
4256
<pid="section-6.1-3">The TBSCertificate's <code>serialNumber</code> MUST contain the zero-based index of the TBSCertificateLogEntry in the log. <span><ahref="https://rfc-editor.org/rfc/rfc5280#section-4.1.2.2" class="relref">Section 4.1.2.2</a> of [<ahref="#RFC5280" class="cite xref">RFC5280</a>]</span> forbids zero as a serial number, but <ahref="#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.<ahref="#section-6.1-3" class="pilcrow">¶</a></p>
4257
4257
<pid="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>.<ahref="#section-6.1-4" class="pilcrow">¶</a></p>
4258
4258
<pid="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.<ahref="#section-6.1-5" class="pilcrow">¶</a></p>
<pid="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.<ahref="#appendix-D-1" class="pilcrow">¶</a></p>
6170
-
<pid="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.<ahref="#appendix-D-2" class="pilcrow">¶</a></p>
6180
+
<pid="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.<ahref="#appendix-D-2" class="pilcrow">¶</a></p>
6171
6181
<pid="appendix-D-3">The idea to mint tree heads infrequently was originally described by Richard Barnes in <span>[<ahref="#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.<ahref="#appendix-D-3" class="pilcrow">¶</a></p>
0 commit comments