aboutsummaryrefslogtreecommitdiff
path: root/src/key.cpp
diff options
context:
space:
mode:
authorPieter Wuille <pieter.wuille@gmail.com>2013-07-13 12:56:52 +0200
committerPieter Wuille <pieter.wuille@gmail.com>2013-07-13 12:57:19 +0200
commitfb83a79b21786d9aaa7e2b50dcdba343d024956f (patch)
tree26b464b6264e4813b32049f7fe373b920165fddc /src/key.cpp
parentd598872726ce9e2cbabdf705a616495c44851c2c (diff)
downloadbitcoin-fb83a79b21786d9aaa7e2b50dcdba343d024956f.tar.xz
Fix minor backward incompatibility
The key refactor changed the way unencrypted private keys with compressed public key are stored in the wallet. Apparently older versions relied on this to verify the correctness of stored keys. Note that earlier pre-release versions do risk creating wallets that can not be opened by 0.8.3 and earlier.
Diffstat (limited to 'src/key.cpp')
-rw-r--r--src/key.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/key.cpp b/src/key.cpp
index f73708199a..1ab4c62ebf 100644
--- a/src/key.cpp
+++ b/src/key.cpp
@@ -155,7 +155,8 @@ public:
BN_clear_free(&bn);
}
- void GetPrivKey(CPrivKey &privkey) {
+ void GetPrivKey(CPrivKey &privkey, bool fCompressed) {
+ EC_KEY_set_conv_form(pkey, fCompressed ? POINT_CONVERSION_COMPRESSED : POINT_CONVERSION_UNCOMPRESSED);
int nSize = i2d_ECPrivateKey(pkey, NULL);
assert(nSize);
privkey.resize(nSize);
@@ -304,7 +305,7 @@ CPrivKey CKey::GetPrivKey() const {
CECKey key;
key.SetSecretBytes(vch);
CPrivKey privkey;
- key.GetPrivKey(privkey);
+ key.GetPrivKey(privkey, fCompressed);
return privkey;
}