跳到主要内容

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"结构的叶子哈希。