Bitcoin Core
31.0.0
P2P Digital Currency
Loading...
Searching...
No Matches
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
}
CSipHasher
General SipHash-2-4 implementation.
Definition
siphash.h:27
CSipHasher::Finalize
uint64_t Finalize() const
Compute the 64-bit SipHash-2-4 of the data written so far.
Definition
siphash.cpp:73
CSipHasher::Write
CSipHasher & Write(uint64_t data)
Hash a 64-bit integer worth of data.
Definition
siphash.cpp:24
FastRandomContext
Fast randomness source.
Definition
random.h:386
SaltedOutpointHasher::SaltedOutpointHasher
SaltedOutpointHasher(bool deterministic=false)
Definition
hasher.cpp:25
SaltedSipHasher::SaltedSipHasher
SaltedSipHasher()
Definition
hasher.cpp:30
SaltedSipHasher::operator()
size_t operator()(const std::span< const unsigned char > &script) const
Definition
hasher.cpp:35
SaltedSipHasher::m_k0
const uint64_t m_k0
Salt.
Definition
hasher.h:112
SaltedSipHasher::m_k1
const uint64_t m_k1
Definition
hasher.h:112
SaltedTxidHasher::SaltedTxidHasher
SaltedTxidHasher()
Definition
hasher.cpp:15
SaltedUint256Hasher::SaltedUint256Hasher
SaltedUint256Hasher()
Definition
hasher.cpp:10
SaltedWtxidHasher::SaltedWtxidHasher
SaltedWtxidHasher()
Definition
hasher.cpp:20
hasher.h
script
Definition
parsing.cpp:13
siphash.h
span.h
Ticks
constexpr auto Ticks(Dur2 d)
Helper to count the seconds of a duration/time_point.
Definition
time.h:73
Generated on Thu Apr 16 2026 09:42:38 for Bitcoin Core by
1.10.0