MCPcopy Create free account
hub / github.com/bitcoin/bitcoin / RunTest

Function RunTest

src/test/bip32_tests.cpp:123–156  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

121};
122
123void RunTest(const TestVector& test)
124{
125 std::vector<std::byte> seed{ParseHex<std::byte>(test.strHexMaster)};
126 CExtKey key;
127 CExtPubKey pubkey;
128 key.SetSeed(seed);
129 pubkey = key.Neuter();
130 for (const TestDerivation &derive : test.vDerive) {
131 unsigned char data[74];
132 key.Encode(data);
133 pubkey.Encode(data);
134
135 // Test private key
136 BOOST_CHECK(EncodeExtKey(key) == derive.prv);
137 BOOST_CHECK(DecodeExtKey(derive.prv) == key); //ensure a base58 decoded key also matches
138
139 // Test public key
140 BOOST_CHECK(EncodeExtPubKey(pubkey) == derive.pub);
141 BOOST_CHECK(DecodeExtPubKey(derive.pub) == pubkey); //ensure a base58 decoded pubkey also matches
142
143 // Derive new keys
144 CExtKey keyNew;
145 BOOST_CHECK(key.Derive(keyNew, derive.nChild));
146 CExtPubKey pubkeyNew = keyNew.Neuter();
147 if (!(derive.nChild & 0x80000000)) {
148 // Compare with public derivation
149 CExtPubKey pubkeyNew2;
150 BOOST_CHECK(pubkey.Derive(pubkeyNew2, derive.nChild));
151 BOOST_CHECK(pubkeyNew == pubkeyNew2);
152 }
153 key = keyNew;
154 pubkey = pubkeyNew;
155 }
156}
157
158} // namespace
159

Callers 1

BOOST_AUTO_TEST_CASEFunction · 0.85

Calls 8

EncodeExtKeyFunction · 0.85
DecodeExtKeyFunction · 0.85
EncodeExtPubKeyFunction · 0.85
DecodeExtPubKeyFunction · 0.85
NeuterMethod · 0.80
SetSeedMethod · 0.45
EncodeMethod · 0.45
DeriveMethod · 0.45

Tested by

no test coverage detected