| Index: net/cert/merkle_tree_leaf.h
|
| diff --git a/net/cert/merkle_tree_leaf.h b/net/cert/merkle_tree_leaf.h
|
| index 8f314f56a70641142300f8c6d556ab349178966b..21217bb6ec5c454e53c12e82cf2ff6e0b8cdf4f4 100644
|
| --- a/net/cert/merkle_tree_leaf.h
|
| +++ b/net/cert/merkle_tree_leaf.h
|
| @@ -19,15 +19,25 @@ class X509Certificate;
|
| namespace ct {
|
|
|
| // Represents a MerkleTreeLeaf as defined in RFC6962, section 3.4.
|
| -// Has all the data as the MerkleTreeLeaf defined in the RFC, arranged
|
| -// slightly differently.
|
| +// The goal of this struct is to represent the Merkle tree entry such that
|
| +// all details are easily accessible and a leaf hash can be easily calculated
|
| +// for the entry.
|
| +//
|
| +// As such, it has all the data as the MerkleTreeLeaf defined in the RFC,
|
| +// but it is not identical to the structure in the RFC for the following
|
| +// reasons:
|
| +// * The version is implicit - it is only used for V1 leaves currently.
|
| +// * the leaf_type is also implicit: There's exactly one leaf type and no
|
| +// new types are planned.
|
| +// * The timestamped_entry's |timestamp| and |extensions| fields are directly
|
| +// accessible.
|
| +// * The timestamped_entry's entry_type can be deduced from |log_entry|.type
|
| struct NET_EXPORT MerkleTreeLeaf {
|
| MerkleTreeLeaf();
|
| + MerkleTreeLeaf(const MerkleTreeLeaf& other);
|
| + MerkleTreeLeaf(MerkleTreeLeaf&&);
|
| ~MerkleTreeLeaf();
|
|
|
| - // The log id this leaf belongs to.
|
| - std::string log_id;
|
| -
|
| // Certificate / Precertificate and indication of entry type.
|
| LogEntry log_entry;
|
|
|
| @@ -38,13 +48,19 @@ struct NET_EXPORT MerkleTreeLeaf {
|
| std::string extensions;
|
| };
|
|
|
| +// Given a |cert| and an |sct| for that certificate, constructs the
|
| +// representation of this entry in the Merkle tree by filling in
|
| +// |merkle_tree_leaf|.
|
| +// Returns false if it failed to construct the |merkle_tree_leaf|.
|
| NET_EXPORT bool GetMerkleTreeLeaf(const X509Certificate* cert,
|
| const SignedCertificateTimestamp* sct,
|
| MerkleTreeLeaf* merkle_tree_leaf);
|
|
|
| -// Sets |*out| to the hash of the Merkle |tree_leaf|, as defined in RFC6962.
|
| -// Returns true if the hash was generated, false if an error occurred.
|
| -NET_EXPORT bool Hash(const MerkleTreeLeaf& tree_leaf, std::string* out);
|
| +// Sets |*out| to the hash of the Merkle |tree_leaf|, as defined in RFC6962,
|
| +// section 3.4. Returns true if the hash was generated, false if an error
|
| +// occurred.
|
| +NET_EXPORT bool HashMerkleTreeLeaf(const MerkleTreeLeaf& tree_leaf,
|
| + std::string* out);
|
|
|
| } // namespace ct
|
|
|
|
|