aboutsummaryrefslogtreecommitdiff
path: root/zencore/md5.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'zencore/md5.cpp')
-rw-r--r--zencore/md5.cpp25
1 files changed, 19 insertions, 6 deletions
diff --git a/zencore/md5.cpp b/zencore/md5.cpp
index 237f6cfdd..a5a5ea41d 100644
--- a/zencore/md5.cpp
+++ b/zencore/md5.cpp
@@ -6,11 +6,7 @@
#include <zencore/zencore.h>
#include <string.h>
-
-// big endian architectures need #define __BYTE_ORDER __BIG_ENDIAN
-#ifndef _MSC_VER
-# include <endian.h>
-#endif
+#include <string_view>
/*
**********************************************************************
@@ -401,7 +397,7 @@ MD5::FromHexString(const char* string)
}
const char*
-MD5::ToHexString(char* outString /* 40 characters + NUL terminator */) const
+MD5::ToHexString(char* outString /* 32 characters + NUL terminator */) const
{
ToHexBytes(Hash, sizeof(MD5), outString);
outString[2 * sizeof(MD5)] = '\0';
@@ -443,6 +439,23 @@ toString(const MD5& value)
TEST_CASE("MD5")
{
+ using namespace std::literals;
+
+ auto Input = "jumblesmcgee"sv;
+ auto Output = "28f2200a59c60b75947099d750c2cc50"sv;
+
+ MD5Stream Stream;
+ Stream.Append(Input.data(), Input.length());
+ MD5 Result = Stream.GetHash();
+
+ MD5::String_t Buffer;
+ Result.ToHexString(Buffer);
+
+ CHECK(Output.compare(Buffer));
+
+ MD5 Reresult = MD5::FromHexString(Buffer);
+ Reresult.ToHexString(Buffer);
+ CHECK(Output.compare(Buffer));
}
#endif