diff options
author | Ulf Möller <ulf@openssl.org> | 2000-01-14 02:31:32 +0000 |
---|---|---|
committer | Ulf Möller <ulf@openssl.org> | 2000-01-14 02:31:32 +0000 |
commit | f2b86c955cb6c3c3864b38850d573e3aa6659a33 (patch) | |
tree | 83de04a2a08c73f847392bbb190ccff1475beccd | |
parent | 11afb40c011a789396d4e06682f73f55c33dff8a (diff) |
minor change for the prng
-rw-r--r-- | crypto/rand/md_rand.c | 12 | ||||
-rw-r--r-- | rsaref/rsaref.c | 3 |
2 files changed, 7 insertions, 8 deletions
diff --git a/crypto/rand/md_rand.c b/crypto/rand/md_rand.c index d727fff924..5eef93d4bd 100644 --- a/crypto/rand/md_rand.c +++ b/crypto/rand/md_rand.c @@ -360,15 +360,13 @@ static int ssleay_rand_bytes(unsigned char *buf, int num) */ if ((fh = fopen(DEVRANDOM, "r")) != NULL) { - unsigned char tmpbuf[32]; + unsigned char tmpbuf[ENTROPY_NEEDED]; + int i; - fread((unsigned char *)tmpbuf,1,32,fh); - /* we don't care how many bytes we read, - * we will just copy the 'stack' if there is - * nothing else :-) */ + i=fread((unsigned char *)tmpbuf,1,ENTROPY_NEEDED,fh); fclose(fh); - RAND_seed(tmpbuf,32); - memset(tmpbuf,0,32); + RAND_seed(tmpbuf,i); + memset(tmpbuf,0,i); } #endif #ifdef PURIFY diff --git a/rsaref/rsaref.c b/rsaref/rsaref.c index 55cebc8fcb..ae70feb3e9 100644 --- a/rsaref/rsaref.c +++ b/rsaref/rsaref.c @@ -279,7 +279,8 @@ int RSA_ref_public_encrypt(int len, unsigned char *from, unsigned char *to, R_GetRandomBytesNeeded((unsigned int *)&i,&rnd); while (i > 0) { - RAND_bytes(buf,16); + if (RAND_bytes(buf,16) <= 0) + goto err; R_RandomUpdate(&rnd,buf,(unsigned int)((i>16)?16:i)); i-=16; } |