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 |