| 32 | BOOST_FIXTURE_TEST_SUITE(key_tests, BasicTestingSetup) |
| 33 | |
| 34 | BOOST_AUTO_TEST_CASE(key_test1) |
| 35 | { |
| 36 | CKey key1 = DecodeSecret(strSecret1); |
| 37 | BOOST_CHECK(key1.IsValid() && !key1.IsCompressed()); |
| 38 | CKey key2 = DecodeSecret(strSecret2); |
| 39 | BOOST_CHECK(key2.IsValid() && !key2.IsCompressed()); |
| 40 | CKey key1C = DecodeSecret(strSecret1C); |
| 41 | BOOST_CHECK(key1C.IsValid() && key1C.IsCompressed()); |
| 42 | CKey key2C = DecodeSecret(strSecret2C); |
| 43 | BOOST_CHECK(key2C.IsValid() && key2C.IsCompressed()); |
| 44 | CKey bad_key = DecodeSecret(strAddressBad); |
| 45 | BOOST_CHECK(!bad_key.IsValid()); |
| 46 | |
| 47 | CPubKey pubkey1 = key1. GetPubKey(); |
| 48 | CPubKey pubkey2 = key2. GetPubKey(); |
| 49 | CPubKey pubkey1C = key1C.GetPubKey(); |
| 50 | CPubKey pubkey2C = key2C.GetPubKey(); |
| 51 | |
| 52 | BOOST_CHECK(key1.VerifyPubKey(pubkey1)); |
| 53 | BOOST_CHECK(!key1.VerifyPubKey(pubkey1C)); |
| 54 | BOOST_CHECK(!key1.VerifyPubKey(pubkey2)); |
| 55 | BOOST_CHECK(!key1.VerifyPubKey(pubkey2C)); |
| 56 | |
| 57 | BOOST_CHECK(!key1C.VerifyPubKey(pubkey1)); |
| 58 | BOOST_CHECK(key1C.VerifyPubKey(pubkey1C)); |
| 59 | BOOST_CHECK(!key1C.VerifyPubKey(pubkey2)); |
| 60 | BOOST_CHECK(!key1C.VerifyPubKey(pubkey2C)); |
| 61 | |
| 62 | BOOST_CHECK(!key2.VerifyPubKey(pubkey1)); |
| 63 | BOOST_CHECK(!key2.VerifyPubKey(pubkey1C)); |
| 64 | BOOST_CHECK(key2.VerifyPubKey(pubkey2)); |
| 65 | BOOST_CHECK(!key2.VerifyPubKey(pubkey2C)); |
| 66 | |
| 67 | BOOST_CHECK(!key2C.VerifyPubKey(pubkey1)); |
| 68 | BOOST_CHECK(!key2C.VerifyPubKey(pubkey1C)); |
| 69 | BOOST_CHECK(!key2C.VerifyPubKey(pubkey2)); |
| 70 | BOOST_CHECK(key2C.VerifyPubKey(pubkey2C)); |
| 71 | |
| 72 | BOOST_CHECK(DecodeDestination(addr1) == CTxDestination(PKHash(pubkey1))); |
| 73 | BOOST_CHECK(DecodeDestination(addr2) == CTxDestination(PKHash(pubkey2))); |
| 74 | BOOST_CHECK(DecodeDestination(addr1C) == CTxDestination(PKHash(pubkey1C))); |
| 75 | BOOST_CHECK(DecodeDestination(addr2C) == CTxDestination(PKHash(pubkey2C))); |
| 76 | |
| 77 | for (int n=0; n<16; n++) |
| 78 | { |
| 79 | std::string strMsg = strprintf("Very secret message %i: 11", n); |
| 80 | uint256 hashMsg = Hash(strMsg); |
| 81 | |
| 82 | // normal signatures |
| 83 | |
| 84 | std::vector<unsigned char> sign1, sign2, sign1C, sign2C; |
| 85 | |
| 86 | BOOST_CHECK(key1.Sign (hashMsg, sign1)); |
| 87 | BOOST_CHECK(key2.Sign (hashMsg, sign2)); |
| 88 | BOOST_CHECK(key1C.Sign(hashMsg, sign1C)); |
| 89 | BOOST_CHECK(key2C.Sign(hashMsg, sign2C)); |
| 90 | |
| 91 | BOOST_CHECK( pubkey1.Verify(hashMsg, sign1)); |
nothing calls this directly
no test coverage detected