Introduce a distinct class name for the MD5 Hasher

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

View File

@@ -150,7 +150,7 @@ private:
} }
}; };
struct Hash struct Md5Hash
{ {
std::string ToHexString() const std::string ToHexString() const
{ {
@@ -170,10 +170,10 @@ struct Hash
std::array<uint8_t, 16> RawDigest; std::array<uint8_t, 16> RawDigest;
}; };
class Hasher class Md5Hasher
{ {
public: public:
Hasher() Md5Hasher()
: BlockSize_(0) : BlockSize_(0)
, Word_(0) , Word_(0)
, WordBytesPacked_(0) , WordBytesPacked_(0)
@@ -188,7 +188,7 @@ public:
MessageSizeBytes_ += UpdateImpl(begin, end); MessageSizeBytes_ += UpdateImpl(begin, end);
} }
Hash Finish() Md5Hash Finish()
{ {
uint64_t messageSizeBytesMod64 = MessageSizeBytes_ % 64; uint64_t messageSizeBytesMod64 = MessageSizeBytes_ % 64;
@@ -228,7 +228,7 @@ public:
UpdateImpl(encodedMessageSizeBits, UpdateImpl(encodedMessageSizeBits,
encodedMessageSizeBits + std::size(encodedMessageSizeBits)); encodedMessageSizeBits + std::size(encodedMessageSizeBits));
Hash result; Md5Hash 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 "Md5.hpp" #include "Md5.hpp"
using namespace Chaos; using namespace Chaos::Md5;
TEST(Md5Tests, RFCTest) TEST(Md5Tests, RFCTest)
{ {
@@ -10,7 +10,7 @@ TEST(Md5Tests, RFCTest)
{ {
std::string operator()(const char * in) const std::string operator()(const char * in) const
{ {
Md5::Hasher hasher; Md5Hasher 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(Md5Tests, PartialUpdateTest)
{ {
{ {
// "a" // "a"
Md5::Hasher hasher; Md5Hasher hasher;
{ {
const char * in = "a"; const char * in = "a";
@@ -48,7 +48,7 @@ TEST(Md5Tests, PartialUpdateTest)
{ {
// "abc" // "abc"
Md5::Hasher hasher; Md5Hasher hasher;
{ {
const char * in = "ab"; const char * in = "ab";
@@ -65,7 +65,7 @@ TEST(Md5Tests, PartialUpdateTest)
{ {
// "message digest" // "message digest"
Md5::Hasher hasher; Md5Hasher hasher;
{ {
const char * in = "me"; const char * in = "me";
@@ -92,7 +92,7 @@ TEST(Md5Tests, PartialUpdateTest)
{ {
// "12345678901234567890123456789012345678901234567890123456789012345678901234567890" // "12345678901234567890123456789012345678901234567890123456789012345678901234567890"
Md5::Hasher hasher; Md5Hasher hasher;
{ {
const char * in = "12345678901234567890"; const char * in = "12345678901234567890";
@@ -124,7 +124,7 @@ TEST(Md5Tests, LongInputTest)
{ {
std::string operator()(const char * in) const std::string operator()(const char * in) const
{ {
Md5::Hasher hasher; Md5Hasher 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(Md5Tests, LongInputPartialUpdateTest)
{ {
{ {
// 2500 zeros ('0'). // 2500 zeros ('0').
Md5::Hasher hasher; Md5Hasher hasher;
std::string in(750, '0'); std::string in(750, '0');
@@ -159,7 +159,7 @@ TEST(Md5Tests, LongInputPartialUpdateTest)
{ {
// 1000 'a' followed by 1000 'b'. // 1000 'a' followed by 1000 'b'.
Md5::Hasher hasher; Md5Hasher hasher;
std::string inA(1000, 'a'); std::string inA(1000, 'a');
std::string inB(1000, 'b'); std::string inB(1000, 'b');