// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin // SPDX-License-Identifier: CC-BY-NC-ND-4.0 #pragma once #include "types.h" #include #include class MD5Digest { public: static constexpr u32 DIGEST_SIZE = 16; MD5Digest(); void Update(const void* pData, u32 cbData); void Update(std::span data); void Final(std::span digest); void Reset(); static std::array HashData(std::span data); private: u32 buf[4]; u32 bits[2]; u8 in[64]; };