mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 15:09:59 +01:00
Add sanity check after key generation
Add a sanity check to prevent cosmic rays from flipping a bit in the generated public key, or bugs in the elliptic curve code. This is simply done by signing a (randomized) message, and verifying the result.
This commit is contained in:
@@ -82,6 +82,26 @@ BOOST_AUTO_TEST_CASE(key_test1)
|
||||
CPubKey pubkey1C = key1C.GetPubKey();
|
||||
CPubKey pubkey2C = key2C.GetPubKey();
|
||||
|
||||
BOOST_CHECK(key1.VerifyPubKey(pubkey1));
|
||||
BOOST_CHECK(!key1.VerifyPubKey(pubkey1C));
|
||||
BOOST_CHECK(!key1.VerifyPubKey(pubkey2));
|
||||
BOOST_CHECK(!key1.VerifyPubKey(pubkey2C));
|
||||
|
||||
BOOST_CHECK(!key1C.VerifyPubKey(pubkey1));
|
||||
BOOST_CHECK(key1C.VerifyPubKey(pubkey1C));
|
||||
BOOST_CHECK(!key1C.VerifyPubKey(pubkey2));
|
||||
BOOST_CHECK(!key1C.VerifyPubKey(pubkey2C));
|
||||
|
||||
BOOST_CHECK(!key2.VerifyPubKey(pubkey1));
|
||||
BOOST_CHECK(!key2.VerifyPubKey(pubkey1C));
|
||||
BOOST_CHECK(key2.VerifyPubKey(pubkey2));
|
||||
BOOST_CHECK(!key2.VerifyPubKey(pubkey2C));
|
||||
|
||||
BOOST_CHECK(!key2C.VerifyPubKey(pubkey1));
|
||||
BOOST_CHECK(!key2C.VerifyPubKey(pubkey1C));
|
||||
BOOST_CHECK(!key2C.VerifyPubKey(pubkey2));
|
||||
BOOST_CHECK(key2C.VerifyPubKey(pubkey2C));
|
||||
|
||||
BOOST_CHECK(addr1.Get() == CTxDestination(pubkey1.GetID()));
|
||||
BOOST_CHECK(addr2.Get() == CTxDestination(pubkey2.GetID()));
|
||||
BOOST_CHECK(addr1C.Get() == CTxDestination(pubkey1C.GetID()));
|
||||
|
||||
Reference in New Issue
Block a user