class Digest

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

This class represents a digest produced by a hash algorithm.

This class is not thread safe.

Public Methods

void Digest ()

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

void Digest (const uint8_t (&)[32] bytes)

Defined at line 36 of file ../../src/lib/digest/digest.cc

void Digest (Digest && other)

Defined at line 38 of file ../../src/lib/digest/digest.cc

Digest & operator= (const uint8_t (&)[32] bytes)

Defined at line 42 of file ../../src/lib/digest/digest.cc

Digest & operator= (Digest && other)

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

void Digest (const Digest & other)

Copying a digest copies the digest bytes but can not be used for incrementally adding to

the digest. The copy constructor/assignment code will assert if the source object is not

finalized.

Defined at line 55 of file ../../src/lib/digest/digest.cc

Digest & operator= (const Digest & other)

Defined at line 60 of file ../../src/lib/digest/digest.cc

void ~Digest ()

Defined at line 40 of file ../../src/lib/digest/digest.cc

const uint8_t * get ()

Defined at line 45 of file ../../src/lib/digest/digest.h

size_t len ()

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

void Init ()

Initializes the hash algorithm context. It must be called before Update,

and after Final when reusing the Digest object.

Defined at line 66 of file ../../src/lib/digest/digest.cc

void Update (const void * data, size_t len)

Adds data to be hashed. This may be called multiple times between calls

to |Init| and |Final|. If A and B are byte sequences of length A_len and

B_len, respectively, and AB is the concatenation of A and B, then

"Update(A, A_len); Update(B, B_len);" and "Update(AB, A_len + B_len)"

yield the same internal state and will produce the same digest when

|Final| is called.

Defined at line 71 of file ../../src/lib/digest/digest.cc

zx_status_t Parse (const char * hex)

Defined at line 74 of file ../../src/lib/digest/digest.h

zx_status_t Parse (const fbl::String & hex)

Defined at line 75 of file ../../src/lib/digest/digest.h

const uint8_t * Final ()

Completes the hash algorithm and returns the digest. This must only be

called after a call to |Init|; intervening calls to |Update| are

optional.

Defined at line 77 of file ../../src/lib/digest/digest.cc

void CopyTo (uint8_t (&)[32] out)

Writes digest to |out|.

Defined at line 81 of file ../../src/lib/digest/digest.h

const uint8_t * Hash (const void * data, size_t len)

This convenience method performs the hash algorithm in "one shot": It

calls |Init| and |Update(data, len)| before returning the result of

calling |Final|.

Defined at line 84 of file ../../src/lib/digest/digest.cc

zx_status_t Parse (const char * hex, size_t len)

Converts a null-terminated |hex| string to binary and stores it in this

object. |hex| must represent |kLength| bytes, that is, it must have

|kLength| * 2 characters.

Defined at line 90 of file ../../src/lib/digest/digest.cc

bool operator== (const Digest & rhs)

Defined at line 95 of file ../../src/lib/digest/digest.h

bool operator!= (const Digest & rhs)

Defined at line 96 of file ../../src/lib/digest/digest.h

bool operator== (const uint8_t (&)[32] rhs)

Defined at line 97 of file ../../src/lib/digest/digest.h

bool operator!= (const uint8_t (&)[32] rhs)

Defined at line 98 of file ../../src/lib/digest/digest.h

bool operator< (const Digest & rhs)

Allow a digest to be used in a map.

Defined at line 101 of file ../../src/lib/digest/digest.h

fbl::String ToString ()

Returns the current digest as a hex string.

Defined at line 110 of file ../../src/lib/digest/digest.cc

void CopyTo (uint8_t * out, size_t len)

Write digest to |out|. |len| must be at least |kSha256Length|; if it is

greater, the remainder of |out| is filled with zeros.

Defined at line 121 of file ../../src/lib/digest/digest.cc

void CopyTruncatedTo (uint8_t * out, size_t len)

Like |CopyTo(out, len)|, but only writes the first |len| bytes of the digest to |out| if |len|

is less than |kSha256Length|.

Defined at line 126 of file ../../src/lib/digest/digest.cc

bool Equals (const uint8_t * rhs, size_t rhs_len)

Equality operators. Those that take |const uint8_t *| arguments will

read |kLength| bytes; callers MUST ensure there are sufficient bytes

present.

Defined at line 139 of file ../../src/lib/digest/digest.cc

Friends

std::ostream & Digest (std::ostream & const Digest & )