mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 14:38:29 +01:00
Pass export privkey DER compression flag correctly
By passing a bitfield where a boolean was expected, the result was always compressed. Fix this.
This commit is contained in:
committed by
Wladimir J. van der Laan
parent
1c12cf6073
commit
9a565a8282
@@ -89,7 +89,7 @@ static int ec_privkey_import_der(const secp256k1_context* ctx, unsigned char *ou
|
|||||||
* will be set to the number of bytes used in the buffer.
|
* will be set to the number of bytes used in the buffer.
|
||||||
* key32 must point to a 32-byte raw private key.
|
* key32 must point to a 32-byte raw private key.
|
||||||
*/
|
*/
|
||||||
static int ec_privkey_export_der(const secp256k1_context *ctx, unsigned char *privkey, size_t *privkeylen, const unsigned char *key32, int compressed) {
|
static int ec_privkey_export_der(const secp256k1_context *ctx, unsigned char *privkey, size_t *privkeylen, const unsigned char *key32, bool compressed) {
|
||||||
assert(*privkeylen >= CKey::PRIVATE_KEY_SIZE);
|
assert(*privkeylen >= CKey::PRIVATE_KEY_SIZE);
|
||||||
secp256k1_pubkey pubkey;
|
secp256k1_pubkey pubkey;
|
||||||
size_t pubkeylen = 0;
|
size_t pubkeylen = 0;
|
||||||
@@ -170,7 +170,7 @@ CPrivKey CKey::GetPrivKey() const {
|
|||||||
size_t privkeylen;
|
size_t privkeylen;
|
||||||
privkey.resize(PRIVATE_KEY_SIZE);
|
privkey.resize(PRIVATE_KEY_SIZE);
|
||||||
privkeylen = PRIVATE_KEY_SIZE;
|
privkeylen = PRIVATE_KEY_SIZE;
|
||||||
ret = ec_privkey_export_der(secp256k1_context_sign, privkey.data(), &privkeylen, begin(), fCompressed ? SECP256K1_EC_COMPRESSED : SECP256K1_EC_UNCOMPRESSED);
|
ret = ec_privkey_export_der(secp256k1_context_sign, privkey.data(), &privkeylen, begin(), fCompressed);
|
||||||
assert(ret);
|
assert(ret);
|
||||||
privkey.resize(privkeylen);
|
privkey.resize(privkeylen);
|
||||||
return privkey;
|
return privkey;
|
||||||
|
|||||||
Reference in New Issue
Block a user