Coverage Report

Created: 2024-11-21 07:03

/src/cryptopp/iterhash.h
Line
Count
Source (jump to first uncovered line)
1
// iterhash.h - originally written and placed in the public domain by Wei Dai
2
3
/// \file iterhash.h
4
/// \brief Base classes for iterated hashes
5
6
#ifndef CRYPTOPP_ITERHASH_H
7
#define CRYPTOPP_ITERHASH_H
8
9
#include "cryptlib.h"
10
#include "secblock.h"
11
#include "misc.h"
12
#include "simple.h"
13
14
#if CRYPTOPP_MSC_VERSION
15
# pragma warning(push)
16
# pragma warning(disable: 4231 4275)
17
# if (CRYPTOPP_MSC_VERSION >= 1400)
18
#  pragma warning(disable: 6011 6386 28193)
19
# endif
20
#endif
21
22
NAMESPACE_BEGIN(CryptoPP)
23
24
/// \brief Exception thrown when trying to hash more data than is allowed by a hash function
25
class CRYPTOPP_DLL HashInputTooLong : public InvalidDataFormat
26
{
27
public:
28
  explicit HashInputTooLong(const std::string &alg)
29
0
    : InvalidDataFormat("IteratedHashBase: input data exceeds maximum allowed by hash function " + alg) {}
30
};
31
32
/// \brief Iterated hash base class
33
/// \tparam T Hash word type
34
/// \tparam BASE HashTransformation derived class
35
/// \details IteratedHashBase provides an interface for block-based iterated hashes
36
/// \sa HashTransformation, MessageAuthenticationCode
37
template <class T, class BASE>
38
class CRYPTOPP_NO_VTABLE IteratedHashBase : public BASE
39
{
40
public:
41
  typedef T HashWordType;
42
43
0
  virtual ~IteratedHashBase() {}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::~IteratedHashBase()
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::~IteratedHashBase()
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::~IteratedHashBase()
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::~IteratedHashBase()
44
45
  /// \brief Construct an IteratedHashBase
46
4.83k
  IteratedHashBase() : m_countLo(0), m_countHi(0) {}
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::IteratedHashBase()
Line
Count
Source
46
3.49k
  IteratedHashBase() : m_countLo(0), m_countHi(0) {}
CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::IteratedHashBase()
Line
Count
Source
46
1.33k
  IteratedHashBase() : m_countLo(0), m_countHi(0) {}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::IteratedHashBase()
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::IteratedHashBase()
47
48
  /// \brief Provides the input block size most efficient for this cipher.
49
  /// \return The input block size that is most efficient for the cipher
50
  /// \details The base class implementation returns MandatoryBlockSize().
51
  /// \note Optimal input length is
52
  ///   <tt>n * OptimalBlockSize() - GetOptimalBlockSizeUsed()</tt> for any <tt>n \> 0</tt>.
53
0
  unsigned int OptimalBlockSize() const {return this->BlockSize();}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalBlockSize() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::OptimalBlockSize() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::OptimalBlockSize() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::OptimalBlockSize() const
54
55
  /// \brief Provides input and output data alignment for optimal performance.
56
  /// \return the input data alignment that provides optimal performance
57
  /// \details OptimalDataAlignment returns the natural alignment of the hash word.
58
0
  unsigned int OptimalDataAlignment() const {return GetAlignmentOf<T>();}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::OptimalDataAlignment() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::OptimalDataAlignment() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::OptimalDataAlignment() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::OptimalDataAlignment() const
59
60
  /// \brief Updates a hash with additional input
61
  /// \param input the additional input as a buffer
62
  /// \param length the size of the buffer, in bytes
63
  void Update(const byte *input, size_t length);
64
65
  /// \brief Requests space which can be written into by the caller
66
  /// \param size the requested size of the buffer
67
  /// \details The purpose of this method is to help avoid extra memory allocations.
68
  /// \details size is an \a IN and \a OUT parameter and used as a hint. When the call is made,
69
  ///   size is the requested size of the buffer. When the call returns, size is the size of
70
  ///   the array returned to the caller.
71
  /// \details The base class implementation sets  size to 0 and returns  NULL.
72
  /// \note Some objects, like ArraySink, cannot create a space because its fixed.
73
  byte * CreateUpdateSpace(size_t &size);
74
75
  /// \brief Restart the hash
76
  /// \details Discards the current state, and restart for a new message
77
  void Restart();
78
79
  /// \brief Computes the hash of the current message
80
  /// \param digest a pointer to the buffer to receive the hash
81
  /// \param digestSize the size of the truncated digest, in bytes
82
  /// \details TruncatedFinal() calls Final() and then copies digestSize bytes to digest.
83
  ///   The hash is restarted the hash for the next message.
84
  void TruncatedFinal(byte *digest, size_t digestSize);
85
86
  /// \brief Retrieve the provider of this algorithm
87
  /// \return the algorithm provider
88
  /// \details The algorithm provider can be a name like "C++", "SSE", "NEON", "AESNI",
89
  ///    "ARMv8" and "Power8". C++ is standard C++ code. Other labels, like SSE,
90
  ///    usually indicate a specialized implementation using instructions from a higher
91
  ///    instruction set architecture (ISA). Future labels may include external hardware
92
  ///    like a hardware security module (HSM).
93
  /// \note  Provider is not universally implemented yet.
94
0
  virtual std::string AlgorithmProvider() const { return "C++"; }
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::AlgorithmProvider() const
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::AlgorithmProvider() const
95
96
protected:
97
  inline T GetBitCountHi() const
98
248k
    {return (m_countLo >> (8*sizeof(T)-3)) + (m_countHi << 3);}
CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::GetBitCountHi() const
Line
Count
Source
98
45.2k
    {return (m_countLo >> (8*sizeof(T)-3)) + (m_countHi << 3);}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::GetBitCountHi() const
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::GetBitCountHi() const
Line
Count
Source
98
203k
    {return (m_countLo >> (8*sizeof(T)-3)) + (m_countHi << 3);}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::GetBitCountHi() const
99
  inline T GetBitCountLo() const
100
258k
    {return m_countLo << 3;}
CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::GetBitCountLo() const
Line
Count
Source
100
55.7k
    {return m_countLo << 3;}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::GetBitCountLo() const
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::GetBitCountLo() const
Line
Count
Source
100
203k
    {return m_countLo << 3;}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::GetBitCountLo() const
101
102
  void PadLastBlock(unsigned int lastBlockSize, byte padFirst=0x80);
103
  virtual void Init() =0;
104
105
  virtual ByteOrder GetByteOrder() const =0;
106
  virtual void HashEndianCorrectedBlock(const HashWordType *data) =0;
107
  virtual size_t HashMultipleBlocks(const T *input, size_t length);
108
  void HashBlock(const HashWordType *input)
109
285k
    {HashMultipleBlocks(input, this->BlockSize());}
CryptoPP::IteratedHashBase<unsigned long, CryptoPP::HashTransformation>::HashBlock(unsigned long const*)
Line
Count
Source
109
45.0k
    {HashMultipleBlocks(input, this->BlockSize());}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned long, CryptoPP::MessageAuthenticationCode>::HashBlock(unsigned long const*)
CryptoPP::IteratedHashBase<unsigned int, CryptoPP::HashTransformation>::HashBlock(unsigned int const*)
Line
Count
Source
109
240k
    {HashMultipleBlocks(input, this->BlockSize());}
Unexecuted instantiation: CryptoPP::IteratedHashBase<unsigned int, CryptoPP::MessageAuthenticationCode>::HashBlock(unsigned int const*)
110
111
  virtual T* DataBuf() =0;
112
  virtual T* StateBuf() =0;
113
114
private:
115
  T m_countLo, m_countHi;
116
};
117
118
/// \brief Iterated hash base class
119
/// \tparam T_HashWordType Hash word type
120
/// \tparam T_Endianness Endianness type of hash
121
/// \tparam T_BlockSize Block size of the hash
122
/// \tparam T_Base HashTransformation derived class
123
/// \details IteratedHash provides a default implementation for block-based iterated hashes
124
/// \sa HashTransformation, MessageAuthenticationCode
125
template <class T_HashWordType, class T_Endianness, unsigned int T_BlockSize, class T_Base = HashTransformation>
126
class CRYPTOPP_NO_VTABLE IteratedHash : public IteratedHashBase<T_HashWordType, T_Base>
127
{
128
public:
129
  typedef T_Endianness ByteOrderClass;
130
  typedef T_HashWordType HashWordType;
131
132
  CRYPTOPP_CONSTANT(BLOCKSIZE = T_BlockSize);
133
  // BCB2006 workaround: can't use BLOCKSIZE here
134
  CRYPTOPP_COMPILE_ASSERT((T_BlockSize & (T_BlockSize - 1)) == 0);  // blockSize is a power of 2
135
136
4.83k
  virtual ~IteratedHash() {}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::~IteratedHash()
Line
Count
Source
136
1.88k
  virtual ~IteratedHash() {}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, CryptoPP::HashTransformation>::~IteratedHash()
Line
Count
Source
136
757
  virtual ~IteratedHash() {}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::~IteratedHash()
Line
Count
Source
136
1.61k
  virtual ~IteratedHash() {}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::~IteratedHash()
Line
Count
Source
136
358
  virtual ~IteratedHash() {}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::~IteratedHash()
Line
Count
Source
136
222
  virtual ~IteratedHash() {}
137
138
  /// \brief Provides the block size of the hash
139
  /// \return the block size of the hash, in bytes
140
  /// \details BlockSize() returns <tt>T_BlockSize</tt>.
141
2.67M
  unsigned int BlockSize() const {return T_BlockSize;}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::BlockSize() const
Line
Count
Source
141
1.11M
  unsigned int BlockSize() const {return T_BlockSize;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, CryptoPP::HashTransformation>::BlockSize() const
Line
Count
Source
141
380k
  unsigned int BlockSize() const {return T_BlockSize;}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::BlockSize() const
Line
Count
Source
141
936k
  unsigned int BlockSize() const {return T_BlockSize;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::BlockSize() const
Line
Count
Source
141
158k
  unsigned int BlockSize() const {return T_BlockSize;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::BlockSize() const
Line
Count
Source
141
79.4k
  unsigned int BlockSize() const {return T_BlockSize;}
142
143
  /// \brief Provides the byte order of the hash
144
  /// \return the byte order of the hash as an enumeration
145
  /// \details GetByteOrder() returns <tt>T_Endianness::ToEnum()</tt>.
146
  /// \sa ByteOrder()
147
555k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::GetByteOrder() const
Line
Count
Source
147
115k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, CryptoPP::HashTransformation>::GetByteOrder() const
Line
Count
Source
147
102k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::GetByteOrder() const
Line
Count
Source
147
286k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::GetByteOrder() const
Line
Count
Source
147
37.3k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::GetByteOrder() const
Line
Count
Source
147
13.3k
  ByteOrder GetByteOrder() const {return T_Endianness::ToEnum();}
148
149
  /// \brief Adjusts the byte ordering of the hash
150
  /// \param out the output buffer
151
  /// \param in the input buffer
152
  /// \param byteCount the size of the buffers, in bytes
153
  /// \details CorrectEndianess() calls ConditionalByteReverse() using <tt>T_Endianness</tt>.
154
  inline void CorrectEndianess(HashWordType *out, const HashWordType *in, size_t byteCount)
155
54.2k
  {
156
54.2k
    CRYPTOPP_ASSERT(in != NULLPTR);
157
54.2k
    CRYPTOPP_ASSERT(out != NULLPTR);
158
54.2k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(in));
159
54.2k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(out));
160
161
54.2k
    ConditionalByteReverse(T_Endianness::ToEnum(), out, in, byteCount);
162
54.2k
  }
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::CorrectEndianess(unsigned long*, unsigned long const*, unsigned long)
Line
Count
Source
155
21.0k
  {
156
21.0k
    CRYPTOPP_ASSERT(in != NULLPTR);
157
21.0k
    CRYPTOPP_ASSERT(out != NULLPTR);
158
21.0k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(in));
159
21.0k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(out));
160
161
21.0k
    ConditionalByteReverse(T_Endianness::ToEnum(), out, in, byteCount);
162
21.0k
  }
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::CorrectEndianess(unsigned long*, unsigned long const*, unsigned long)
Line
Count
Source
155
33.2k
  {
156
33.2k
    CRYPTOPP_ASSERT(in != NULLPTR);
157
33.2k
    CRYPTOPP_ASSERT(out != NULLPTR);
158
33.2k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(in));
159
33.2k
    CRYPTOPP_ASSERT(IsAligned<T_HashWordType>(out));
