mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-08-29 21:41:07 +02:00
Merge #17212: refactor: Remove unused CExt{Pub,}Key (de)serialization methods
5b44a75493
refactor: Remove unused CExt{Pub,}Key (de)serialization methods (Sebastian Falbesoner) Pull request description: As pointed out in issue #17130, the serialization/deserialization methods for the classes `CExtKey` and `CExtPubKey` are only used in the BIP32 unit tests and hence can be removed (see comments https://github.com/bitcoin/bitcoin/issues/17130#issuecomment-543750290, https://github.com/bitcoin/bitcoin/issues/17130#issuecomment-543794408 and https://github.com/bitcoin/bitcoin/issues/17130#issuecomment-543814727). ACKs for top commit: practicalswift: ACK5b44a75493
-- -60 LOC diff looks correct :) promag: ACK5b44a75493
. MarcoFalke: unsigned ACK5b44a75493
fjahr: ACK5b44a75
jonatack: Light ACK5b44a75493
. Built, ran tests and bitcoind. `git blame` shows most of the last changes are from commit90604f16af
in 2015 to add bip32 pubkey serialization. Tree-SHA512: 6887573b76b9e54e117a076557407b6f7908719b2202fb9eea498522baf9f30198b3f78b87a62efcd17ad1ab0886196f099239992ce7cbbaee79979ffe9e5f2c
This commit is contained in:
19
src/key.h
19
src/key.h
@@ -162,25 +162,6 @@ struct CExtKey {
|
|||||||
bool Derive(CExtKey& out, unsigned int nChild) const;
|
bool Derive(CExtKey& out, unsigned int nChild) const;
|
||||||
CExtPubKey Neuter() const;
|
CExtPubKey Neuter() const;
|
||||||
void SetSeed(const unsigned char* seed, unsigned int nSeedLen);
|
void SetSeed(const unsigned char* seed, unsigned int nSeedLen);
|
||||||
template <typename Stream>
|
|
||||||
void Serialize(Stream& s) const
|
|
||||||
{
|
|
||||||
unsigned int len = BIP32_EXTKEY_SIZE;
|
|
||||||
::WriteCompactSize(s, len);
|
|
||||||
unsigned char code[BIP32_EXTKEY_SIZE];
|
|
||||||
Encode(code);
|
|
||||||
s.write((const char *)&code[0], len);
|
|
||||||
}
|
|
||||||
template <typename Stream>
|
|
||||||
void Unserialize(Stream& s)
|
|
||||||
{
|
|
||||||
unsigned int len = ::ReadCompactSize(s);
|
|
||||||
unsigned char code[BIP32_EXTKEY_SIZE];
|
|
||||||
if (len != BIP32_EXTKEY_SIZE)
|
|
||||||
throw std::runtime_error("Invalid extended key size\n");
|
|
||||||
s.read((char *)&code[0], len);
|
|
||||||
Decode(code);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Initialize the elliptic curve support. May not be called twice without calling ECC_Stop first. */
|
/** Initialize the elliptic curve support. May not be called twice without calling ECC_Stop first. */
|
||||||
|
25
src/pubkey.h
25
src/pubkey.h
@@ -222,31 +222,6 @@ struct CExtPubKey {
|
|||||||
void Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const;
|
void Encode(unsigned char code[BIP32_EXTKEY_SIZE]) const;
|
||||||
void Decode(const unsigned char code[BIP32_EXTKEY_SIZE]);
|
void Decode(const unsigned char code[BIP32_EXTKEY_SIZE]);
|
||||||
bool Derive(CExtPubKey& out, unsigned int nChild) const;
|
bool Derive(CExtPubKey& out, unsigned int nChild) const;
|
||||||
|
|
||||||
void Serialize(CSizeComputer& s) const
|
|
||||||
{
|
|
||||||
// Optimized implementation for ::GetSerializeSize that avoids copying.
|
|
||||||
s.seek(BIP32_EXTKEY_SIZE + 1); // add one byte for the size (compact int)
|
|
||||||
}
|
|
||||||
template <typename Stream>
|
|
||||||
void Serialize(Stream& s) const
|
|
||||||
{
|
|
||||||
unsigned int len = BIP32_EXTKEY_SIZE;
|
|
||||||
::WriteCompactSize(s, len);
|
|
||||||
unsigned char code[BIP32_EXTKEY_SIZE];
|
|
||||||
Encode(code);
|
|
||||||
s.write((const char *)&code[0], len);
|
|
||||||
}
|
|
||||||
template <typename Stream>
|
|
||||||
void Unserialize(Stream& s)
|
|
||||||
{
|
|
||||||
unsigned int len = ::ReadCompactSize(s);
|
|
||||||
unsigned char code[BIP32_EXTKEY_SIZE];
|
|
||||||
if (len != BIP32_EXTKEY_SIZE)
|
|
||||||
throw std::runtime_error("Invalid extended key size\n");
|
|
||||||
s.read((char *)&code[0], len);
|
|
||||||
Decode(code);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Users of this module must hold an ECCVerifyHandle. The constructor and
|
/** Users of this module must hold an ECCVerifyHandle. The constructor and
|
||||||
|
@@ -118,22 +118,6 @@ static void RunTest(const TestVector &test) {
|
|||||||
}
|
}
|
||||||
key = keyNew;
|
key = keyNew;
|
||||||
pubkey = pubkeyNew;
|
pubkey = pubkeyNew;
|
||||||
|
|
||||||
CDataStream ssPub(SER_DISK, CLIENT_VERSION);
|
|
||||||
ssPub << pubkeyNew;
|
|
||||||
BOOST_CHECK(ssPub.size() == 75);
|
|
||||||
|
|
||||||
CDataStream ssPriv(SER_DISK, CLIENT_VERSION);
|
|
||||||
ssPriv << keyNew;
|
|
||||||
BOOST_CHECK(ssPriv.size() == 75);
|
|
||||||
|
|
||||||
CExtPubKey pubCheck;
|
|
||||||
CExtKey privCheck;
|
|
||||||
ssPub >> pubCheck;
|
|
||||||
ssPriv >> privCheck;
|
|
||||||
|
|
||||||
BOOST_CHECK(pubCheck == pubkeyNew);
|
|
||||||
BOOST_CHECK(privCheck == keyNew);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user