improve script.isValidSig.

This commit is contained in:
Christopher Jeffrey 2015-12-19 15:26:26 -08:00
parent 2e7892c798
commit 0aff6d7cfe

View File

@ -1073,7 +1073,7 @@ script.isMultisigInput = function isMultisigInput(s, pubs, tx, i) {
return false;
for (i = 1; i < s.length; i++) {
// res = Array.isArray(s[i]) && script.isValidSig(s[i]);
// res = script.isValidSig(s[i]);
res = Array.isArray(s[i]) && 9 <= s[i].length && s[i].length <= 73;
if (!res)
return false;
@ -1097,7 +1097,7 @@ script.isScripthashInput = function isScripthashInput(s, redeem) {
return false;
for (i = 1; i < s.length - 1; i++) {
// res = Array.isArray(s[i]) && script.isValidSig(s[i]);
// res = script.isValidSig(s[i]);
res = Array.isArray(s[i]) && 9 <= s[i].length && s[i].length <= 73;
if (!res)
return false;
@ -1126,7 +1126,7 @@ script.isScripthashInput = function isScripthashInput(s, redeem) {
*
* This function is consensus-critical since BIP66.
*/
script.isValidSig = function(sig) {
script.isValidSig = function(sig, allowZero) {
var lenR, lenS;
if (!Array.isArray(sig))
@ -1134,7 +1134,7 @@ script.isValidSig = function(sig) {
// Empty signature. Not strictly DER encoded, but allowed to provide a
// compact way to provide an invalid signature for use with CHECK(MULTI)SIG
if (sig.length === 0)
if (allowZero && sig.length === 0)
return true;
// Format: 0x30 [total-length] 0x02 [R-length] [R] 0x02 [S-length] [S] [sighash]