160
161
33.2k
    ConditionalByteReverse(T_Endianness::ToEnum(), out, in, byteCount);
162
33.2k
  }
163
164
protected:
165
  enum { Blocks = T_BlockSize/sizeof(T_HashWordType) };
166
1.57M
  T_HashWordType* DataBuf() {return this->m_data;}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::DataBuf()
Line
Count
Source
166
614k
  T_HashWordType* DataBuf() {return this->m_data;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, CryptoPP::HashTransformation>::DataBuf()
Line
Count
Source
166
208k
  T_HashWordType* DataBuf() {return this->m_data;}
CryptoPP::IteratedHash<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::DataBuf()
Line
Count
Source
166
598k
  T_HashWordType* DataBuf() {return this->m_data;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, CryptoPP::HashTransformation>::DataBuf()
Line
Count
Source
166
100k
  T_HashWordType* DataBuf() {return this->m_data;}
CryptoPP::IteratedHash<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, CryptoPP::HashTransformation>::DataBuf()
Line
Count
Source
166
49.6k
  T_HashWordType* DataBuf() {return this->m_data;}
167
  FixedSizeSecBlock<T_HashWordType, Blocks> m_data;
168
};
169
170
/// \brief Iterated hash with a static transformation function
171
/// \tparam T_HashWordType Hash word type
172
/// \tparam T_Endianness Endianness type of hash
173
/// \tparam T_BlockSize Block size of the hash
174
/// \tparam T_StateSize Internal state size of the hash
175
/// \tparam T_Transform HashTransformation derived class
176
/// \tparam T_DigestSize Digest size of the hash
177
/// \tparam T_StateAligned Flag indicating if state is 16-byte aligned
178
/// \sa HashTransformation, MessageAuthenticationCode
179
template <class T_HashWordType, class T_Endianness, unsigned int T_BlockSize, unsigned int T_StateSize, class T_Transform, unsigned int T_DigestSize = 0, bool T_StateAligned = false>
180
class CRYPTOPP_NO_VTABLE IteratedHashWithStaticTransform
181
  : public ClonableImpl<T_Transform, AlgorithmImpl<IteratedHash<T_HashWordType, T_Endianness, T_BlockSize>, T_Transform> >
182
{
183
public:
184
  CRYPTOPP_CONSTANT(DIGESTSIZE = T_DigestSize ? T_DigestSize : T_StateSize);
185
186
4.83k
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
370
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
338
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
323
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
434
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
205
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
350
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
185
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
199
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
358
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
413
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
261
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
286
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
222
  virtual ~IteratedHashWithStaticTransform() {}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::~IteratedHashWithStaticTransform()
Line
Count
Source
186
886
  virtual ~IteratedHashWithStaticTransform() {}
187
188
  /// \brief Provides the digest size of the hash
189
  /// \return the digest size of the hash, in bytes
190
  /// \details DigestSize() returns <tt>DIGESTSIZE</tt>.
191
778k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::DigestSize() const
Line
Count
Source
191
80.3k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::DigestSize() const
Line
Count
Source
191
32.5k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::DigestSize() const
Line
Count
Source
191
34.9k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::DigestSize() const
Line
Count
Source
191
48.5k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::DigestSize() const
Line
Count
Source
191
51.2k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::DigestSize() const
Line
Count
Source
191
45.7k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::DigestSize() const
Line
Count
Source
191
27.6k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::DigestSize() const
Line
Count
Source
191
25.2k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::DigestSize() const
Line
Count
Source
191
65.7k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::DigestSize() const
Line
Count
Source
191
57.3k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::DigestSize() const
Line
Count
Source
191
38.4k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::DigestSize() const
Line
Count
Source
191
34.2k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::DigestSize() const
Line
Count
Source
191
39.8k
  unsigned int DigestSize() const {return DIGESTSIZE;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::DigestSize() const
Line
Count
Source
191
196k
  unsigned int DigestSize() const {return DIGESTSIZE;}
192
193
protected:
194
  // https://github.com/weidai11/cryptopp/issues/147#issuecomment-766231864
195
4.83k
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
370
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::IteratedHashWithStaticTransform()
Line
Count
Source
195
338
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::IteratedHashWithStaticTransform()
Line
Count
Source
195
323
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::IteratedHashWithStaticTransform()
Line
Count
Source
195
434
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
205
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
350
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
185
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
199
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
358
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
413
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
261
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::IteratedHashWithStaticTransform()
Line
Count
Source
195
286
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::IteratedHashWithStaticTransform()
Line
Count
Source
195
222
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::IteratedHashWithStaticTransform()
Line
Count
Source
195
886
  IteratedHashWithStaticTransform() {IteratedHashWithStaticTransform::Init();}
196
5.77M
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::HashEndianCorrectedBlock(unsigned int const*)
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::HashEndianCorrectedBlock(unsigned long const*)
Line
Count
Source
196
281k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::HashEndianCorrectedBlock(unsigned long const*)
Line
Count
Source
196
386k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
759k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
905k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
428k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
437k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::HashEndianCorrectedBlock(unsigned long const*)
Line
Count
Source
196
490k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
862k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::HashEndianCorrectedBlock(unsigned int const*)
Line
Count
Source
196
657k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::HashEndianCorrectedBlock(unsigned int const*)
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::HashEndianCorrectedBlock(unsigned long const*)
Line
Count
Source
196
562k
  void HashEndianCorrectedBlock(const T_HashWordType *data) {T_Transform::Transform(this->m_state, data);}
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::HashEndianCorrectedBlock(unsigned int const*)
197
263k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::Init()
Line
Count
Source
197
27.8k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::Init()
Line
Count
Source
197
11.9k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::Init()
Line
Count
Source
197
12.1k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::Init()
Line
Count
Source
197
17.2k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::Init()
Line
Count
Source
197
18.2k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::Init()
Line
Count
Source
197
16.8k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::Init()
Line
Count
Source
197
9.87k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::Init()
Line
Count
Source
197
8.98k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::Init()
Line
Count
Source
197
16.9k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::Init()
Line
Count
Source
197
21.0k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::Init()
Line
Count
Source
197
14.0k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::Init()
Line
Count
Source
197
12.3k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::Init()
Line
Count
Source
197
10.7k
  void Init() {T_Transform::InitState(this->m_state);}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::Init()
Line
Count
Source
197
65.4k
  void Init() {T_Transform::InitState(this->m_state);}
198
199
  enum { Blocks = T_BlockSize/sizeof(T_HashWordType) };
200
231k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 20u, CryptoPP::SHA1, 0u, false>::StateBuf()
Line
Count
Source
200
27.4k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA224, 28u, true>::StateBuf()
Line
Count
Source
200
11.5k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA384, 48u, true>::StateBuf()
Line
Count
Source
200
11.8k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 128u, 64u, CryptoPP::SHA512, 64u, true>::StateBuf()
Line
Count
Source
200
16.7k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::RIPEMD128, 0u, false>::StateBuf()
Line
Count
Source
200
18.0k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 20u, CryptoPP::RIPEMD160, 0u, false>::StateBuf()
Line
Count
Source
200
16.5k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 32u, CryptoPP::RIPEMD256, 0u, false>::StateBuf()
Line
Count
Source
200
9.68k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 40u, CryptoPP::RIPEMD320, 0u, false>::StateBuf()
Line
Count
Source
200
8.78k
  T_HashWordType* StateBuf() {return this->m_state;}
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 64u, CryptoPP::Whirlpool, 0u, false>::StateBuf()
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD4, 0u, false>::StateBuf()
Line
Count
Source
200
20.6k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 16u, CryptoPP::Weak1::MD5, 0u, false>::StateBuf()
Line
Count
Source
200
13.7k
  T_HashWordType* StateBuf() {return this->m_state;}
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SM3, 32u, true>::StateBuf()
Line
Count
Source
200
12.0k
  T_HashWordType* StateBuf() {return this->m_state;}
Unexecuted instantiation: CryptoPP::IteratedHashWithStaticTransform<unsigned long, CryptoPP::EnumToType<CryptoPP::ByteOrder, 0>, 64u, 24u, CryptoPP::Tiger, 0u, false>::StateBuf()
CryptoPP::IteratedHashWithStaticTransform<unsigned int, CryptoPP::EnumToType<CryptoPP::ByteOrder, 1>, 64u, 32u, CryptoPP::SHA256, 32u, true>::StateBuf()
Line
Count
Source
200
64.6k
  T_HashWordType* StateBuf() {return this->m_state;}
201
  FixedSizeAlignedSecBlock<T_HashWordType, Blocks, T_StateAligned> m_state;
202
};
203
204
#if !defined(__GNUC__) && !defined(__clang__)
205
  CRYPTOPP_DLL_TEMPLATE_CLASS IteratedHashBase<word64, HashTransformation>;
206
  CRYPTOPP_STATIC_TEMPLATE_CLASS IteratedHashBase<word64, MessageAuthenticationCode>;
207
208
  CRYPTOPP_DLL_TEMPLATE_CLASS IteratedHashBase<word32, HashTransformation>;
209
  CRYPTOPP_STATIC_TEMPLATE_CLASS IteratedHashBase<word32, MessageAuthenticationCode>;
210
#endif
211
212
NAMESPACE_END
213
214
#if CRYPTOPP_MSC_VERSION
215
# pragma warning(pop)
216
#endif
217
218
#endif