Bitcoin ABC  0.24.7
P2P Digital Currency
bytevectorhash.cpp
Go to the documentation of this file.
1 // Copyright (c) 2018 The Bitcoin Core developers
2 // Distributed under the MIT software license, see the accompanying
3 // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 
5 #include <crypto/siphash.h>
6 #include <random.h>
7 #include <util/bytevectorhash.h>
8 
10  GetRandBytes(reinterpret_cast<uint8_t *>(&m_k0), sizeof(m_k0));
11  GetRandBytes(reinterpret_cast<uint8_t *>(&m_k1), sizeof(m_k1));
12 }
13 
14 size_t ByteVectorHash::operator()(const std::vector<uint8_t> &input) const {
15  return CSipHasher(m_k0, m_k1).Write(input.data(), input.size()).Finalize();
16 }
ByteVectorHash::m_k1
uint64_t m_k1
Definition: bytevectorhash.h:19
ByteVectorHash::ByteVectorHash
ByteVectorHash()
Definition: bytevectorhash.cpp:9
GetRandBytes
void GetRandBytes(uint8_t *buf, int num) noexcept
Overall design of the RNG and entropy sources.
Definition: random.cpp:634
CSipHasher
SipHash-2-4.
Definition: siphash.h:13
siphash.h
random.h
CSipHasher::Finalize
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition: siphash.cpp:82
ByteVectorHash::operator()
size_t operator()(const std::vector< uint8_t > &input) const
Definition: bytevectorhash.cpp:14
bytevectorhash.h
ByteVectorHash::m_k0
uint64_t m_k0
Definition: bytevectorhash.h:19
CSipHasher::Write
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data.
Definition: siphash.cpp:36