/ src / bench / hashpadding.cpp
hashpadding.cpp
 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);