diff --git a/index.js b/index.js index 1600cab..e457624 100644 --- a/index.js +++ b/index.js @@ -1,6 +1,7 @@ var assert = require('assert') var crypto = require('crypto') var pbkdf2 = require('pbkdf2-compat').pbkdf2Sync +var randomBytes = require('randombytes') var unorm = require('unorm') var DEFAULT_WORDLIST = require('./wordlists/en.json') @@ -69,7 +70,7 @@ function entropyToMnemonic(entropy, wordlist) { function generateMnemonic(strength, rng, wordlist) { strength = strength || 128 - rng = rng || crypto.randomBytes + rng = rng || randomBytes var hex = rng(strength / 8).toString('hex') return entropyToMnemonic(hex, wordlist) diff --git a/package.json b/package.json index 7b373eb..679cd16 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "license": "ISC", "dependencies": { "pbkdf2-compat": "^2.0.1", + "randombytes": "^2.0.1", "unorm": "^1.3.3" }, "devDependencies": { diff --git a/test/index.js b/test/index.js index 033f2a5..9cbff2c 100644 --- a/test/index.js +++ b/test/index.js @@ -1,7 +1,5 @@ var assert = require('assert') -var crypto = require('crypto') var BIP39 = require('../index.js') -var sinon = require('sinon') var wordlists = { english: require('../wordlists/en.json'), @@ -51,13 +49,11 @@ describe('BIP39', function() { describe('generateMnemonic', function() { vectors.english.forEach(function(v, i) { - it('works for tests vector ' + i, sinon.test(function() { - this.mock(crypto).expects('randomBytes') - .exactly(1) - .onCall(0).returns(new Buffer(v[0], 'hex')) + it('works for tests vector ' + i, function() { + function rng() { return new Buffer(v[0], 'hex') } - assert.equal(BIP39.generateMnemonic(), v[1]) - })) + assert.equal(BIP39.generateMnemonic(undefined, rng), v[1]) + }) }) it('can vary generated entropy bit length', function() {