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 |
Returns the hash function's block size in bytes. More... | |
std::size_t | valuesize () const |
Returns the hash function's value size in bytes. More... | |
std::size_t | statesize () const |
Returns the size of the state() string in bytes, or zero if state() is not implemented. More... | |
void | add (const std::string &) |
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 | ( | const std::string & | s | ) |
std::size_t GSsl::Digester::blocksize | ( | ) | const |
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.
std::size_t GSsl::Digester::statesize | ( | ) | const |
std::string GSsl::Digester::value | ( | ) |
std::size_t GSsl::Digester::valuesize | ( | ) | const |