14 #define HashWordPtr(x) ((HashWordType*)(void*)(x))
15 #define ConstHashWordPtr(x) ((const HashWordType*)(const void*)(x))
24 static std::string StaticAlgorithmName() {
return std::string(
"MDC/")+B::StaticAlgorithmName();}
37 typedef typename H::HashWordType HashWordType;
40 void UncheckedSetKey(
const byte *userKey,
unsigned int length,
const NameValuePairs ¶ms)
42 CRYPTOPP_UNUSED(params);
43 this->AssertValidKeyLength(length);
47 void ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock,
byte *outBlock)
const
50 H::Transform(Buffer(),
Key());
63 bool IsPermutation()
const {
return false;}
65 unsigned int OptimalDataAlignment()
const {
return sizeof(HashWordType);}
68 HashWordType *
Key() {
return HashWordPtr(m_key.data());}
69 const HashWordType *
Key()
const {
return ConstHashWordPtr(m_key.data());}
70 HashWordType *Buffer()
const {
return HashWordPtr(m_buffer.data());}