Skip to content

Commit 252336a

Browse files
committed
ECPair: fix modulo bias in makeRandom
1 parent e5e2425 commit 252336a

File tree

1 file changed

+7
-4
lines changed

1 file changed

+7
-4
lines changed

src/ecpair.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,11 +105,14 @@ ECPair.makeRandom = function (options) {
105105
options = options || {}
106106

107107
var rng = options.rng || randomBytes
108-
var buffer = rng(32)
109-
typeforce(types.Buffer256bit, buffer)
110108

111-
var d = BigInteger.fromBuffer(buffer)
112-
d = d.mod(secp256k1.n)
109+
var d
110+
do {
111+
var buffer = rng(32)
112+
typeforce(types.Buffer256bit, buffer)
113+
114+
d = BigInteger.fromBuffer(buffer)
115+
} while (d.compareTo(secp256k1.n) > 0)
113116

114117
return new ECPair(d, null, options)
115118
}

0 commit comments

Comments
 (0)