From 3106fc13ca16d1b117952feb2b532bb41c633ecb Mon Sep 17 00:00:00 2001 From: Daniel Cousens Date: Sat, 22 Aug 2015 12:31:32 +1000 Subject: [PATCH] script: refactor isCanonicalPubKey to bitcoin-core equivalent --- src/script.js | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/script.js b/src/script.js index f4f096c..d799b5b 100644 --- a/src/script.js +++ b/src/script.js @@ -118,18 +118,17 @@ function decompile (buffer) { function isCanonicalPubKey (buffer) { if (!Buffer.isBuffer(buffer)) return false - - try { - ecurve.Point.decodeFrom(curve, buffer) - } catch (e) { - if (!(e.message.match(/Invalid sequence (length|tag)/))) { - throw e - } - - return false + if (buffer.length < 33) return false + + switch (buffer[0]) { + case 0x02: + case 0x03: + return buffer.length === 33 + case 0x04: + return buffer.length === 65 } - return true + return false } function isCanonicalSignature (buffer) {