MCPcopy Create free account
hub / github.com/ElementsProject/elements / BOOST_AUTO_TEST_CASE

Function BOOST_AUTO_TEST_CASE

src/test/key_tests.cpp:34–154  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

32BOOST_FIXTURE_TEST_SUITE(key_tests, BasicTestingSetup)
33
34BOOST_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));

Callers

nothing calls this directly

Calls 15

DecodeSecretFunction · 0.85
DecodeDestinationFunction · 0.85
PKHashClass · 0.85
ParseHexFunction · 0.85
GetRandBytesFunction · 0.85
CHash256Class · 0.85
MakeUCharSpanFunction · 0.85
UnserializePubkeyFunction · 0.85
CmpSerializationPubkeyFunction · 0.85
GetLenFunction · 0.85
InsecureRand256Function · 0.85
VerifyPubKeyMethod · 0.80

Tested by

no test coverage detected