aboutsummaryrefslogtreecommitdiff
path: root/src/script/interpreter.h
diff options
context:
space:
mode:
authorJohnson Lau <jl2012@xbt.hk>2018-04-27 03:56:29 +0800
committerMarcoFalke <falke.marco@gmail.com>2018-05-24 14:03:01 -0400
commitd353dd121be0bf2a525e4bbea2b4ada2954d2b15 (patch)
tree28bf8bba835570ecd1080ff221360dfea40b1347 /src/script/interpreter.h
parentd6c3a08c482225b3742c9145a9cbfe60567f0c4f (diff)
downloadbitcoin-d353dd121be0bf2a525e4bbea2b4ada2954d2b15.tar.xz
Add constant scriptCode policy in non-segwit scripts
This disables OP_CODESEPARATOR in non-segwit scripts (even in an unexecuted branch), and makes a positive FindAndDelete result invalid. This ensures that the scriptCode serialized in SignatureHash() is always the same as the script passing to the EvalScript. Github-Pull: #11423 Rebased-From: 9dabfe49c066301ef75bcfcb089fd308366127c4
Diffstat (limited to 'src/script/interpreter.h')
-rw-r--r--src/script/interpreter.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/script/interpreter.h b/src/script/interpreter.h
index e12329be76..edb55cc458 100644
--- a/src/script/interpreter.h
+++ b/src/script/interpreter.h
@@ -111,6 +111,10 @@ enum
// Public keys in segregated witness scripts must be compressed
//
SCRIPT_VERIFY_WITNESS_PUBKEYTYPE = (1U << 15),
+
+ // Making OP_CODESEPARATOR and FindAndDelete fail any non-segwit scripts
+ //
+ SCRIPT_VERIFY_CONST_SCRIPTCODE = (1U << 16),
};
bool CheckSignatureEncoding(const std::vector<unsigned char> &vchSig, unsigned int flags, ScriptError* serror);