diff --git a/karma.conf.js b/karma.conf.js index 9a6ca1a..c2c9d5c 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -3,7 +3,7 @@ module.exports = function(config) { config.set({ - browsers: ['Firefox'], + browsers: ['PhantomJS'], frameworks: ['mocha'], singleRun: true, files: [ @@ -11,7 +11,7 @@ module.exports = function(config) { ], plugins: [ 'karma-mocha', - 'karma-firefox-launcher' + 'karma-phantomjs-launcher' ] }); diff --git a/lib/bitauth-browserify.js b/lib/bitauth-browserify.js index e3f8d7a..4895a02 100644 --- a/lib/bitauth-browserify.js +++ b/lib/bitauth-browserify.js @@ -1,7 +1,7 @@ 'use strict'; -var elliptic = require('elliptic'); -var ecdsa = new elliptic.ec(elliptic.curves.secp256k1); +var EC = require('elliptic').ec; +var ecdsa = new EC('secp256k1'); var BitAuth = require('./bitauth-common'); @@ -19,7 +19,7 @@ BitAuth._getPublicKeyFromPrivateKey = function(privkey) { } else { privKeyString = privkey; } - var keys = ecdsa.keyPair(privkey, 'hex'); + var keys = ecdsa.keyFromPrivate(privKeyString, 'hex'); // compressed public key var pubKey = keys.getPublic(); @@ -36,13 +36,14 @@ BitAuth._getPublicKeyFromPrivateKey = function(privkey) { }; BitAuth._sign = function(hashBuffer, privkey) { - var signature = ecdsa.sign(hashBuffer.toString('hex'), privkey); + var keys = ecdsa.keyFromPrivate(privkey, 'hex'); + var signature = keys.sign(hashBuffer.toString('hex')); var hexsignature = signature.toDER('hex'); return hexsignature; }; BitAuth._verifySignature = function(hashBuffer, signatureBuffer, pubkey) { - return ecdsa.verify(hashBuffer.toString('hex'), signatureBuffer, pubkey); + return ecdsa.verify(hashBuffer.toString('hex'), signatureBuffer, pubkey, 'hex'); }; module.exports = BitAuth; diff --git a/lib/bitauth-common.js b/lib/bitauth-common.js index 195ab2e..dbc756f 100644 --- a/lib/bitauth-common.js +++ b/lib/bitauth-common.js @@ -104,13 +104,16 @@ BitAuth.sign = function(data, privkey) { */ BitAuth.verifySignature = function(data, pubkey, hexsignature, callback) { var dataBuffer; + if (!Buffer.isBuffer(data)) { dataBuffer = new Buffer(data, 'utf8'); } else { dataBuffer = data; } + var hashBuffer = crypto.createHash('sha256').update(dataBuffer).digest(); var signatureBuffer; + if (!Buffer.isBuffer(hexsignature)) { signatureBuffer = new Buffer(hexsignature, 'hex'); } else { diff --git a/package.json b/package.json index cb9fca3..b7c9189 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "version": "0.3.2", "dependencies": { "bs58": "^2.0.0", - "elliptic": "=1.0.0", + "elliptic": "=6.4.0", + "karma-chrome-launcher": "^2.2.0", "secp256k1": "=1.1.5" }, "devDependencies": { @@ -41,16 +42,16 @@ "bundle-collapser": "^1.2.1", "chai": "=1.9.1", "express": "^4.13.3", - "gulp": "^3.8.10", + "gulp": "^3.9.1", "gulp-bump": "^0.1.11", - "gulp-git": "^0.5.5", + "gulp-git": "^2.5.1", "gulp-mocha": "^2.0.0", "gulp-shell": "^0.2.10", - "karma": "^0.13.9", - "karma-firefox-launcher": "^0.1.4", - "karma-mocha": "^0.1.9", - "mocha": "~1.20.1", - "request": "^2.65.0", + "karma": "^2.0.0", + "karma-mocha": "^1.3.0", + "karma-phantomjs-launcher": "^1.0.4", + "mocha": "^5.0.0", + "request": "^2.83.0", "run-sequence": "^1.0.2", "uglify-js": "~2.4.14" },