From 645a3a59b287a09624770f66d0f2bfb35fc91b35 Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Tue, 12 Jan 2016 02:08:07 -0800 Subject: [PATCH] minor. recover keys for isMultisig? --- lib/bcoin/script.js | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/lib/bcoin/script.js b/lib/bcoin/script.js index 80fec05b..99882b55 100644 --- a/lib/bcoin/script.js +++ b/lib/bcoin/script.js @@ -1196,8 +1196,6 @@ script.standardInput = function standardInput(s) { }; script.isPubkeyInput = function isPubkeyInput(s, key, tx, i) { - var res; - s = script.subscript(s); if (s.length !== 1 || !Array.isArray(s[0])) @@ -1237,7 +1235,7 @@ script.isPubkeyhashInput = function isPubkeyhashInput(s, key) { }; script.isMultisigInput = function isMultisigInput(s, keys, tx, i) { - var i, res, o; + var i, o; // We need to rule out scripthash // because it may look like multisig @@ -1268,6 +1266,16 @@ script.isMultisigInput = function isMultisigInput(s, keys, tx, i) { return script.verify(s, o, tx, i); } + // We also also try to recover the keys from the signatures. + // var recovered = []; + // for (i = 1; i < s.length; i++) { + // var sig = s[i]; + // var prev = script.redeem(keys, s.length - 1, keys.length); + // var msg = tx.signatureHash(i, prev, s[s.length - 1]); + // var key = bcoin.ecdsa.recoverPubKey(msg, sig.slice(0, -1), 0).toArray(); + // recovered.push(key); + // } + return true; }; @@ -1291,10 +1299,7 @@ script.isScripthashInput = function isScripthashInput(s, data) { // P2SH redeem scripts can be nonstandard: make // it easier for other functions to parse this. - redeem = script.decode(raw); - redeem = script.subscript(redeem); - if (script.lockTime(redeem)) - redeem = redeem.slice(3); + redeem = script.normalize(raw); // Get the "real" scriptSig s = s.slice(0, -1);