3.4. Albero Merkle
3.4. Albero Merkle
L'algoritmo di hashing per l'hash dell'albero Merkle è SHA-256.
Struttura dell'input dell'albero 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;
Qui, "version" è la versione del protocollo a cui corrisponde il MerkleTreeLeaf. Questa versione è v1.
"leaf_type" è il tipo dell'input foglia. Attualmente, solo "timestamped_entry" (corrispondente a un SCT) è definito. Le future revisioni di questa versione del protocollo possono aggiungere nuovi tipi MerkleLeafType. La Sezione 4 spiega come i client devono gestire i tipi di foglia sconosciuti.
"timestamp" è il timestamp dell'SCT corrispondente emesso per questo certificato.
"signed_entry" è il "signed_entry" dell'SCT corrispondente.
"extensions" sono le "extensions" dell'SCT corrispondente.
Le foglie dell'albero Merkle sono gli hash delle foglie delle strutture "MerkleTreeLeaf" corrispondenti.