diff --git a/src/message.js b/src/message.js index 943d82b..4bb96a3 100644 --- a/src/message.js +++ b/src/message.js @@ -35,14 +35,19 @@ function sign(privKey, message, network) { } // TODO: network could be implied from address -function verify(address, signatureBuffer, message, network) { +function verify(address, signature, message, network) { + if (!Buffer.isBuffer(signature)) { + signature = new Buffer(signature, 'base64') + } + if (address instanceof Address) { address = address.toString() } + network = network || networks.bitcoin var hash = magicHash(message, network) - var parsed = ECSignature.parseCompact(signatureBuffer) + var parsed = ECSignature.parseCompact(signature) var e = BigInteger.fromBuffer(hash) var Q = ecdsa.recoverPubKey(ecparams, e, parsed.signature, parsed.i) diff --git a/test/ecpubkey.js b/test/ecpubkey.js index 62609ef..35302f5 100644 --- a/test/ecpubkey.js +++ b/test/ecpubkey.js @@ -91,13 +91,13 @@ describe('ECPubKey', function() { it('verifies a valid signature', function() { var hash = crypto.sha256(fixtures.message) - assert.ok(pubKey.verify(hash, signature)) + assert(pubKey.verify(hash, signature)) }) it('doesn\'t verify the wrong signature', function() { var hash = crypto.sha256('mushrooms') - assert.ok(!pubKey.verify(hash, signature)) + assert(!pubKey.verify(hash, signature)) }) }) }) diff --git a/test/message.js b/test/message.js index d69a41f..0161e1b 100644 --- a/test/message.js +++ b/test/message.js @@ -26,29 +26,25 @@ describe('Message', function() { var network = networks[f.network] var address = Address.fromBase58Check(f.address) - var signature = new Buffer(f.signature, 'base64') - assert.ok(Message.verify(address, signature, f.message, network)) + assert(Message.verify(address, f.signature, f.message, network)) }) fixtures.valid.verify.forEach(function(f) { it('verifies a valid signature for \"' + f.message + '\" (' + f.network + ')', function() { var network = networks[f.network] - var signature = new Buffer(f.signature, 'base64') - assert.ok(Message.verify(f.address, signature, f.message, network)) + var signature = f.signature + assert(Message.verify(f.address, f.signature, f.message, network)) if (f.compressed) { - var compressedSignature = new Buffer(f.compressed.signature, 'base64') - - assert.ok(Message.verify(f.compressed.address, compressedSignature, f.message, network)) + assert(Message.verify(f.compressed.address, f.compressed.signature, f.message, network)) } }) }) fixtures.invalid.verify.forEach(function(f) { it(f.description, function() { - var signature = new Buffer(f.signature, 'base64') - assert.ok(!Message.verify(f.address, signature, f.message)) + assert(!Message.verify(f.address, f.signature, f.message)) }) }) }) diff --git a/test/wallet.js b/test/wallet.js index 8f18241..9c002fe 100644 --- a/test/wallet.js +++ b/test/wallet.js @@ -63,7 +63,7 @@ describe('Wallet', function() { describe('when seed is not specified', function(){ it('generates a seed', function(){ var wallet = new Wallet() - assert.ok(wallet.getMasterKey()) + assert(wallet.getMasterKey()) }) })