Line data Source code
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 : 9 8902 : ByteVectorHash::ByteVectorHash() 10 4451 : { 11 4451 : GetRandBytes(reinterpret_cast<unsigned char*>(&m_k0), sizeof(m_k0)); 12 4451 : GetRandBytes(reinterpret_cast<unsigned char*>(&m_k1), sizeof(m_k1)); 13 8902 : } 14 : 15 29278 : size_t ByteVectorHash::operator()(const std::vector<unsigned char>& input) const 16 : { 17 29278 : return CSipHasher(m_k0, m_k1).Write(input.data(), input.size()).Finalize(); 18 : }