Crypto++
8.6
Free C++ class library of cryptographic schemes
|
Go to the documentation of this file.
6 #ifndef CRYPTOPP_HMAC_H
7 #define CRYPTOPP_HMAC_H
27 void Update(
const byte *input,
size_t length);
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() +
")";}
virtual void SetKey(const byte *key, size_t length, const NameValuePairs ¶ms=g_nullNameValuePairs)
Sets or reset the key of this object.
HMAC_Base()
Construct a HMAC_Base.
void Update(const byte *input, size_t length)
Updates a hash with additional input.
std::string AlgorithmName() const
Provides the name of this algorithm.
Classes and functions for secure memory allocations.
void TruncatedFinal(byte *mac, size_t size)
Computes the hash of the current message.
std::string AlgorithmProvider() const
Retrieve the provider of this algorithm.
Classes and functions for implementing secret key algorithms.
void Restart()
Restart the hash.
unsigned int DigestSize() const
Provides the digest size of the hash.
Provides a base implementation of Algorithm and SimpleKeyingInterface for message authentication code...
Crypto++ library namespace.
void UncheckedSetKey(const byte *userKey, unsigned int keylength, const NameValuePairs ¶ms)
Sets the key for this object without performing parameter validation.
static const int DEFAULT_KEYLENGTH
The default key length used by the algorithm provided as a constant.
unsigned int OptimalBlockSize() const
Provides the input block size most efficient for this hash.
Interface for message authentication codes.
HMAC(const byte *key, size_t length=HMAC_Base::DEFAULT_KEYLENGTH)
Construct a HMAC.
Interface for retrieving values given their names.
Inherited by keyed algorithms with variable key length.