aboutsummaryrefslogtreecommitdiff
path: root/src/key.cpp
diff options
context:
space:
mode:
authorPieter Wuille <[email protected]>2013-07-13 12:56:52 +0200
committerPieter Wuille <[email protected]>2013-07-13 12:57:19 +0200
commitfb83a79b21786d9aaa7e2b50dcdba343d024956f (patch)
tree26b464b6264e4813b32049f7fe373b920165fddc /src/key.cpp
parentMerge pull request #2743 from jgarzik/reject-reason (diff)
downloaddiscoin-fb83a79b21786d9aaa7e2b50dcdba343d024956f.tar.xz
discoin-fb83a79b21786d9aaa7e2b50dcdba343d024956f.zip
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 f73708199..1ab4c62eb 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;
}