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
xml2rfc v3 distinguishes between <artwork> and <sourcecode> now. It
seems kramdown-rfc handles it by treating untyped blocks as <artwork>,
and almost all types as <sourcecode>, except for the handful of ones set
for artwork.
https://www.rfc-editor.org/rpc/wiki/doku.php?id=sourcecode-types has
some "recommended" values for <sourcecode> types, so I've filled tehm
in. The only non-obvious case was the example X.500 name. I've left that
alone.
This seems to have no effect on the rendering, just the resulting XML.
Copy file name to clipboardExpand all lines: draft-davidben-tls-merkle-tree-certs.md
+17-17Lines changed: 17 additions & 17 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -348,14 +348,14 @@ A subtree `[start, end)` can be efficiently proven to be consistent with the ful
348
348
349
349
The subtree consistency proof, `SUBTREE_PROOF(start, end, D_n)` is defined similarly to {{Section 2.1.4.1 of !RFC9162}}, in terms of a helper function that tracks whether the subtree hash is known:
350
350
351
-
~~~
351
+
~~~pseudocode
352
352
SUBTREE_PROOF(start, end, D_n) =
353
353
SUBTREE_SUBPROOF(start, end, D_n, true)
354
354
~~~
355
355
356
356
If `start = 0` and `end = n`, the subtree is the root:
357
357
358
-
~~~
358
+
~~~pseudocode
359
359
SUBTREE_SUBPROOF(0, n, D_n, true) = {}
360
360
SUBTREE_SUBPROOF(0, n, D_n, false) = {MTH(D_n)}
361
361
~~~
@@ -364,34 +364,34 @@ Otherwise, `n > 1`. Let `k` be the largest power of two smaller than `n`. The co
364
364
365
365
* If `end <= k`, the subtree is on the left of `k`. The proof proves consistency with the left child and includes the right child:
366
366
367
-
~~~
367
+
~~~pseudocode
368
368
SUBTREE_SUBPROOF(start, end, D_n, b) =
369
369
SUBTREE_SUBPROOF(start, end, D[0:k], b) : MTH(D[k:n])
370
370
~~~
371
371
372
372
* If `k <= start`, the subtree is on the right of `k`. The proof proves consistency with the right child and includes the left child.
373
373
374
-
~~~
374
+
~~~pseudocode
375
375
SUBTREE_SUBPROOF(start, end, D_n, b) =
376
376
SUBTREE_SUBPROOF(start - k, end - k, D[k:n], b) : MTH(D[0:k])
377
377
~~~
378
378
379
379
* Otherwise, `start < k < end`, which implies `start = 0`. The proof proves consistency with the right child and includes the left child.
380
380
381
-
~~~
381
+
~~~pseudocode
382
382
SUBTREE_SUBPROOF(0, end, D_n, b) =
383
383
SUBTREE_SUBPROOF(0, end - k, D[k:n], false) : MTH(D[0:k])
384
384
~~~
385
385
386
386
When `start` is zero, this computes a Merkle consistency proof:
387
387
388
-
~~~
388
+
~~~pseudocode
389
389
SUBTREE_PROOF(0, end, D_n) = PROOF(end, D_n)
390
390
~~~
391
391
392
392
When `end = start + 1`, this computes a Merkle inclusion proof:
@@ -432,7 +432,7 @@ Given a Merkle Tree over `n` elements, a subtree defined by `[start, end)`, a co
432
432
433
433
Not all `[start, end)` intervals of a Merkle tree are valid subtrees. This section describes how, for any `start < end`, to determine up to two subtrees that efficiently cover the interval. The subtrees are determined by the following Python procedure:
434
434
435
-
~~~py
435
+
~~~python
436
436
def find_subtrees(start, end):
437
437
""" Returns a list of one or two subtrees that efficiently
438
438
cover [start, end). """
@@ -541,7 +541,7 @@ Each issuance log is identified by a *log ID*, which is a trust anchor ID {{!I-D
541
541
542
542
An issuance log's log ID determines an X.509 distinguished name ({{Section 4.1.2.4 of !RFC5280}}). The distinguished name has a single relative distinguished name, which has a single attribute. The attribute has type `id-rdna-trustAnchorID`, defined below:
@@ -561,7 +561,7 @@ For initial experimentation, early implementations of this design will use the O
561
561
562
562
Each entry in the log is a MerkleTreeCertEntry, defined with the TLS presentation syntax below. A MerkleTreeCertEntry describes certificate information that the CA has validated and certified.
563
563
564
-
~~~
564
+
~~~tls-presentation
565
565
struct {} Empty;
566
566
567
567
enum {
@@ -582,7 +582,7 @@ When `type` is `tbs_cert_entry`, `N` is the number of bytes needed to consume th
582
582
583
583
`tbs_cert_entry_data` contains the DER {{X.690}} encoding of a TBSCertificateLogEntry, defined below:
584
584
585
-
~~~
585
+
~~~asn.1
586
586
TBSCertificateLogEntry ::= SEQUENCE {
587
587
version [0] EXPLICIT Version DEFAULT v1,
588
588
issuer Name,
@@ -614,7 +614,7 @@ A single cosigner, with a single cosigner ID and public key, MAY generate cosign
614
614
615
615
A cosigner computes a cosignature for a subtree in some log by signing a MTCSubtreeSignatureInput, defined below using the TLS presentation language ({{Section 3 of !RFC8446}}):
616
616
617
-
~~~
617
+
~~~tls-presentation
618
618
opaque HashValue[HASH_SIZE];
619
619
620
620
/* From Section 4.1 of draft-ietf-tls-trust-anchor-ids */
@@ -784,7 +784,7 @@ The TBSCertificate's `subjectPublicKeyInfo` contains the specified public key. I
784
784
785
785
The TBSCertificate's `signature` and the Certificate's `signatureAlgorithm` MUST contain an AlgorithmIdentifier whose `algorithm` is id-alg-mtcProof, defined below, and whose `parameters` is omitted.
@@ -1294,13 +1294,13 @@ The note body is a sequence of the following lines, each terminated by a newline
1294
1294
1295
1295
Each note signature has a key name of the cosigner name. The signature's key ID is computed using the reserved signature type in {{SIGNED-NOTE}}, and a fixed string, as follows:
1296
1296
1297
-
~~~
1297
+
~~~pseudocode
1298
1298
key ID = SHA-256(key name || 0x0A || 0xFF || "mtc-subtree/v1")[:4]
1299
1299
~~~
1300
1300
1301
1301
A subtree whose `start` is zero can also be represented as a checkpoint {{TLOG-CHECKPOINT}}. A corresponding subtree signature can be represented as a note signature using a key ID computed as follows:
1302
1302
1303
-
~~~
1303
+
~~~pseudocode
1304
1304
key ID = SHA-256(key name || 0x0A || 0xFF || "mtc-checkpoint/v1")[:4]
0 commit comments