Browse Source

ECKey: fix modulo bias in makeRandom

Daniel Cousens 10 years ago
parent
commit
b89c82b9a6
  1. 7
      src/eckey.js

7
src/eckey.js

@ -49,12 +49,15 @@ ECKey.fromWIF = function (string) {
ECKey.makeRandom = function (compressed, rng) { ECKey.makeRandom = function (compressed, rng) {
rng = rng || randomBytes rng = rng || randomBytes
var d
do {
var buffer = rng(32) var buffer = rng(32)
typeForce('Buffer', buffer) typeForce('Buffer', buffer)
assert.equal(buffer.length, 32, 'Expected 256-bit Buffer from RNG') assert.equal(buffer.length, 32, 'Expected 256-bit Buffer from RNG')
var d = BigInteger.fromBuffer(buffer) d = BigInteger.fromBuffer(buffer)
d = d.mod(ECKey.curve.n) } while (d.compareTo(ECKey.curve) >= 0)
return new ECKey(d, compressed) return new ECKey(d, compressed)
} }

Loading…
Cancel
Save