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

Function RunTest

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

Source from the content-addressed store, hash-verified

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

Callers 1

BOOST_AUTO_TEST_CASEFunction · 0.85

Calls 9

ParseHexFunction · 0.85
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