Bitcoin ABC 0.32.5
P2P Digital Currency
hasher.cpp
Go to the documentation of this file.
1// Copyright (c) 2019 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 <random.h>
6#include <util/hasher.h>
7
8#include <limits>
9
11 : k0{FastRandomContext().rand64()}, k1{FastRandomContext().rand64()} {}
12
14 : k0{deterministic ? 0x8e819f2607a18de6 : FastRandomContext().rand64()},
15 k1{deterministic ? 0xf4020d2e3983b0eb : FastRandomContext().rand64()} {}
16
18 : m_k0{FastRandomContext().rand64()}, m_k1{FastRandomContext().rand64()} {}
19
21 return CSipHasher(m_k0, m_k1).Write(script).Finalize();
22}
SipHash-2-4.
Definition: siphash.h:14
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition: siphash.cpp:83
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data.
Definition: siphash.cpp:36
Fast randomness source.
Definition: random.h:411
SaltedOutpointHasher(bool deterministic=false)
Definition: hasher.cpp:13
size_t operator()(const Span< const uint8_t > &script) const
Definition: hasher.cpp:20
const uint64_t m_k0
Salt.
Definition: hasher.h:107
const uint64_t m_k1
Definition: hasher.h:107