3.4. Merkle树
3.4. Merkle树
Merkle树哈希的哈希算法是SHA-256。
Merkle树输入的结构:
enum { timestamped_entry(0), (255) }
MerkleLeafType;
struct {
uint64 timestamp;
LogEntryType entry_type;
select(entry_type) {
case x509_entry: ASN.1Cert;
case precert_entry: PreCert;
} signed_entry;
CtExtensions extensions;
} TimestampedEntry;
struct {
Version version;
MerkleLeafType leaf_type;
select (leaf_type) {
case timestamped_entry: TimestampedEntry;
}
} MerkleTreeLeaf;
这里,"version"是MerkleTreeLeaf对应的协议版本。此版本是v1。
"leaf_type"是叶子输入的类型。目前,仅定义了"timestamped_entry"(对应于SCT)。此协议版本的未来修订版可能会添加新的MerkleLeafType类型。第4节解释了客户端应如何处理未知的叶子类型。
"timestamp"是为此证书颁发的相应SCT的时间戳。
"signed_entry"是相应SCT的"signed_entry"。
"extensions"是相应SCT的"extensions"。
Merkle树的叶子是相应"MerkleTreeLeaf"结构的叶子哈希。