Bitcoin Core 28.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
hasher.cpp
Go to the documentation of this file.
1// Copyright (c) 2019-2022 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 <span.h>
8#include <util/hasher.h>
9
13
15 k0{deterministic ? 0x8e819f2607a18de6 : FastRandomContext().rand64()},
16 k1{deterministic ? 0xf4020d2e3983b0eb : FastRandomContext().rand64()}
17{}
18
20 m_k0{FastRandomContext().rand64()},
21 m_k1{FastRandomContext().rand64()} {}
22
SipHash-2-4.
Definition siphash.h:15
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition siphash.cpp:77
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data It is treated as if this was the little-endian interpretation of ...
Definition siphash.cpp:28
Fast randomness source.
Definition random.h:377
SaltedOutpointHasher(bool deterministic=false)
Definition hasher.cpp:14
size_t operator()(const Span< const unsigned char > &script) const
Definition hasher.cpp:23
const uint64_t m_k0
Salt.
Definition hasher.h:93
const uint64_t m_k1
Definition hasher.h:93
A Span is an object that can refer to a contiguous sequence of objects.
Definition span.h:98