Introduce a distinct class name for the MD4 Hasher

This commit is contained in:
hashlag
2025-08-09 16:55:01 +03:00
parent cebb9cca51
commit c4ddd78d59
2 changed files with 14 additions and 14 deletions

View File

@@ -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)

View File

@@ -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');