Index: doc/rfc6962-bis.xml
diff --git a/doc/rfc6962-bis.xml b/doc/rfc6962-bis.xml
index a9cd7b9388849655992e30f17f08b4f8ec3cb136..f166f6b536e4283ff133794df9625452910f98bb 100644
--- a/doc/rfc6962-bis.xml
+++ b/doc/rfc6962-bis.xml
@@ -691,6 +691,9 @@ for misbehavior or has had a key compromise).
enum { timestamped_entry(0), (255) }
MerkleLeafType;
+ enum { v1(0), (255) }
+ LeafVersion;
+
struct {
uint64 timestamp;
LogEntryType entry_type;
@@ -702,17 +705,16 @@ for misbehavior or has had a key compromise).
} TimestampedEntry;
struct {
- Version version;
+ LeafVersion version;
MerkleLeafType leaf_type;
select (leaf_type) {
- case timestamped_entry: TimestampedEntry;
- }
+ case timestamped_entry: TimestampedEntry;
+ }
} MerkleTreeLeaf;
- Here, version is the version of the
-protocol to which the MerkleTreeLeaf corresponds. This version is v1.
+ Here, version is the version of the MerkleTreeLeaf structure. This version is v1.
leaf_type is the type of the leaf input. Currently, only timestamped_entry (corresponding to an SCT) is defined. Future revisions of this protocol version may add new MerkleLeafType types. explains how clients should handle unknown leaf types.
@@ -739,8 +741,11 @@ protocol to which the MerkleTreeLeaf corresponds. This version is v1.
opaque CtSthExtensions<0..2^16-1>;
+ enum { v1(0), v2(1), (255) }
+ TreeHeadVersion;
+
digitally-signed struct {
- Version version;
+ TreeHeadVersion version;
SignatureType signature_type = tree_hash;
uint64 timestamp;
uint64 tree_size;
@@ -751,8 +756,7 @@ protocol to which the MerkleTreeLeaf corresponds. This version is v1.
- version is the version of the protocol to
-which the TreeHeadSignature conforms. This version is v1.
+ version is the version of the TreeHeadSignature structure. This version is v2.
timestamp is the current time. The timestamp MUST be at least as recent as the most recent SCT timestamp in the tree. Each subsequent timestamp MUST be more recent than the timestamp of the previous update.
@@ -764,7 +768,7 @@ which the TreeHeadSignature conforms. This version is v1.
sha256_root_hash is the root of the Merkle Hash Tree.
- extensions are future extensions to this protocol version (v1). Currently, no extensions are specified.
+ extensions are future extensions to TreeHeadSignature v2. Currently, no extensions are specified. Note that TreeHeadSignature v1 does not include this field. The purpose of the extensions field is to allow augmenting the TreeHeadSignature without increasing its version.
Each log MUST produce on demand a Signed Tree Head that is no older than the Maximum Merge Delay. In the unlikely event that it receives no new submissions during an MMD period, the log SHALL sign the same Merkle Tree Hash with a fresh timestamp.