From dbcf2708260a17988d9ad2889e681c6dfce877aa Mon Sep 17 00:00:00 2001 From: "Ryan X. Charles" Date: Tue, 22 Apr 2014 22:43:22 -0300 Subject: [PATCH] use SecureRandom in Key in the browser ...to make sure random numbers are generated securely --- lib/browser/Key.js | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/browser/Key.js b/lib/browser/Key.js index 796819d..f5baea1 100644 --- a/lib/browser/Key.js +++ b/lib/browser/Key.js @@ -1,5 +1,6 @@ var ECKey = require('../../browser/vendor-bundle.js').ECKey; var buffertools = require('buffertools'); +var SecureRandom = require('../SecureRandom'); var Key = function() { this._pub = null; @@ -33,13 +34,17 @@ Object.defineProperty(Key.prototype, 'public', { }); Key.generateSync = function() { - var eck = new ECKey(); + var privbuf = SecureRandom.getRandomBuffer(32); + var privhex = privbuf.toString('hex'); + var eck = new ECKey(privhex); eck.setCompressed(true); var pub = eck.getPub(); - var ret = new Key(); - ret.private = new Buffer(eck.priv.toByteArrayUnsigned()); - ret.public = new Buffer(pub); + ret = new Key(); + ret.private = privbuf; + ret.compressed = true; + ret.public = new Buffer(eck.getPub()); + return ret; };