Bitcoin ABC 0.30.5
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>
8
10 : m_k0(GetRand<uint64_t>()), m_k1(GetRand<uint64_t>()) {}
11
12size_t ByteVectorHash::operator()(const std::vector<uint8_t> &input) const {
13 return CSipHasher(m_k0, m_k1).Write(input.data(), input.size()).Finalize();
14}
size_t operator()(const std::vector< uint8_t > &input) const
SipHash-2-4.
Definition: siphash.h:13
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition: siphash.cpp:82
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data.
Definition: siphash.cpp:36
T GetRand(T nMax=std::numeric_limits< T >::max()) noexcept
Generate a uniform random integer of type T in the range [0..nMax) nMax defaults to std::numeric_limi...
Definition: random.h:85