11 #ifndef CRYPTOPP_SHA3_H 12 #define CRYPTOPP_SHA3_H 35 SHA3(
unsigned int digestSize) : m_digestSize(digestSize) {Restart();}
38 CRYPTOPP_STATIC_CONSTEXPR
const char* StaticAlgorithmName() {
return "SHA3"; }
41 void Update(
const byte *input,
size_t length);
43 void TruncatedFinal(byte *hash,
size_t size);
47 inline unsigned int r()
const {
return 200 - 2 * m_digestSize;}
50 unsigned int m_digestSize, m_counter;
56 template<
unsigned int T_DigestSize>
60 CRYPTOPP_CONSTANT(DIGESTSIZE = T_DigestSize)
61 CRYPTOPP_CONSTANT(BLOCKSIZE = 200 - 2 * DIGESTSIZE)
65 static std::string StaticAlgorithmName() {
return "SHA3-" +
IntToString(DIGESTSIZE * 8); }
66 unsigned int BlockSize()
const {
return BLOCKSIZE; }
68 #if !defined(__BORLANDC__) SHA3 message digest base class.
SHA3 message digest template.
Abstract base classes that provide a uniform interface to this library.
std::string AlgorithmName() const
Provides the name of this algorithm.
SHA3(unsigned int digestSize)
Construct a SHA3.
Classes and functions for secure memory allocations.
unsigned int OptimalDataAlignment() const
Provides input and output data alignment for optimal performance.
#define CRYPTOPP_COMPILE_ASSERT(expr)
Compile time assertion.
unsigned int DigestSize() const
Provides the digest size of the hash.
std::string IntToString(T value, unsigned int base=10)
Converts a value to a string.
unsigned int BlockSize() const
Provides the block size of the compression function.
Crypto++ library namespace.