Passa al contenuto principale

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.