Bitcoin Core
31.0.0
P2P Digital Currency
src
util
hasher.cpp
Go to the documentation of this file.
1
// Copyright (c) 2019-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 <
crypto/siphash.h
>
6
#include <random.h>
7
#include <
span.h
>
8
#include <
util/hasher.h
>
9
10
SaltedUint256Hasher::SaltedUint256Hasher
() : m_hasher{
11
FastRandomContext
().
rand64
(),
12
FastRandomContext
().
rand64
()}
13
{}
14
15
SaltedTxidHasher::SaltedTxidHasher
() : m_hasher{
16
FastRandomContext
().
rand64
(),
17
FastRandomContext
().
rand64
()}
18
{}
19
20
SaltedWtxidHasher::SaltedWtxidHasher
() : m_hasher{
21
FastRandomContext
().
rand64
(),
22
FastRandomContext
().
rand64
()}
23
{}
24
25
SaltedOutpointHasher::SaltedOutpointHasher
(
bool
deterministic) : m_hasher{
26
deterministic ? 0x8e819f2607a18de6 :
FastRandomContext
().
rand64
(),
27
deterministic ? 0xf4020d2e3983b0eb :
FastRandomContext
().
rand64
()}
28
{}
29
30
SaltedSipHasher::SaltedSipHasher
() :
31
m_k0{
FastRandomContext
().
rand64
()},
32
m_k1{
FastRandomContext
().
rand64
()}
33
{}
34
35
size_t
SaltedSipHasher::operator()
(
const
std::span<const unsigned char>&
script
)
const
36
{
37
return
CSipHasher
(
m_k0
,
m_k1
).
Write
(
script
).
Finalize
();
38
}
SaltedWtxidHasher::SaltedWtxidHasher
SaltedWtxidHasher()
Definition:
hasher.cpp:20
CSipHasher::Write
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data.
Definition:
siphash.cpp:24
span.h
siphash.h
SaltedSipHasher::m_k0
const uint64_t m_k0
Salt.
Definition:
hasher.h:112
FastRandomContext
Fast randomness source.
Definition:
random.h:385
SaltedTxidHasher::SaltedTxidHasher
SaltedTxidHasher()
Definition:
hasher.cpp:15
SaltedSipHasher::operator()
size_t operator()(const std::span< const unsigned char > &script) const
Definition:
hasher.cpp:35
SaltedUint256Hasher::SaltedUint256Hasher
SaltedUint256Hasher()
Definition:
hasher.cpp:10
SaltedSipHasher::m_k1
const uint64_t m_k1
Definition:
hasher.h:112
CSipHasher::Finalize
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition:
siphash.cpp:73
hasher.h
CSipHasher
General SipHash-2-4 implementation.
Definition:
siphash.h:26
SaltedOutpointHasher::SaltedOutpointHasher
SaltedOutpointHasher(bool deterministic=false)
Definition:
hasher.cpp:25
FastRandomContext::rand64
uint64_t rand64() noexcept
Generate a random 64-bit integer.
Definition:
random.h:404
script
Definition:
parsing.cpp:13
SaltedSipHasher::SaltedSipHasher
SaltedSipHasher()
Definition:
hasher.cpp:30
Generated on Thu Apr 16 2026 12:00:00 for Bitcoin Core by
1.8.14