Introduce a distinct class name for the MD4 Hasher
This commit is contained in:
@@ -126,7 +126,7 @@ private:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Hash
|
struct Md4Hash
|
||||||
{
|
{
|
||||||
std::string ToHexString() const
|
std::string ToHexString() const
|
||||||
{
|
{
|
||||||
@@ -146,10 +146,10 @@ struct Hash
|
|||||||
std::array<uint8_t, 16> RawDigest;
|
std::array<uint8_t, 16> RawDigest;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Hasher
|
class Md4Hasher
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
Hasher()
|
Md4Hasher()
|
||||||
: BlockSize_(0)
|
: BlockSize_(0)
|
||||||
, Word_(0)
|
, Word_(0)
|
||||||
, WordBytesPacked_(0)
|
, WordBytesPacked_(0)
|
||||||
@@ -164,7 +164,7 @@ public:
|
|||||||
MessageSizeBytes_ += UpdateImpl(begin, end);
|
MessageSizeBytes_ += UpdateImpl(begin, end);
|
||||||
}
|
}
|
||||||
|
|
||||||
Hash Finish()
|
Md4Hash Finish()
|
||||||
{
|
{
|
||||||
uint64_t messageSizeBytesMod64 = MessageSizeBytes_ % 64;
|
uint64_t messageSizeBytesMod64 = MessageSizeBytes_ % 64;
|
||||||
|
|
||||||
@@ -204,7 +204,7 @@ public:
|
|||||||
UpdateImpl(encodedMessageSizeBits,
|
UpdateImpl(encodedMessageSizeBits,
|
||||||
encodedMessageSizeBits + std::size(encodedMessageSizeBits));
|
encodedMessageSizeBits + std::size(encodedMessageSizeBits));
|
||||||
|
|
||||||
Hash result;
|
Md4Hash result;
|
||||||
|
|
||||||
int_fast8_t i = 0;
|
int_fast8_t i = 0;
|
||||||
for (int_fast8_t reg = 0; reg < 4; ++reg)
|
for (int_fast8_t reg = 0; reg < 4; ++reg)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
#include "Md4.hpp"
|
#include "Md4.hpp"
|
||||||
|
|
||||||
using namespace Chaos;
|
using namespace Chaos::Md4;
|
||||||
|
|
||||||
TEST(Md4Tests, RFCTest)
|
TEST(Md4Tests, RFCTest)
|
||||||
{
|
{
|
||||||
@@ -10,7 +10,7 @@ TEST(Md4Tests, RFCTest)
|
|||||||
{
|
{
|
||||||
std::string operator()(const char * in) const
|
std::string operator()(const char * in) const
|
||||||
{
|
{
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
hasher.Update(in, in + strlen(in));
|
hasher.Update(in, in + strlen(in));
|
||||||
return hasher.Finish().ToHexString();
|
return hasher.Finish().ToHexString();
|
||||||
}
|
}
|
||||||
@@ -31,7 +31,7 @@ TEST(Md4Tests, PartialUpdateTest)
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
// "a"
|
// "a"
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
{
|
{
|
||||||
const char * in = "a";
|
const char * in = "a";
|
||||||
@@ -48,7 +48,7 @@ TEST(Md4Tests, PartialUpdateTest)
|
|||||||
|
|
||||||
{
|
{
|
||||||
// "abc"
|
// "abc"
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
{
|
{
|
||||||
const char * in = "ab";
|
const char * in = "ab";
|
||||||
@@ -65,7 +65,7 @@ TEST(Md4Tests, PartialUpdateTest)
|
|||||||
|
|
||||||
{
|
{
|
||||||
// "message digest"
|
// "message digest"
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
{
|
{
|
||||||
const char * in = "me";
|
const char * in = "me";
|
||||||
@@ -92,7 +92,7 @@ TEST(Md4Tests, PartialUpdateTest)
|
|||||||
|
|
||||||
{
|
{
|
||||||
// "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
|
// "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
{
|
{
|
||||||
const char * in = "12345678901234567890";
|
const char * in = "12345678901234567890";
|
||||||
@@ -124,7 +124,7 @@ TEST(Md4Tests, LongInputTest)
|
|||||||
{
|
{
|
||||||
std::string operator()(const char * in) const
|
std::string operator()(const char * in) const
|
||||||
{
|
{
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
hasher.Update(in, in + strlen(in));
|
hasher.Update(in, in + strlen(in));
|
||||||
return hasher.Finish().ToHexString();
|
return hasher.Finish().ToHexString();
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ TEST(Md4Tests, LongInputPartialUpdateTest)
|
|||||||
{
|
{
|
||||||
{
|
{
|
||||||
// 2500 zeros ('0').
|
// 2500 zeros ('0').
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
std::string in(750, '0');
|
std::string in(750, '0');
|
||||||
|
|
||||||
@@ -159,7 +159,7 @@ TEST(Md4Tests, LongInputPartialUpdateTest)
|
|||||||
|
|
||||||
{
|
{
|
||||||
// 1000 'a' followed by 1000 'b'.
|
// 1000 'a' followed by 1000 'b'.
|
||||||
Md4::Hasher hasher;
|
Md4Hasher hasher;
|
||||||
|
|
||||||
std::string inA(1000, 'a');
|
std::string inA(1000, 'a');
|
||||||
std::string inB(1000, 'b');
|
std::string inB(1000, 'b');
|
||||||
|
|||||||
Reference in New Issue
Block a user