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);