Add generic SaltedSipHasher

SaltedSipHasher is a generic hasher that can be used with most things we
would hash in an unordered container.
This commit is contained in:
Andrew Chow
2019-09-17 19:29:59 -04:00
parent 95e61c1cf2
commit 210b693db6
2 changed files with 19 additions and 0 deletions

View File

@@ -10,3 +10,10 @@
SaltedTxidHasher::SaltedTxidHasher() : k0(GetRand(std::numeric_limits<uint64_t>::max())), k1(GetRand(std::numeric_limits<uint64_t>::max())) {}
SaltedOutpointHasher::SaltedOutpointHasher() : k0(GetRand(std::numeric_limits<uint64_t>::max())), k1(GetRand(std::numeric_limits<uint64_t>::max())) {}
SaltedSipHasher::SaltedSipHasher() : m_k0(GetRand(std::numeric_limits<uint64_t>::max())), m_k1(GetRand(std::numeric_limits<uint64_t>::max())) {}
size_t SaltedSipHasher::operator()(const Span<const unsigned char>& script) const
{
return CSipHasher(m_k0, m_k1).Write(script.data(), script.size()).Finalize();
}