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 @@ -639,6 +639,10 @@ ["0x02 0x0000 0", "ADD DROP 1", "", "OK"], ["0 0x02 0x0000", "SUB DROP 1", "", "OK"], ["0x02 0x0000 0", "SUB DROP 1", "", "OK"], +["0 0x02 0x0100", "DIV DROP 1", "", "OK"], +["0x02 0x0000 1", "DIV DROP 1", "", "OK"], +["0 0x02 0x0100", "MOD DROP 1", "", "OK"], +["0x02 0x0000 1", "MOD DROP 1", "", "OK"], ["0 0x02 0x0000", "BOOLAND DROP 1", "", "OK"], ["0x02 0x0000 0", "BOOLAND DROP 1", "", "OK"], ["0 0x02 0x0000", "BOOLOR DROP 1", "", "OK"], @@ -672,6 +676,12 @@ ["0 0 0x02 0x0000", "CHECKMULTISIGVERIFY 1", "", "OK"], ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", "", "OK"], +["0x02 0x0000 0x02 0x0100", "SPLIT 2DROP 1", "", "OK"], +["0x16 0x11111111111111111111111111111111111111110000 0x02 0x1400", "NUM2BIN DROP 1", "", "OK"], + +["0x02 0x0000", "CHECKLOCKTIMEVERIFY DROP 1", "CHECKLOCKTIMEVERIFY", "UNSATISFIED_LOCKTIME", "fails because final sequence, not from nonminimal encoding"], +["0x02 0x0000", "CHECKSEQUENCEVERIFY DROP 1", "CHECKSEQUENCEVERIFY", "UNSATISFIED_LOCKTIME", "fails because tx version < 2, not from nonminimal encoding"], + ["While not really correctly DER encoded, the empty signature is allowed by"], ["STRICTENC to provide a compact way to provide a delibrately invalid signature."], ["0", "0x21 0x02865c40293a680cb9c020e7b1e106d8c1916d3cef99aa431a56d253e69256dac0 CHECKSIG NOT", "STRICTENC", "OK"], @@ -938,7 +948,8 @@ ["0x10 0x0102030405060708090A0B0C0D0E0F10 DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT 0x08 0x0102030405060708 CAT 520", "NUM2BIN 0x10 0x0102030405060708090A0B0C0D0E0F10 DUP CAT DUP CAT DUP CAT DUP CAT DUP CAT 0x08 0x0102030405060708 CAT EQUAL", "P2SH,STRICTENC", "OK", "520 byte 1st operand"], ["0x05 0x0000000000 5", "NUM2BIN 0x05 0x0000000000 EQUAL", "P2SH,STRICTENC", "OK", "1st operand not minimally encoded"], ["0x05 0x0001000000 3", "NUM2BIN 0x03 0x000100 EQUAL", "P2SH,STRICTENC", "OK", "1st operand can shrink"], -["1 0x05 0x0500000000", "NUM2BIN", "P2SH,STRICTENC", "UNKNOWN_ERROR", "2nd operand not minimally encoded"], +["1 0x03 0x050000", "NUM2BIN", "P2SH,STRICTENC", "OK", "2nd operand not minimally encoded"], +["1 0x05 0x0500000000", "NUM2BIN", "P2SH,STRICTENC", "UNKNOWN_ERROR", "2nd operand > 4 bytes"], ["0x04 0xabcdef42 0x05 0xabcdef4243", "NUM2BIN", "P2SH,STRICTENC", "UNKNOWN_ERROR", "2nd operand > 4 bytes"], ["BIN2NUM"], @@ -1497,6 +1508,10 @@ ["0x02 0x0000 0", "ADD DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0 0x02 0x0000", "SUB DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0x02 0x0000 0", "SUB DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0 0x02 0x0100", "DIV DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0x02 0x0000 1", "DIV DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0 0x02 0x0100", "MOD DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0x02 0x0000 1", "MOD DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0 0x02 0x0000", "BOOLAND DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0x02 0x0000 0", "BOOLAND DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0 0x02 0x0000", "BOOLOR DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], @@ -1530,6 +1545,16 @@ ["0 0 0x02 0x0000", "CHECKMULTISIGVERIFY 1", "MINIMALDATA", "UNKNOWN_ERROR"], ["0 0x02 0x0000 0", "CHECKMULTISIGVERIFY 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0x02 0x0000 1", "SPLIT 2DROP 1", "MINIMALDATA", "OK", "first operand isn't a number, so no encoding rules"], +["0x02 0x0000 0x02 0x0100", "SPLIT 2DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], +["0x16 0x11111111111111111111111111111111111111110000 0x01 0x14", "NUM2BIN DROP 1", "MINIMALDATA", "OK", "first operand is an unlimited number and exempted from length/minimal encoding rules"], +["0x16 0x11111111111111111111111111111111111111110000 0x02 0x1400", "NUM2BIN DROP 1", "MINIMALDATA", "UNKNOWN_ERROR"], + +["0x16 0xffffff7f000000000000000000000000000000000000", "BIN2NUM DROP 1", "MINIMALDATA", "OK", "first operand is a number limited in magnitude but exempted from length/minimal encoding rules"], + +["0x02 0x0000", "CHECKLOCKTIMEVERIFY DROP 1", "MINIMALDATA,CHECKLOCKTIMEVERIFY", "UNKNOWN_ERROR"], +["0x02 0x0000", "CHECKSEQUENCEVERIFY DROP 1", "MINIMALDATA,CHECKSEQUENCEVERIFY", "UNKNOWN_ERROR"], + ["64/65-byte sig length tests"], ["0x41 0x303e021d4444444444444444444444444444444444444444444444444444444444021d444444444444444444444444444444444444444444444444444444444401", "0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKSIG NOT", "", "OK"], ["0x40 0x303e021d4444444444444444444444444444444444444444444444444444444444021d4444444444444444444444444444444444444444444444444444444444", "0 0x21 0x0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798 CHECKDATASIG NOT", "", "OK"],