ECKey: fix modulo bias in makeRandom
This commit is contained in:
parent
d50d49bd29
commit
b89c82b9a6
13
src/eckey.js
13
src/eckey.js
@ -49,12 +49,15 @@ ECKey.fromWIF = function (string) {
|
||||
ECKey.makeRandom = function (compressed, rng) {
|
||||
rng = rng || randomBytes
|
||||
|
||||
var buffer = rng(32)
|
||||
typeForce('Buffer', buffer)
|
||||
assert.equal(buffer.length, 32, 'Expected 256-bit Buffer from RNG')
|
||||
var d
|
||||
|
||||
var d = BigInteger.fromBuffer(buffer)
|
||||
d = d.mod(ECKey.curve.n)
|
||||
do {
|
||||
var buffer = rng(32)
|
||||
typeForce('Buffer', buffer)
|
||||
assert.equal(buffer.length, 32, 'Expected 256-bit Buffer from RNG')
|
||||
|
||||
d = BigInteger.fromBuffer(buffer)
|
||||
} while (d.compareTo(ECKey.curve) >= 0)
|
||||
|
||||
return new ECKey(d, compressed)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user