fix calls to isLowDER.

This commit is contained in:
Christopher Jeffrey 2016-01-17 21:23:19 -08:00
parent 575843acef
commit 6b36bad41d

View File

@ -791,7 +791,7 @@ script.execute = function execute(data, stack, tx, index, flags, recurse) {
if (flags.strictder !== false) {
if (!script.isValidSignature(sig))
return false;
if (!script.isLowDER(sig))
if (!script.isLowDER(sig.slice(0, -1)))
return false;
}
@ -862,7 +862,7 @@ script.execute = function execute(data, stack, tx, index, flags, recurse) {
if (flags.strictder !== false) {
if (!script.isValidSignature(sig))
return false;
if (!script.isLowDER(sig))
if (!script.isLowDER(sig.slice(0, -1)))
return false;
}
@ -1853,15 +1853,11 @@ script.isValidSignature = function isValidSignature(sig, allowZero) {
return true;
};
script.isLowDER = function isLowDER(sig, type) {
script.isLowDER = function isLowDER(sig) {
var half = bcoin.ecdsa.n.ushrn(1);
if (!sig.s) {
assert(utils.isBuffer(sig));
if (sig[sig.length - 1] === type)
sig = sig.slice(0, -1);
try {
sig = new bcoin.signature(sig);
} catch (e) {