1
0
mirror of https://github.com/doitsujin/dxvk.git synced 2025-02-13 07:54:32 +01:00
dxvk/src/util/sha1/sha1_util.h

45 lines
889 B
C
Raw Normal View History

#pragma once
#include <array>
#include <cstring>
#include <string>
namespace dxvk {
using Sha1Digest = std::array<uint8_t, 20>;
class Sha1Hash {
public:
Sha1Hash() { }
Sha1Hash(const Sha1Digest& digest)
: m_digest(digest) { }
std::string toString() const;
uint32_t dword(uint32_t id) const {
return uint32_t(m_digest[4 + id + 0]) << 0
| uint32_t(m_digest[4 + id + 1]) << 8
| uint32_t(m_digest[4 + id + 2]) << 16
| uint32_t(m_digest[4 + id + 3]) << 24;
}
bool operator == (const Sha1Hash& other) const {
return !std::memcmp(
this->m_digest.data(),
other.m_digest.data(),
other.m_digest.size());
}
static Sha1Hash compute(
const uint8_t* data,
size_t size);
private:
Sha1Digest m_digest;
};
}