AchievementApprovedHash: Automatically generate hash using CMake

This commit is contained in:
Joshua Vandaële
2026-07-27 07:09:11 +02:00
parent d742aa8b4c
commit 55c015e6ac
7 changed files with 56 additions and 22 deletions
-4
View File
@@ -394,8 +394,4 @@ std::string DigestToString(const Digest& digest)
return fmt::format("{:02X}", fmt::join(digest, ""));
}
std::string DigestToSource(const Digest& digest)
{
return fmt::format("{{0x{:02X}}}", fmt::join(digest, ", 0x"));
}
} // namespace Common::SHA1
+26 -1
View File
@@ -58,5 +58,30 @@ inline Digest CalculateDigest(const std::array<T, Size>& msg)
}
std::string DigestToString(const Digest& digest);
std::string DigestToSource(const Digest& digest);
constexpr Digest StringToDigest(std::string_view str)
{
Digest digest{};
ASSERT(str.size() == digest.size() * 2);
for (size_t i = 0; i < str.size(); ++i)
{
const char c = str[i];
u8 quartet;
if (c >= '0' && c <= '9')
quartet = c - '0';
else if (c >= 'A' && c <= 'F')
quartet = c - 'A' + 10;
else if (c >= 'a' && c <= 'f')
quartet = c - 'a' + 10;
else
ASSERT(false);
if (i % 2 == 0)
digest[i / 2] = quartet << 4;
else
digest[i / 2] |= quartet;
}
return digest;
}
} // namespace Common::SHA1