bytevectorhash.cpp raw

   1  // Copyright (c) 2018-present 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 <util/bytevectorhash.h>
   6  
   7  #include <crypto/siphash.h>
   8  #include <random.h>
   9  
  10  #include <span>
  11  #include <vector>
  12  
  13  ByteVectorHash::ByteVectorHash() :
  14      m_k0(FastRandomContext().rand64()),
  15      m_k1(FastRandomContext().rand64())
  16  {
  17  }
  18  
  19  size_t ByteVectorHash::operator()(const std::vector<unsigned char>& input) const
  20  {
  21      return CSipHasher(m_k0, m_k1).Write(input).Finalize();
  22  }
  23