Introduce a distinct class name for the MD5 Hasher
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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');
|
||||||
|
|||||||
Reference in New Issue
Block a user