From 7223a386c0b931df47e3f3b3479bc2ce25f8e797 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Fri, 26 Jan 2018 12:08:26 -0300 Subject: [PATCH 1/4] update elliptic to 6.4 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cb9fca3..b8d5b1c 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ "version": "0.3.2", "dependencies": { "bs58": "^2.0.0", - "elliptic": "=1.0.0", + "elliptic": "=6.4.0", "secp256k1": "=1.1.5" }, "devDependencies": { From cc517c9561495cc8721411bf36b807ebd517e4a5 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Fri, 26 Jan 2018 16:35:42 -0300 Subject: [PATCH 2/4] fix init api --- lib/bitauth-browserify.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/bitauth-browserify.js b/lib/bitauth-browserify.js index e3f8d7a..5524e53 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(); From 01d9730a1dabec9af0f9b1d22bfa115c3932d663 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Mon, 29 Jan 2018 12:07:32 -0300 Subject: [PATCH 3/4] fix verify + change to phantomjs browser --- karma.conf.js | 4 ++-- lib/bitauth-browserify.js | 4 ++-- lib/bitauth-common.js | 3 +++ package.json | 15 ++++++++------- 4 files changed, 15 insertions(+), 11 deletions(-) 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 5524e53..956524a 100644 --- a/lib/bitauth-browserify.js +++ b/lib/bitauth-browserify.js @@ -19,7 +19,7 @@ BitAuth._getPublicKeyFromPrivateKey = function(privkey) { } else { privKeyString = privkey; } - var keys = ecdsa.keyFromPrivate(privKeyString, 'hex') + var keys = ecdsa.keyFromPrivate(privKeyString, 'hex'); // compressed public key var pubKey = keys.getPublic(); @@ -42,7 +42,7 @@ BitAuth._sign = function(hashBuffer, privkey) { }; 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 b8d5b1c..b7c9189 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "dependencies": { "bs58": "^2.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" }, From 93563d8c39cdbef2e8583eb373ad7da4c651d995 Mon Sep 17 00:00:00 2001 From: Matias Alejo Garcia Date: Mon, 29 Jan 2018 13:23:13 -0300 Subject: [PATCH 4/4] fix sign input --- lib/bitauth-browserify.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/bitauth-browserify.js b/lib/bitauth-browserify.js index 956524a..4895a02 100644 --- a/lib/bitauth-browserify.js +++ b/lib/bitauth-browserify.js @@ -36,7 +36,8 @@ 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; };