template <typename T, typename VP, class MT, class HL>

class MerkleTree

Defined at line 28 of file ../../src/lib/digest/merkle-tree.h

|digest::internal::MerkleTree| contains common Merkle tree code. Callers MUST NOT use this

class directly. See |digest::MerkleTreeCreator| and |digest::MerkleTreeVerifier| below.

Protected Members

HL hash_list_
std::unique_ptr<MT> next_

Public Methods

void MerkleTree<T, VP, MT, HL> ()

Defined at line 30 of file ../../src/lib/digest/merkle-tree.h

void ~MerkleTree<T, VP, MT, HL> ()

Defined at line 31 of file ../../src/lib/digest/merkle-tree.h

void MerkleTree<T, VP, MT, HL> (const MerkleTree<T, VP, MT, HL> & )

Defined at line 32 of file ../../src/lib/digest/merkle-tree.h

void MerkleTree<T, VP, MT, HL> (MerkleTree<T, VP, MT, HL> && )

Defined at line 32 of file ../../src/lib/digest/merkle-tree.h

MerkleTree<T, VP, MT, HL> & operator= (const MerkleTree<T, VP, MT, HL> & )

Defined at line 32 of file ../../src/lib/digest/merkle-tree.h

MerkleTree<T, VP, MT, HL> & operator= (MerkleTree<T, VP, MT, HL> && )

Defined at line 32 of file ../../src/lib/digest/merkle-tree.h

size_t GetNodeSize ()

Defined at line 34 of file ../../src/lib/digest/merkle-tree.h

void SetNodeSize (size_t node_size)

Defined at line 35 of file ../../src/lib/digest/merkle-tree.h

bool GetUseCompactFormat ()

Defined at line 39 of file ../../src/lib/digest/merkle-tree.h

bool IsAligned (size_t data_off)

Returns true if |data_off| is aligned to a node boundary.

Defined at line 42 of file ../../src/lib/digest/merkle-tree.h

zx_status_t Align (size_t * data_off, size_t * buf_len)

Modifies |data_off| and |buf_len| to be aligned to the minimum number of nodes that covered

their original range.

Defined at line 46 of file ../../src/lib/digest/merkle-tree.h

void SetUseCompactFormat (bool use_compact_format)

When set to |true| the hash lists in the tree will not contain padding.

Defined at line 74 of file ../../src/lib/digest/merkle-tree.cc

zx_status_t SetDataLength (size_t data_len)

MerkleTree

Defined at line 26 of file ../../src/lib/digest/merkle-tree.cc

size_t GetTreeLength ()

Returns the minimum size needed to hold a Merkle tree for the given |data_len|. The tree

consists of all the nodes containing the digests of child nodes. It does NOT include the root

digest, which must be passed to |Verify| after a trust decision has been made. This means that

when the |data_len| is less than |NodeSize|, this method will return 0.

Defined at line 48 of file ../../src/lib/digest/merkle-tree.cc

zx_status_t SetTree (VP tree, size_t tree_len, VP root, size_t root_len)

Registers |tree| as a Merkle tree for |data_len_| bytes of data, rooted by a digest of given by

|root|.

Defined at line 57 of file ../../src/lib/digest/merkle-tree.cc