Coverage Report

Created: 2024-11-21 07:03

/src/cryptopp/hmac.h
Line
Count
Source (jump to first uncovered line)
1
// hmac.h - originally written and placed in the public domain by Wei Dai
2
3
/// \file hmac.h
4
/// \brief Classes for HMAC message authentication codes
5
6
#ifndef CRYPTOPP_HMAC_H
7
#define CRYPTOPP_HMAC_H
8
9
#include "seckey.h"
10
#include "secblock.h"
11
12
NAMESPACE_BEGIN(CryptoPP)
13
14
/// \brief HMAC information
15
/// \details HMAC_Base derives from VariableKeyLength and MessageAuthenticationCode
16
/// \since Crypto++ 2.1
17
class CRYPTOPP_DLL CRYPTOPP_NO_VTABLE HMAC_Base : public VariableKeyLength<16, 0, INT_MAX>, public MessageAuthenticationCode
18
{
19
public:
20
4.53k
  virtual ~HMAC_Base() {}
21
22
  /// \brief Construct a HMAC_Base
23
4.53k
  HMAC_Base() : m_innerHashKeyed(false) {}
24
  void UncheckedSetKey(const byte *userKey, unsigned int keylength, const NameValuePairs &params);
25
26
  void Restart();
27
  void Update(const byte *input, size_t length);
28
  void TruncatedFinal(byte *mac, size_t size);
29
0
  unsigned int OptimalBlockSize() const {return const_cast<HMAC_Base*>(this)->AccessHash().OptimalBlockSize();}
30
349k
  unsigned int DigestSize() const {return const_cast<HMAC_Base*>(this)->AccessHash().DigestSize();}
31
32
protected:
33
  virtual HashTransformation & AccessHash() =0;
34
1.18M
  byte * AccessIpad() {return m_buf;}
35
674k
  byte * AccessOpad() {return m_buf + AccessHash().BlockSize();}
36
344k
  byte * AccessInnerHash() {return m_buf + 2*AccessHash().BlockSize();}
37
38
private:
39
  void KeyInnerHash();
40
41
  SecByteBlock m_buf;
42
  bool m_innerHashKeyed;
43
};
44
45
/// \brief HMAC
46
/// \tparam T HashTransformation derived class
47
/// \details HMAC derives from MessageAuthenticationCodeImpl. It calculates the HMAC using
48
///   <tt>HMAC(K, text) = H(K XOR opad, H(K XOR ipad, text))</tt>.
49
/// \sa <a href="http://www.weidai.com/scan-mirror/mac.html#HMAC">HMAC</a>
50
/// \since Crypto++ 2.1
51
template <class T>
52
class HMAC : public MessageAuthenticationCodeImpl<HMAC_Base, HMAC<T> >
53
{
54
public:
55
  CRYPTOPP_CONSTANT(DIGESTSIZE=T::DIGESTSIZE);
56
  CRYPTOPP_CONSTANT(BLOCKSIZE=T::BLOCKSIZE);
57
58
4.53k
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA1>::~HMAC()
Line
Count
Source
58
218
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA224>::~HMAC()
Line
Count
Source
58
203
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA384>::~HMAC()
Line
Count
Source
58
210
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA512>::~HMAC()
Line
Count
Source
58
241
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHAKE128>::~HMAC()
Line
Count
Source
58
123
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHAKE256>::~HMAC()
Line
Count
Source
58
127
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD128>::~HMAC()
Line
Count
Source
58
127
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD160>::~HMAC()
Line
Count
Source
58
147
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD256>::~HMAC()
Line
Count
Source
58
101
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD320>::~HMAC()
Line
Count
Source
58
110
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Whirlpool>::~HMAC()
Line
Count
Source
58
188
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD2>::~HMAC()
Line
Count
Source
58
105
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD4>::~HMAC()
Line
Count
Source
58
202
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD5>::~HMAC()
Line
Count
Source
58
134
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SM3>::~HMAC()
Line
Count
Source
58
147
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::BLAKE2b>::~HMAC()
Line
Count
Source
58
150
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::BLAKE2s>::~HMAC()
Line
Count
Source
58
154
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Tiger>::~HMAC()
Line
Count
Source
58
105
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::~HMAC()
Line
Count
Source
58
79
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::~HMAC()
Line
Count
Source
58
121
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::~HMAC()
Line
Count
Source
58
99
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::~HMAC()
Line
Count
Source
58
171
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH224>::~HMAC()
Line
Count
Source
58
86
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH256>::~HMAC()
Line
Count
Source
58
88
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH384>::~HMAC()
Line
Count
Source
58
85
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH512>::~HMAC()
Line
Count
Source
58
80
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH512_256>::~HMAC()
Line
Count
Source
58
78
  virtual ~HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA256>::~HMAC()
Line
Count
Source
58
858
  virtual ~HMAC() {}
59
60
  /// \brief Construct a HMAC
61
769
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA1>::HMAC()
Line
Count
Source
61
47
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA224>::HMAC()
Line
Count
Source
61
22
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA384>::HMAC()
Line
Count
Source
61
33
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHA512>::HMAC()
Line
Count
Source
61
53
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHAKE128>::HMAC()
Line
Count
Source
61
41
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SHAKE256>::HMAC()
Line
Count
Source
61
49
  HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD128>::HMAC()
Line
Count
Source
61
14
  HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD160>::HMAC()
Line
Count
Source
61
24
  HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD256>::HMAC()
Line
Count
Source
61
22
  HMAC() {}
CryptoPP::HMAC<CryptoPP::RIPEMD320>::HMAC()
Line
Count
Source
61
30
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Whirlpool>::HMAC()
Line
Count
Source
61
61
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD2>::HMAC()
Line
Count
Source
61
15
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD4>::HMAC()
Line
Count
Source
61
20
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Weak1::MD5>::HMAC()
Line
Count
Source
61
15
  HMAC() {}
CryptoPP::HMAC<CryptoPP::SM3>::HMAC()
Line
Count
Source
61
30
  HMAC() {}
CryptoPP::HMAC<CryptoPP::BLAKE2b>::HMAC()
Line
Count
Source
61
25
  HMAC() {}
CryptoPP::HMAC<CryptoPP::BLAKE2s>::HMAC()
Line
Count
Source
61
52
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Tiger>::HMAC()
Line
Count
Source
61
15
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::HMAC()
Line
Count
Source
61
13
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::HMAC()
Line
Count
Source
61
14
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::HMAC()
Line
Count
Source
61
26
  HMAC() {}
CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::HMAC()
Line
Count
Source
61
68
  HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH224>::HMAC()
Line
Count
Source
61
15
  HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH256>::HMAC()
Line
Count
Source
61
17
  HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH384>::HMAC()
Line
Count
Source
61
19
  HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH512>::HMAC()
Line
Count
Source
61
18
  HMAC() {}
CryptoPP::HMAC<CryptoPP::LSH512_256>::HMAC()
Line
Count
Source
61
11
  HMAC() {}
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA256>::HMAC()
62
  /// \brief Construct a HMAC
63
  /// \param key the HMAC key
64
  /// \param length the size of the HMAC key
65
  HMAC(const byte *key, size_t length=HMAC_Base::DEFAULT_KEYLENGTH)
66
3.76k
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHA1>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
171
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHA224>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
181
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHA384>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
177
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHA512>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
188
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHAKE128>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
82
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHAKE256>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
78
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::RIPEMD128>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
113
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::RIPEMD160>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
123
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::RIPEMD256>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
79
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::RIPEMD320>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
80
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Whirlpool>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
127
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Weak1::MD2>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
90
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Weak1::MD4>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
182
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Weak1::MD5>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
119
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SM3>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
117
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::BLAKE2b>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
125
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::BLAKE2s>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
102
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Tiger>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
90
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
66
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
107
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
73
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
103
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::LSH224>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
71
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::LSH256>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
71
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::LSH384>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
66
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::LSH512>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
62
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::LSH512_256>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
67
    {this->SetKey(key, length);}
CryptoPP::HMAC<CryptoPP::SHA256>::HMAC(unsigned char const*, unsigned long)
Line
Count
Source
66
858
    {this->SetKey(key, length);}
67
68
0
  static std::string StaticAlgorithmName() {return std::string("HMAC(") + T::StaticAlgorithmName() + ")";}
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA1>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA224>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA384>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA512>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE128>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE256>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD128>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD160>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD256>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD320>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Whirlpool>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD2>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD4>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD5>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SM3>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2b>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2s>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Tiger>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH224>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH256>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH384>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512_256>::StaticAlgorithmName()
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA256>::StaticAlgorithmName()
69
0
  std::string AlgorithmName() const {return std::string("HMAC(") + m_hash.AlgorithmName() + ")";}
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA1>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA224>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA384>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA512>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE128>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE256>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD128>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD160>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD256>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD320>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Whirlpool>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD2>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD4>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD5>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SM3>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2b>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2s>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Tiger>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH224>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH256>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH384>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512_256>::AlgorithmName() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA256>::AlgorithmName() const
70
0
  std::string AlgorithmProvider() const {return m_hash.AlgorithmProvider();}
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA1>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA224>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA384>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA512>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE128>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHAKE256>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD128>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD160>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD256>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::RIPEMD320>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Whirlpool>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD2>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD4>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Weak1::MD5>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SM3>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2b>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::BLAKE2s>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Tiger>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH224>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH256>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH384>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::LSH512_256>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::HMAC<CryptoPP::SHA256>::AlgorithmProvider() const
71
72
private:
73
2.54M
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHA1>::AccessHash()
Line
Count
Source
73
153k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHA224>::AccessHash()
Line
Count
Source
73
73.2k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHA384>::AccessHash()
Line
Count
Source
73
91.3k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHA512>::AccessHash()
Line
Count
Source
73
129k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHAKE128>::AccessHash()
Line
Count
Source
73
67.8k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHAKE256>::AccessHash()
Line
Count
Source
73
101k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::RIPEMD128>::AccessHash()
Line
Count
Source
73
88.2k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::RIPEMD160>::AccessHash()
Line
Count
Source
73
80.7k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::RIPEMD256>::AccessHash()
Line
Count
Source
73
54.3k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::RIPEMD320>::AccessHash()
Line
Count
Source
73
48.0k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Whirlpool>::AccessHash()
Line
Count
Source
73
107k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Weak1::MD2>::AccessHash()
Line
Count
Source
73
56.7k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Weak1::MD4>::AccessHash()
Line
Count
Source
73
106k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Weak1::MD5>::AccessHash()
Line
Count
Source
73
70.3k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SM3>::AccessHash()
Line
Count
Source
73
64.6k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::BLAKE2b>::AccessHash()
Line
Count
Source
73
71.8k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::BLAKE2s>::AccessHash()
Line
Count
Source
73
103k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Tiger>::AccessHash()
Line
Count
Source
73
55.4k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Keccak_Final<28u> >::AccessHash()
Line
Count
Source
73
44.6k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Keccak_Final<32u> >::AccessHash()
Line
Count
Source
73
69.4k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Keccak_Final<48u> >::AccessHash()
Line
Count
Source
73
62.3k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::Keccak_Final<64u> >::AccessHash()
Line
Count
Source
73
125k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::LSH224>::AccessHash()
Line
Count
Source
73
50.0k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::LSH256>::AccessHash()
Line
Count
Source
73
46.6k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::LSH384>::AccessHash()
Line
Count
Source
73
65.3k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::LSH512>::AccessHash()
Line
Count
Source
73
58.0k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::LSH512_256>::AccessHash()
Line
Count
Source
73
49.1k
  HashTransformation & AccessHash() {return m_hash;}
CryptoPP::HMAC<CryptoPP::SHA256>::AccessHash()
Line
Count
Source
73
444k
  HashTransformation & AccessHash() {return m_hash;}
74
75
  T m_hash;
76
};
77
78
NAMESPACE_END
79
80
#endif