E-MailRelay
|
A class for objects that can perform a cryptographic hash. More...
#include <gssl.h>
Public Member Functions | |
Digester (std::unique_ptr< DigesterImpBase >) | |
Constructor, used by the Library class. More... | |
std::size_t | blocksize () const noexcept |
Returns the hash function's block size in bytes. More... | |
std::size_t | valuesize () const noexcept |
Returns the hash function's value size in bytes. More... | |
std::size_t | statesize () const noexcept |
Returns the size of the state() string in bytes, or zero if state() is not implemented. More... | |
void | add (std::string_view) |
Adds data of arbitrary size. More... | |
std::string | state () |
Returns the intermediate state. More... | |
std::string | value () |
Returns the hash value. More... | |
A class for objects that can perform a cryptographic hash.
Instances are created by the Library::digester() factory method and can then be copied around.
Use add() one or more times, then call either state() or value() and discard. The state() string can be passed in to the Library factory method to get the digest to start from the intermediate state. However, the statesize() method returns zero if intermediate state is not supported by the underlying library.
|
explicit |
void GSsl::Digester::add | ( | std::string_view | sv | ) |
|
noexcept |
std::string GSsl::Digester::state | ( | ) |
Returns the intermediate state.
The state string can be persisted and reused across different implementations, so it is standardised as some number of 32-bit little-endian values making up valuesize() bytes, followed by one 32-bit little-endian value holding the total add()ed size.
|
noexcept |
std::string GSsl::Digester::value | ( | ) |
|
noexcept |