summaryrefslogtreecommitdiffstats
path: root/crypto/bn/bn_rand.c
diff options
context:
space:
mode:
authorUlf Möller <ulf@openssl.org>2000-01-13 20:59:17 +0000
committerUlf Möller <ulf@openssl.org>2000-01-13 20:59:17 +0000
commiteb952088f0d5da59e569ae2aa33e9b96bc3b586d (patch)
tree1d722a423148a6b568a1e6d42f01943aed6cfb2a /crypto/bn/bn_rand.c
parent22e219d90f1ea5d3b2f4abb72c846a436ea33eff (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.c5
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)