PIVX Core  5.6.99
P2P Digital Currency
sha256compress_tests.cpp
Go to the documentation of this file.
1 // Copyright (c) 2020 The PIVX 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 "test/test_pivx.h"
6 #include "crypto/sha256.h"
7 #include "uint256.h"
8 
9 #include <stdexcept>
10 
11 #include <boost/test/unit_test.hpp>
12 
13 BOOST_FIXTURE_TEST_SUITE(sha256compress_tests, BasicTestingSetup)
14 
16 {
17  {
18  unsigned char preimage[64] = {};
19  CSHA256 hasher;
20  hasher.Write(&preimage[0], 64);
21 
22  uint256 digest;
23 
24  hasher.FinalizeNoPadding(digest.begin());
25 
26  BOOST_CHECK_MESSAGE(digest == uint256S("d8a93718eaf9feba4362d2c091d4e58ccabe9f779957336269b4b917be9856da"),
27  digest.GetHex());
28  }
29 
30  {
31  unsigned char preimage[63] = {};
32  CSHA256 hasher;
33  hasher.Write(&preimage[0], 63);
34  uint256 digest;
35  BOOST_CHECK_THROW(hasher.FinalizeNoPadding(digest.begin()), std::length_error);
36  }
37 }
38 
A hasher class for SHA-256.
Definition: sha256.h:13
void FinalizeNoPadding(unsigned char hash[OUTPUT_SIZE], bool enforce_compression=true)
Definition: sha256.cpp:178
CSHA256 & Write(const unsigned char *data, size_t len)
Definition: sha256.cpp:142
std::string GetHex() const
Definition: uint256.cpp:21
unsigned char * begin()
Definition: uint256.h:63
256-bit opaque blob.
Definition: uint256.h:138
BOOST_AUTO_TEST_SUITE_END()
#define BOOST_CHECK_THROW(stmt, excMatch)
Definition: object.cpp:19
#define BOOST_FIXTURE_TEST_SUITE(a, b)
Definition: object.cpp:14
BOOST_AUTO_TEST_CASE(compression)
Basic testing setup.
Definition: test_pivx.h:51
uint256 uint256S(const char *str)
Definition: uint256.h:157