6 #ifndef CRYPTOPP_HMAC_H 7 #define CRYPTOPP_HMAC_H 24 void UncheckedSetKey(
const byte *userKey,
unsigned int keylength,
const NameValuePairs ¶ms);
27 void Update(
const byte *input,
size_t length);
28 void TruncatedFinal(byte *mac,
size_t size);
34 byte * AccessIpad() {
return m_buf;}
35 byte * AccessOpad() {
return m_buf + AccessHash().
BlockSize();}
36 byte * AccessInnerHash() {
return m_buf + 2*AccessHash().BlockSize();}
42 bool m_innerHashKeyed;
55 CRYPTOPP_CONSTANT(DIGESTSIZE=T::DIGESTSIZE)
56 CRYPTOPP_CONSTANT(BLOCKSIZE=T::BLOCKSIZE)
66 {this->
SetKey(key, length);}
68 static std::string StaticAlgorithmName() {
return std::string(
"HMAC(") + T::StaticAlgorithmName() +
")";}
69 std::string
AlgorithmName()
const {
return std::string(
"HMAC(") + m_hash.AlgorithmName() +
")";}
Interface for message authentication codes.
HMAC_Base()
Construct a HMAC_Base.
virtual void SetKey(const byte *key, size_t length, const NameValuePairs ¶ms=g_nullNameValuePairs)
Sets or reset the key of this object.
unsigned int DigestSize() const
Provides the digest size of the hash.
Classes and functions for secure memory allocations.
Classes and functions for implementing secret key algorithms.
static const int DEFAULT_KEYLENGTH
The default key length used by the algorithm provided as a constant.
HMAC(const byte *key, size_t length=HMAC_Base::DEFAULT_KEYLENGTH)
Construct a HMAC.
Provides a base implementation of Algorithm and SimpleKeyingInterface for message authentication code...
std::string AlgorithmName() const
Provides the name of this algorithm.
unsigned int OptimalBlockSize() const
Provides the input block size most efficient for this hash.
Inherited by keyed algorithms with variable key length.
std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
Crypto++ library namespace.
Interface for retrieving values given their names.