12 #ifndef CRYPTOPP_KECCAK_H 13 #define CRYPTOPP_KECCAK_H 50 Keccak(
unsigned int digestSize) : m_digestSize(digestSize) {Restart();}
53 CRYPTOPP_CONSTEXPR
static const char* StaticAlgorithmName() {
return "Keccak"; }
56 void Update(
const byte *input,
size_t length);
58 void TruncatedFinal(byte *hash,
size_t size);
63 inline unsigned int r()
const {
return 200 - 2 * m_digestSize;}
66 unsigned int m_digestSize, m_counter;
73 template<
unsigned int T_DigestSize>
77 CRYPTOPP_CONSTANT(DIGESTSIZE = T_DigestSize)
78 CRYPTOPP_CONSTANT(BLOCKSIZE = 200 - 2 * DIGESTSIZE)
82 static std::string StaticAlgorithmName() {
return "Keccak-" +
IntToString(DIGESTSIZE * 8); }
83 unsigned int BlockSize()
const {
return BLOCKSIZE; }
Abstract base classes that provide a uniform interface to this library.
unsigned int DigestSize() const
Provides the digest size of the hash.
Classes and functions for secure memory allocations.
std::string AlgorithmName() const
Provides the name of this algorithm.
#define CRYPTOPP_COMPILE_ASSERT(expr)
Compile time assertion.
unsigned int OptimalDataAlignment() const
Provides input and output data alignment for optimal performance.
unsigned int BlockSize() const
Provides the block size of the compression function.
Keccak(unsigned int digestSize)
Construct a Keccak.
Keccak message digest base class.
Keccak-X message digest, template for more fine-grained typedefs.
Keccak-384 message digest.
Keccak-512 message digest.
std::string IntToString(T value, unsigned int base=10)
Converts a value to a string.
Keccak-256 message digest.
Crypto++ library namespace.