diff --git a/src/consensus/tx_verify.cpp b/src/consensus/tx_verify.cpp --- a/src/consensus/tx_verify.cpp +++ b/src/consensus/tx_verify.cpp @@ -221,7 +221,7 @@ } } - if (GetSigOpCountWithoutP2SH(tx, SCRIPT_ENABLE_CHECKDATASIG) > + if (GetSigOpCountWithoutP2SH(tx, SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) > MAX_TX_SIGOPS_COUNT) { return state.DoS(100, false, REJECT_INVALID, "bad-txn-sigops"); } diff --git a/src/policy/policy.h b/src/policy/policy.h --- a/src/policy/policy.h +++ b/src/policy/policy.h @@ -86,7 +86,7 @@ SCRIPT_VERIFY_NULLDUMMY | SCRIPT_VERIFY_SIGPUSHONLY | SCRIPT_VERIFY_MINIMALDATA | SCRIPT_VERIFY_DISCOURAGE_UPGRADABLE_NOPS | SCRIPT_VERIFY_CLEANSTACK | SCRIPT_VERIFY_CHECKLOCKTIMEVERIFY | - SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_ENABLE_CHECKDATASIG; + SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; /** * For convenience, standard but not mandatory verify flags. diff --git a/src/script/script.cpp b/src/script/script.cpp --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -361,7 +361,7 @@ case OP_CHECKDATASIG: case OP_CHECKDATASIGVERIFY: - if (flags & SCRIPT_ENABLE_CHECKDATASIG) { + if (flags & SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) { n++; } break; diff --git a/src/script/script_flags.h b/src/script/script_flags.h --- a/src/script/script_flags.h +++ b/src/script/script_flags.h @@ -99,7 +99,7 @@ // OP_CHECKDATASIG(VERIFY) as always valid, this flag only affects sigops // counting. // - SCRIPT_ENABLE_CHECKDATASIG = (1U << 18), + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS = (1U << 18), // Are Schnorr signatures enabled for OP_CHECK(DATA)SIG(VERIFY) and // 65-byte signatures banned for OP_CHECKMULTISIG(VERIFY)? diff --git a/src/script/sigcache.cpp b/src/script/sigcache.cpp --- a/src/script/sigcache.cpp +++ b/src/script/sigcache.cpp @@ -29,7 +29,7 @@ SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_MINIMALIF | SCRIPT_VERIFY_NULLFAIL | SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE | SCRIPT_ENABLE_SIGHASH_FORKID | SCRIPT_ENABLE_REPLAY_PROTECTION | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ALLOW_SEGWIT_RECOVERY; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ALLOW_SEGWIT_RECOVERY; /** * Valid signature cache, to avoid doing expensive ECDSA signature checking diff --git a/src/test/checkdatasig_tests.cpp b/src/test/checkdatasig_tests.cpp --- a/src/test/checkdatasig_tests.cpp +++ b/src/test/checkdatasig_tests.cpp @@ -67,11 +67,11 @@ const stacktype &expected) { for (uint32_t flags : flagset) { // The script executes as expected regardless of whether or not - // SCRIPT_ENABLE_CHECKDATASIG flag is passed. - CheckPass(flags & ~SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); - CheckPass(flags | SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); + // SCRIPT_VERIFY_CHECKDATASIG_SIGOPS flag is passed. + CheckPass(flags & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); + CheckPass(flags | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); } } @@ -79,11 +79,11 @@ const CScript &script, ScriptError expected) { for (uint32_t flags : flagset) { // The script generates the proper error regardless of whether or not - // SCRIPT_ENABLE_CHECKDATASIG flag is passed. - CheckError(flags & ~SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); - CheckError(flags | SCRIPT_ENABLE_CHECKDATASIG, original_stack, script, - expected); + // SCRIPT_VERIFY_CHECKDATASIG_SIGOPS flag is passed. + CheckError(flags & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); + CheckError(flags | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, original_stack, + script, expected); } } @@ -150,7 +150,7 @@ MMIXLinearCongruentialGenerator lcg; for (int i = 0; i < 4096; i++) { - uint32_t flags = lcg.next() | SCRIPT_ENABLE_CHECKDATASIG; + uint32_t flags = lcg.next() | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; if (flags & SCRIPT_VERIFY_STRICTENC) { // When strict encoding is enforced, hybrid keys are invalid. @@ -251,8 +251,10 @@ } BOOST_AUTO_TEST_CASE(checkdatasig_inclusion_in_standard_and_mandatory_flags) { - BOOST_CHECK(STANDARD_SCRIPT_VERIFY_FLAGS & SCRIPT_ENABLE_CHECKDATASIG); - BOOST_CHECK(!(MANDATORY_SCRIPT_VERIFY_FLAGS & SCRIPT_ENABLE_CHECKDATASIG)); + BOOST_CHECK(STANDARD_SCRIPT_VERIFY_FLAGS & + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS); + BOOST_CHECK( + !(MANDATORY_SCRIPT_VERIFY_FLAGS & SCRIPT_VERIFY_CHECKDATASIG_SIGOPS)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/src/test/data/script_tests.json b/src/test/data/script_tests.json --- a/src/test/data/script_tests.json +++ b/src/test/data/script_tests.json @@ -241,9 +241,9 @@ "Discouraged NOPs are allowed if not executed"], ["0", "IF CHECKDATASIG ELSE 1 ENDIF", "P2SH,STRICTENC", "OK"], -["0", "IF CHECKDATASIG ELSE 1 ENDIF", "P2SH,STRICTENC,CHECKDATASIG", "OK"], +["0", "IF CHECKDATASIG ELSE 1 ENDIF", "P2SH,STRICTENC,CHECKDATASIG_SIGOPS", "OK"], ["0", "IF CHECKDATASIGVERIFY ELSE 1 ENDIF", "P2SH,STRICTENC", "OK"], -["0", "IF CHECKDATASIGVERIFY ELSE 1 ENDIF", "P2SH,STRICTENC,CHECKDATASIG", "OK"], +["0", "IF CHECKDATASIGVERIFY ELSE 1 ENDIF", "P2SH,STRICTENC,CHECKDATASIG_SIGOPS", "OK"], ["0", "IF 0xbc ELSE 1 ENDIF", "P2SH,STRICTENC", "OK", "opcodes >= FIRST_UNDEFINED_OP_VALUE invalid if executed"], ["0", "IF 0xbd ELSE 1 ENDIF", "P2SH,STRICTENC", "OK"], ["0", "IF 0xbe ELSE 1 ENDIF", "P2SH,STRICTENC", "OK"], @@ -1037,166 +1037,166 @@ ["11 1 ADD 12 SUB", "11 EQUAL", "P2SH,STRICTENC", "EVAL_FALSE"], ["CHECKDATASIG"], -["", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", "INVALID_STACK_OPERATION"], -["0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", "INVALID_STACK_OPERATION"], -["0 0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", "INVALID_STACK_OPERATION"], +["", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], [ "0 0", "0 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "PUBKEYTYPE" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "EVAL_FALSE" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,CHECKDATASIG", + "P2SH,STRICTENC,CHECKDATASIG_SIGOPS", "EVAL_FALSE", "Check that NULLFAIL trigger only when specified" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "NULLFAIL" ], [ "0x09 0x300602010102010101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "SIG_DER", "Ensure that sighashtype is ignored" ], [ "0x09 0x300702010102020001 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "SIG_DER", "Non cannonical DER encoding" ], ["CHECKDATASIGVERIFY"], -["", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,CHECKDATASIG", "INVALID_STACK_OPERATION"], -["0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", "INVALID_STACK_OPERATION"], -["0 0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", "INVALID_STACK_OPERATION"], +["", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "INVALID_STACK_OPERATION"], [ "0 0", "0 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "PUBKEYTYPE" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "CHECKDATASIGVERIFY" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,CHECKDATASIG", + "P2SH,STRICTENC,CHECKDATASIG_SIGOPS", "CHECKDATASIGVERIFY", "Check that NULLFAIL trigger only when specified" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "NULLFAIL" ], [ "0x09 0x300602010102010101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "SIG_DER", "Ensure that sighashtype is ignored" ], [ "0x09 0x300702010102020001 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS", "SIG_DER", "Non cannonical DER encoding" ], ["Schnorr flag on: CHECKDATASIG unchanged"], -["", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], -["0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], -["0 0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIG", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], [ "0 0", "0 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "PUBKEYTYPE" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "EVAL_FALSE" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,CHECKDATASIG_SIGOPS,SCHNORR", "EVAL_FALSE", "Check that NULLFAIL trigger only when specified" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "NULLFAIL" ], [ "0x09 0x300602010102010101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "SIG_DER", "Ensure that sighashtype is ignored" ], [ "0x09 0x300702010102020001 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "SIG_DER", "Non cannonical DER encoding" ], ["Schnorr flag on: CHECKDATASIGVERIFY unchanged"], -["", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], -["0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], -["0 0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", "INVALID_STACK_OPERATION"], +["", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], +["0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], +["0 0", "CHECKDATASIGVERIFY 1", "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "INVALID_STACK_OPERATION"], [ "0 0", "0 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "PUBKEYTYPE" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "CHECKDATASIGVERIFY" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,CHECKDATASIG_SIGOPS,SCHNORR", "CHECKDATASIGVERIFY", "Check that NULLFAIL trigger only when specified" ], [ "0x08 0x3006020101020101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "NULLFAIL" ], [ "0x09 0x300602010102010101 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "SIG_DER", "Ensure that sighashtype is ignored" ], [ "0x09 0x300702010102020001 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG,SCHNORR", + "P2SH,STRICTENC,NULLFAIL,CHECKDATASIG_SIGOPS,SCHNORR", "SIG_DER", "Non cannonical DER encoding" ], @@ -1572,9 +1572,9 @@ ["64/65-byte sig length tests"], ["0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "", "OK"], -["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG", "OK"], +["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG_SIGOPS", "OK"], ["0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", " 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "SCHNORR", "OK"], -["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,SCHNORR", "OK"], +["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG_SIGOPS,SCHNORR", "OK"], ["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "", "OK"], ["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC", "OK"], ["0 0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "SCHNORR", "SIG_BADLENGTH"], @@ -1585,9 +1585,9 @@ ["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "", "OK"], ["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "STRICTENC", "SIG_DER"], ["0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "STRICTENC,SCHNORR", "OK"], -["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG", "OK"], -["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,STRICTENC", "SIG_DER"], -["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG,STRICTENC,SCHNORR", "OK"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG_SIGOPS", "OK"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG_SIGOPS,STRICTENC", "SIG_DER"], +["0x40 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "CHECKDATASIG_SIGOPS,STRICTENC,SCHNORR", "OK"], ["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "", "OK"], ["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC", "SIG_DER"], ["0 0x41 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001", "1 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 1 CHECKMULTISIG NOT", "STRICTENC,SCHNORR", "SIG_BADLENGTH"], @@ -2307,168 +2307,168 @@ [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "OK", "Standard CHECKDATASIG" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "NULLFAIL", "CHECKDATASIG with NULLFAIL flags" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "OK", "CHECKDATASIG without NULLFAIL flags" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "OK", "CHECKDATASIG empty signature" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,LOW_S,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,LOW_S,NULLFAIL,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL", + "CHECKDATASIG_SIGOPS,NULLFAIL", "OK", "CHECKDATASIG with too little R padding but no DERSIG" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "SIG_DER", "CHECKDATASIG with too little R padding" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL", + "CHECKDATASIG_SIGOPS,NULLFAIL", "OK", "CHECKDATASIG with hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with hybrid pubkey" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "OK", "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with invalid hybrid pubkey" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "OK", "Standard CHECKDATASIGVERIFY" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "NULLFAIL", "CHECKDATASIGVERIFY with NULLFAIL flags" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY without NULLFAIL flags" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY empty signature" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,LOW_S,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,LOW_S,NULLFAIL,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL", + "CHECKDATASIG_SIGOPS,NULLFAIL", "OK", "CHECKDATASIGVERIFY with too little R padding but no DERSIG" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "SIG_DER", "CHECKDATASIGVERIFY with too little R padding" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL", + "CHECKDATASIG_SIGOPS,NULLFAIL", "OK", "CHECKDATASIGVERIFY with hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with hybrid pubkey" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with invalid hybrid pubkey" ], @@ -2517,168 +2517,168 @@ [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "OK", "Standard CHECKDATASIG" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "NULLFAIL", "CHECKDATASIG with NULLFAIL flags" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG without NULLFAIL flags" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG NOT", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "OK", "CHECKDATASIG empty signature" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,LOW_S,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,LOW_S,NULLFAIL,SCHNORR,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR", "OK", "CHECKDATASIG with too little R padding but no DERSIG" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "SIG_DER", "CHECKDATASIG with too little R padding" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR", "OK", "CHECKDATASIG with hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with hybrid pubkey" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "OK", "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "PUBKEYTYPE", "CHECKDATASIG with invalid hybrid pubkey" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "OK", "Standard CHECKDATASIGVERIFY" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "NULLFAIL", "CHECKDATASIGVERIFY with NULLFAIL flags" ], [ "0x46 0x3044022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022037964f01a61db1b24ea44137b3d67d7095ec25f68bd7b508e01441e5539d96a9 1", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY without NULLFAIL flags" ], [ "0 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY empty signature" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "OK", "CHECKDATASIG with High S but no Low S" ], [ "0x47 0x3045022021309a532a60d471cc4ef025a96572c7bf26c4640b53c7d45e411a5aa99980f6022100c869b0fe59e24e4db15bbec84c29828e24c2b6f02370eb32dfbe1ca77c98aa98 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,LOW_S,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,LOW_S,NULLFAIL,SCHNORR,STRICTENC", "SIG_HIGH_S", "CHECKDATASIG with High S" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR", "OK", "CHECKDATASIGVERIFY with too little R padding but no DERSIG" ], [ "0x46 0x3044022093cbfaab2bbef6fc019d1286018fd11e2612d817756d40913b3f82a428f1e90a022045d010bd0f3c31aa470d096bb3f693275214f48d4e727f45a9e0adb2645d7489 0", "0x21 0x038282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "SIG_DER", "CHECKDATASIGVERIFY with too little R padding" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR", "OK", "CHECKDATASIGVERIFY with hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with hybrid pubkey" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0de8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d 0", "0x41 0x0679be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,NULLFAIL,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,NULLFAIL,SCHNORR,STRICTENC", "PUBKEYTYPE", "CHECKDATASIGVERIFY with invalid hybrid pubkey" ], @@ -2825,168 +2825,168 @@ [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "EVAL_FALSE", "CHECKDATASIG Schnorr w/ neither STRICTENC,SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "OK", "CHECKDATASIG ECDSA w/ neither STRICTENC,SCHNORR" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,SCHNORR", + "CHECKDATASIG_SIGOPS,SCHNORR", "OK", "CHECKDATASIG Schnorr w/ SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,SCHNORR", + "CHECKDATASIG_SIGOPS,SCHNORR", "OK", "CHECKDATASIG ECDSA w/ SCHNORR" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "SIG_DER", "CHECKDATASIG Schnorr w/ STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "OK", "CHECKDATASIG ECDSA w/ STRICTENC" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG Schnorr w/ STRICTENC,SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG ECDSA w/ STRICTENC,SCHNORR" ], [ "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG Schnorr other key" ], [ "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIG NOT", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG Schnorr mismatched key" ], [ "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", "1 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG Schnorr other message" ], [ "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIG NOT", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIG Schnorr wrong message" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG", + "CHECKDATASIG_SIGOPS", "OK", "CHECKDATASIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR", + "CHECKDATASIG_SIGOPS,SCHNORR", "OK", "CHECKDATASIGVERIFY Schnorr w/ SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR", + "CHECKDATASIG_SIGOPS,SCHNORR", "OK", "CHECKDATASIGVERIFY ECDSA w/ SCHNORR" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "SIG_DER", "CHECKDATASIGVERIFY Schnorr w/ STRICTENC" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,STRICTENC", + "CHECKDATASIG_SIGOPS,STRICTENC", "OK", "CHECKDATASIGVERIFY ECDSA w/ STRICTENC" ], [ "0x40 0x9db0671f61f1fafa84aaab76ad2e070b27cf9ae85338bafc0b947ac9ad8c56ff7b24aa76c95ad86bb13cbff314742dbe1f545869d1a28efa54b411ccd37717e5", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIGVERIFY Schnorr w/ STRICTENC,SCHNORR" ], [ "0x46 0x304402205ffea7d9fa4e0ce8058c96edfb721aaf2840912080ac4ae86a92d9462e69fde302203567149cb9c8c343523a87d7a64be304983899d2e2c6f267a7136c48ff21908d", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIGVERIFY ECDSA w/ STRICTENC,SCHNORR" ], [ "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIGVERIFY Schnorr other key" ], [ "0x40 0x65c4bceda6ebb49e692180387e72c84be500f3431daac85d08d5d6c527e296f5b8a5b868a681f76aee309ad05e152b4f190732b3e7c46ef788b68c6035f6eab0", "0 0x41 0x0479be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8 CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY Schnorr mismatched key" ], [ "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", "1 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "OK", "CHECKDATASIGVERIFY Schnorr other message" ], [ "0x40 0xe20d68eea1c55d8c23310ef33b4c68e3d876b1c5a36595f4dcc9d728894c957879e53bb4aebf8b3aa36861d89266ff864d2c3f513ab6f79c9d226ad45fbf5407", "0 0x41 0x048282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f5150811f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf CHECKDATASIGVERIFY 1", - "CHECKDATASIG,SCHNORR,STRICTENC", + "CHECKDATASIG_SIGOPS,SCHNORR,STRICTENC", "CHECKDATASIGVERIFY", "CHECKDATASIGVERIFY Schnorr wrong message" ], diff --git a/src/test/schnorr_tests.cpp b/src/test/schnorr_tests.cpp --- a/src/test/schnorr_tests.cpp +++ b/src/test/schnorr_tests.cpp @@ -102,7 +102,7 @@ // The first lcg.next() call is still 0x00000000 though. MMIXLinearCongruentialGenerator lcg(1234); for (int i = 0; i < 4096; i++) { - uint32_t flags = lcg.next() | SCRIPT_ENABLE_CHECKDATASIG; + uint32_t flags = lcg.next() | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; const bool hasForkId = (flags & SCRIPT_ENABLE_SIGHASH_FORKID) != 0; const bool hasSchnorr = (flags & SCRIPT_ENABLE_SCHNORR) != 0; diff --git a/src/test/script_tests.cpp b/src/test/script_tests.cpp --- a/src/test/script_tests.cpp +++ b/src/test/script_tests.cpp @@ -1171,7 +1171,7 @@ // Test OP_CHECKDATASIG const uint32_t checkdatasigflags = SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_NULLFAIL | - SCRIPT_ENABLE_CHECKDATASIG; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; tests.push_back( TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKDATASIG, @@ -1239,7 +1239,7 @@ TestBuilder(CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0)); @@ -1329,7 +1329,7 @@ CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIGVERIFY << OP_TRUE, "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0) @@ -1393,7 +1393,7 @@ // Duplicated test OP_CHECKDATASIG with Schnorr flag on const uint32_t checkdatasigschnorrflags = SCRIPT_VERIFY_STRICTENC | SCRIPT_VERIFY_NULLFAIL | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR; tests.push_back( TestBuilder(CScript() << ToByteVector(keys.pubkey1C) << OP_CHECKDATASIG, @@ -1464,7 +1464,7 @@ TestBuilder(CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0)); @@ -1555,7 +1555,7 @@ CScript() << ToByteVector(keys.pubkey0H) << OP_CHECKDATASIGVERIFY << OP_TRUE, "CHECKDATASIGVERIFY with invalid hybrid pubkey but no STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {}) .DamagePush(10) .Num(0) @@ -1681,79 +1681,79 @@ TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_EVAL_FALSE)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigSchnorr(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_SIG_DER)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG, "CHECKDATASIG ECDSA w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr other key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG Schnorr mismatched key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_1 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG, "CHECKDATASIG Schnorr other message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIG << OP_NOT, "CHECKDATASIG Schnorr wrong message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); @@ -1763,65 +1763,65 @@ TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_CHECKDATASIGVERIFY)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ neither STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigSchnorr(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {}) .ScriptError(SCRIPT_ERR_SIG_DER)); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ STRICTENC", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_VERIFY_STRICTENC) + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back( TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ENABLE_SCHNORR | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY ECDSA w/ STRICTENC,SCHNORR", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigECDSA(keys.key0, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr other key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey0) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr mismatched key", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {}) @@ -1829,14 +1829,14 @@ tests.push_back(TestBuilder(CScript() << OP_1 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr other message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1})); tests.push_back(TestBuilder(CScript() << OP_0 << ToByteVector(keys.pubkey1) << OP_CHECKDATASIGVERIFY << OP_1, "CHECKDATASIGVERIFY Schnorr wrong message", - SCRIPT_ENABLE_CHECKDATASIG | + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ENABLE_SCHNORR | SCRIPT_VERIFY_STRICTENC) .PushDataSigSchnorr(keys.key1, {1}) diff --git a/src/test/scriptflags.cpp b/src/test/scriptflags.cpp --- a/src/test/scriptflags.cpp +++ b/src/test/scriptflags.cpp @@ -31,7 +31,7 @@ {"COMPRESSED_PUBKEYTYPE", SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE}, {"SIGHASH_FORKID", SCRIPT_ENABLE_SIGHASH_FORKID}, {"REPLAY_PROTECTION", SCRIPT_ENABLE_REPLAY_PROTECTION}, - {"CHECKDATASIG", SCRIPT_ENABLE_CHECKDATASIG}, + {"CHECKDATASIG_SIGOPS", SCRIPT_VERIFY_CHECKDATASIG_SIGOPS}, {"SCHNORR", SCRIPT_ENABLE_SCHNORR}, {"ALLOW_SEGWIT_RECOVERY", SCRIPT_ALLOW_SEGWIT_RECOVERY}, }; diff --git a/src/test/sigcache_tests.cpp b/src/test/sigcache_tests.cpp --- a/src/test/sigcache_tests.cpp +++ b/src/test/sigcache_tests.cpp @@ -38,7 +38,7 @@ SCRIPT_VERIFY_CHECKSEQUENCEVERIFY | SCRIPT_VERIFY_MINIMALIF | SCRIPT_VERIFY_NULLFAIL | SCRIPT_VERIFY_COMPRESSED_PUBKEYTYPE | SCRIPT_ENABLE_SIGHASH_FORKID | SCRIPT_ENABLE_REPLAY_PROTECTION | - SCRIPT_ENABLE_CHECKDATASIG | SCRIPT_ALLOW_SEGWIT_RECOVERY; + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS | SCRIPT_ALLOW_SEGWIT_RECOVERY; /* We will be testing that these flags DO affect the cache entry. The expected * behaviour is that flags which are not explicitly listed as invariant in * script/sigcache.cpp will affect the cache entry. Here we will thus enforce diff --git a/src/test/sigopcount_tests.cpp b/src/test/sigopcount_tests.cpp --- a/src/test/sigopcount_tests.cpp +++ b/src/test/sigopcount_tests.cpp @@ -31,9 +31,9 @@ void CheckScriptSigOps(const CScript &script, uint32_t accurate_sigops, uint32_t inaccurate_sigops, uint32_t datasigops) { const uint32_t nodatasigflags = - STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_ENABLE_CHECKDATASIG; + STANDARD_SCRIPT_VERIFY_FLAGS & ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; const uint32_t datasigflags = - STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_ENABLE_CHECKDATASIG; + STANDARD_SCRIPT_VERIFY_FLAGS | SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; BOOST_CHECK_EQUAL(script.GetSigOpCount(nodatasigflags, false), inaccurate_sigops); @@ -94,11 +94,11 @@ scriptSig2 << OP_1 << ToByteVector(dummy) << ToByteVector(dummy) << Serialize(s3); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount((STANDARD_SCRIPT_VERIFY_FLAGS & - ~SCRIPT_ENABLE_CHECKDATASIG), + ~SCRIPT_VERIFY_CHECKDATASIG_SIGOPS), scriptSig2), 3U); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(STANDARD_SCRIPT_VERIFY_FLAGS | - SCRIPT_ENABLE_CHECKDATASIG, + SCRIPT_VERIFY_CHECKDATASIG_SIGOPS, scriptSig2), 3U); BOOST_CHECK_EQUAL(p2sh.GetSigOpCount(SCRIPT_VERIFY_NONE, scriptSig2), 0U); diff --git a/src/validation.cpp b/src/validation.cpp --- a/src/validation.cpp +++ b/src/validation.cpp @@ -715,7 +715,7 @@ } if (IsMagneticAnomalyEnabledForCurrentBlock(config)) { - extraFlags |= SCRIPT_ENABLE_CHECKDATASIG; + extraFlags |= SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; } if (IsGreatWallEnabledForCurrentBlock(config)) { @@ -1660,7 +1660,7 @@ // alternative. We also start enforcing push only signatures and // clean stack. if (IsMagneticAnomalyEnabled(config, pChainTip)) { - flags |= SCRIPT_ENABLE_CHECKDATASIG; + flags |= SCRIPT_VERIFY_CHECKDATASIG_SIGOPS; flags |= SCRIPT_VERIFY_SIGPUSHONLY; flags |= SCRIPT_VERIFY_CLEANSTACK; }