class HashListBase

Defined at line 20 of file ../../src/lib/digest/hash-list.h

|digest::internal::HashListBase| contains common hash list code. Callers MUST NOT use this class

directly. See |digest::HashListCreator| and |digest::HashListVerifier| below.

Public Methods

void HashListBase ()

Defined at line 22 of file ../../src/lib/digest/hash-list.h

void ~HashListBase ()

Defined at line 23 of file ../../src/lib/digest/hash-list.h

void HashListBase (const HashListBase & )

Defined at line 24 of file ../../src/lib/digest/hash-list.h

void HashListBase (HashListBase && )

Defined at line 24 of file ../../src/lib/digest/hash-list.h

HashListBase & operator= (const HashListBase & )

Defined at line 24 of file ../../src/lib/digest/hash-list.h

HashListBase & operator= (HashListBase && )

Defined at line 24 of file ../../src/lib/digest/hash-list.h

zx_status_t Align (size_t * data_off, size_t * buf_len)

HashListBase

<T

>

Defined at line 24 of file ../../src/lib/digest/hash-list.cc

size_t data_off ()

Defined at line 26 of file ../../src/lib/digest/hash-list.h

size_t data_len ()

Defined at line 27 of file ../../src/lib/digest/hash-list.h

size_t list_off ()

Defined at line 28 of file ../../src/lib/digest/hash-list.h

size_t list_len ()

Defined at line 29 of file ../../src/lib/digest/hash-list.h

uint64_t GetNodeId ()

Gets or sets relevant NodeDigest fields.

Defined at line 32 of file ../../src/lib/digest/hash-list.h

size_t GetNodeSize ()

Defined at line 33 of file ../../src/lib/digest/hash-list.h

size_t GetDigestSize ()

Defined at line 34 of file ../../src/lib/digest/hash-list.h

zx_status_t SetDataLength (size_t data_len)

Sets the length of data this hash list will represent. The maxium possible size is

|SIZE_MAX - NodeSize + 1|, i.e. the maximum node-aligned value of type |size_t|.

Defined at line 34 of file ../../src/lib/digest/hash-list.cc

void SetNodeId (uint64_t id)

Defined at line 35 of file ../../src/lib/digest/hash-list.h

zx_status_t SetNodeSize (size_t node_size)

Defined at line 36 of file ../../src/lib/digest/hash-list.h

bool IsAligned (size_t data_off)

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

Defined at line 39 of file ../../src/lib/digest/hash-list.h

size_t GetListOffset (size_t data_off)

Returns the corresponding offset in the hash list for an offset in the data. This method

does not check if |data_off| is within bounds.

Defined at line 48 of file ../../src/lib/digest/hash-list.cc

void SetPadDataToNodeSize (bool pad_data_to_node_size)

Sets whether the hash list should pad the length of the data it's given up to the next multiple

of the node size.

Defined at line 51 of file ../../src/lib/digest/hash-list.h

size_t GetListLength ()

Returns the minimum size needed to hold a hash list for the given |data_len|. Note that this

differs from |list_len()| in that it returns what's needed, whereas the latter returns what

the list length currently is.

Defined at line 52 of file ../../src/lib/digest/hash-list.cc

Protected Methods

bool IsValidRange (size_t data_off, size_t buf_len)

Checks range given by |data_off| and |buf_len| is valid.

Defined at line 56 of file ../../src/lib/digest/hash-list.cc

zx_status_t ProcessData (const uint8_t * buf, size_t buf_len, size_t data_off)

Handle the |buf_len| bytes from |buf|, corresponding to the data sequence starting at

|data_off|.

Defined at line 61 of file ../../src/lib/digest/hash-list.cc

void set_list_len (size_t list_len)

Defined at line 65 of file ../../src/lib/digest/hash-list.h

void HandleOne (const Digest & digest)

Defined at line 78 of file ../../src/lib/digest/hash-list.h

void HandleOne ()

Process the next digest in the hash list, e.g. write a digest when creating, or compare when

verifying. The no-argument version simply invokes the second version with the current digest.

The second version is implemented in derived classes.

Defined at line 93 of file ../../src/lib/digest/hash-list.cc