hashpadding.cpp raw
1 // Copyright (c) 2015-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 <bench/bench.h>
6 #include <crypto/sha256.h>
7 #include <random.h>
8 #include <uint256.h>
9
10
11 static void PrePadded(benchmark::Bench& bench)
12 {
13
14 CSHA256 hasher;
15
16 // Setup the salted hasher
17 uint256 nonce = GetRandHash();
18 hasher.Write(nonce.begin(), 32);
19 hasher.Write(nonce.begin(), 32);
20 uint256 data = GetRandHash();
21 bench.run([&] {
22 unsigned char out[32];
23 CSHA256 h = hasher;
24 h.Write(data.begin(), 32);
25 h.Finalize(out);
26 });
27 }
28
29 BENCHMARK(PrePadded);
30
31 static void RegularPadded(benchmark::Bench& bench)
32 {
33 CSHA256 hasher;
34
35 // Setup the salted hasher
36 uint256 nonce = GetRandHash();
37 uint256 data = GetRandHash();
38 bench.run([&] {
39 unsigned char out[32];
40 CSHA256 h = hasher;
41 h.Write(nonce.begin(), 32);
42 h.Write(data.begin(), 32);
43 h.Finalize(out);
44 });
45 }
46
47 BENCHMARK(RegularPadded);
48