aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatt Corallo <git@bluematt.me>2017-09-20 20:19:14 -0400
committerMarcoFalke <falke.marco@gmail.com>2017-10-03 20:12:07 +0200
commit75997c3b35db39031a222e2d63da83e67cc9397c (patch)
treea55618c338b8275925bb301abd2fd3a86927a760 /src
parent8d13b4298c1ca83db0a65c8c8a93bd3be9135754 (diff)
downloadbitcoin-75997c3b35db39031a222e2d63da83e67cc9397c.tar.xz
Disallow uncompressed pubkeys in bitcoin-tx [multisig] output adds
Github-Pull: #11377 Rebased-From: 28d4542a0ac77a30a242d0568e580a5b437f53fa
Diffstat (limited to 'src')
-rw-r--r--src/bitcoin-tx.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bitcoin-tx.cpp b/src/bitcoin-tx.cpp
index cff90d13af..0f2c19bd5d 100644
--- a/src/bitcoin-tx.cpp
+++ b/src/bitcoin-tx.cpp
@@ -310,6 +310,9 @@ static void MutateTxAddOutPubKey(CMutableTransaction& tx, const std::string& str
}
if (bSegWit) {
+ if (!pubkey.IsCompressed()) {
+ throw std::runtime_error("Uncompressed pubkeys are not useable for SegWit outputs");
+ }
// Call GetScriptForWitness() to build a P2WSH scriptPubKey
scriptPubKey = GetScriptForWitness(scriptPubKey);
}
@@ -377,6 +380,11 @@ static void MutateTxAddOutMultiSig(CMutableTransaction& tx, const std::string& s
CScript scriptPubKey = GetScriptForMultisig(required, pubkeys);
if (bSegWit) {
+ for (CPubKey& pubkey : pubkeys) {
+ if (!pubkey.IsCompressed()) {
+ throw std::runtime_error("Uncompressed pubkeys are not useable for SegWit outputs");
+ }
+ }
// Call GetScriptForWitness() to build a P2WSH scriptPubKey
scriptPubKey = GetScriptForWitness(scriptPubKey);
}