diff options
author | Ulf Möller <ulf@openssl.org> | 2000-01-13 20:59:17 +0000 |
---|---|---|
committer | Ulf Möller <ulf@openssl.org> | 2000-01-13 20:59:17 +0000 |
commit | eb952088f0d5da59e569ae2aa33e9b96bc3b586d (patch) | |
tree | 1d722a423148a6b568a1e6d42f01943aed6cfb2a /crypto/bn/bn_rand.c | |
parent | 22e219d90f1ea5d3b2f4abb72c846a436ea33eff (diff) |
Precautions against using the PRNG uninitialized: RAND_bytes() now
returns int (1 = ok, 0 = not seeded). New function RAND_add() is the
same as RAND_seed() but takes an estimate of the entropy as an additional
argument.
Diffstat (limited to 'crypto/bn/bn_rand.c')
-rw-r--r-- | crypto/bn/bn_rand.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/crypto/bn/bn_rand.c b/crypto/bn/bn_rand.c index 91b8e34ae6..b567b43a6f 100644 --- a/crypto/bn/bn_rand.c +++ b/crypto/bn/bn_rand.c @@ -81,9 +81,10 @@ int BN_rand(BIGNUM *rnd, int bits, int top, int bottom) /* make a random number and set the top and bottom bits */ time(&tim); - RAND_seed(&tim,sizeof(tim)); + RAND_add(&tim,sizeof(tim),0); - RAND_bytes(buf,(int)bytes); + if (RAND_bytes(buf,(int)bytes) <= 0) + goto err; if (top) { if (bit == 0) |