diff options
Diffstat (limited to 'src/pubkey.cpp')
| -rw-r--r-- | src/pubkey.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/pubkey.cpp b/src/pubkey.cpp index e57fa238c..b0407cbee 100644 --- a/src/pubkey.cpp +++ b/src/pubkey.cpp @@ -211,6 +211,19 @@ bool CPubKey::IsFullyValid() const { return secp256k1_ec_pubkey_parse(secp256k1_context_verify, &pubkey, &(*this)[0], size()); } +bool CPubKey::Compress() { + if (!IsValid()) + return false; + secp256k1_pubkey pubkey; + if (!secp256k1_ec_pubkey_parse(secp256k1_context_verify, &pubkey, &(*this)[0], size())) + return false; + unsigned char pub[33]; + size_t publen = 33; + secp256k1_ec_pubkey_serialize(secp256k1_context_verify, pub, &publen, &pubkey, SECP256K1_EC_COMPRESSED); + Set(pub, pub + publen); + return true; +} + bool CPubKey::Decompress() { if (!IsValid()) return false; |