// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin // SPDX-License-Identifier: CC-BY-NC-ND-4.0 #pragma once #include "types.h" #include #include #include class SHA1Digest { public: enum : u32 { DIGEST_SIZE = 20 }; SHA1Digest(); void Update(const void* data, size_t len); void Update(std::span data); void Final(u8 digest[DIGEST_SIZE]); void Reset(); static std::string DigestToString(const std::span digest); static std::array GetDigest(const void* data, size_t len); static std::array GetDigest(std::span data); private: u32 state[5]; u32 count[2]; u8 buffer[64]; };