diff options
author | Johnson Lau <jl2012@xbt.hk> | 2018-04-27 03:56:29 +0800 |
---|---|---|
committer | MarcoFalke <falke.marco@gmail.com> | 2018-05-24 14:03:01 -0400 |
commit | d353dd121be0bf2a525e4bbea2b4ada2954d2b15 (patch) | |
tree | 28bf8bba835570ecd1080ff221360dfea40b1347 /src/script/interpreter.h | |
parent | d6c3a08c482225b3742c9145a9cbfe60567f0c4f (diff) |
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.h | 4 |
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); |