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 & )