mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-12 23:18:14 +01:00
Compressed pubkeys
This patch enabled compressed pubkeys when -compressedpubkeys is passed. These are 33 bytes instead of 65, and require only marginally more CPU power when verifying. Compressed pubkeys have a different corresponding address, so it is determined at generation. When -compressedpubkeys is given, all newly generated addresses will use a compressed key, while older/other addresses keep using normal keys. Unpatched clients will relay and verify these transactions.
This commit is contained in:
@@ -62,7 +62,9 @@ Value importprivkey(const Array& params, bool fHelp)
|
||||
if (!fGood) throw JSONRPCError(-5,"Invalid private key");
|
||||
|
||||
CKey key;
|
||||
key.SetSecret(vchSecret.GetSecret());
|
||||
bool fCompressed;
|
||||
CSecret secret = vchSecret.GetSecret(fCompressed);
|
||||
key.SetSecret(secret, fCompressed);
|
||||
CBitcoinAddress vchAddress = CBitcoinAddress(key.GetPubKey());
|
||||
|
||||
CRITICAL_BLOCK(cs_main)
|
||||
@@ -95,7 +97,8 @@ Value dumpprivkey(const Array& params, bool fHelp)
|
||||
if (!address.SetString(strAddress))
|
||||
throw JSONRPCError(-5, "Invalid bitcoin address");
|
||||
CSecret vchSecret;
|
||||
if (!pwalletMain->GetSecret(address, vchSecret))
|
||||
bool fCompressed;
|
||||
if (!pwalletMain->GetSecret(address, vchSecret, fCompressed))
|
||||
throw JSONRPCError(-4,"Private key for address " + strAddress + " is not known");
|
||||
return CBitcoinSecret(vchSecret).ToString();
|
||||
return CBitcoinSecret(vchSecret, fCompressed).ToString();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user