3.4. Merkle Tree (Merkle-Baum)
3.4. Merkle Tree (Merkle-Baum)
Der Hash-Algorithmus für den Merkle Tree Hash ist SHA-256.
Struktur der Merkle-Tree-Eingabe:
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;
Hier ist version die Protokollversion, der MerkleTreeLeaf entspricht. Diese Version ist v1.
leaf_type ist der Typ der Blatteingabe. Derzeit ist nur timestamped_entry (entsprechend einem SCT) definiert. Künftige Revisionen können neue MerkleLeafType-Typen hinzufügen. Abschnitt 4 erläutert den Umgang mit unbekannten Blatttypen.
timestamp ist der Zeitstempel des zugehörigen SCT für dieses Zertifikat.
signed_entry ist das signed_entry des zugehörigen SCT.
extensions sind die extensions des zugehörigen SCT.
Die Blätter des Merkle Tree sind die Leaf Hashes der entsprechenden MerkleTreeLeaf-Strukturen.