Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
stenzek
GitHub Repository: stenzek/duckstation
Path: blob/master/src/common/md5_digest.h
4214 views
1
// SPDX-FileCopyrightText: 2019-2024 Connor McLaughlin <[email protected]>
2
// SPDX-License-Identifier: CC-BY-NC-ND-4.0
3
4
#pragma once
5
6
#include "types.h"
7
8
#include <array>
9
#include <span>
10
11
class MD5Digest
12
{
13
public:
14
static constexpr u32 DIGEST_SIZE = 16;
15
16
MD5Digest();
17
18
void Update(const void* pData, u32 cbData);
19
void Update(std::span<const u8> data);
20
void Final(std::span<u8, DIGEST_SIZE> digest);
21
void Reset();
22
23
static std::array<u8, DIGEST_SIZE> HashData(std::span<const u8> data);
24
25
private:
26
u32 buf[4];
27
u32 bits[2];
28
u8 in[64];
29
};
30
31