提交 e64dceab 编写于 作者: U Ulf Möller

Switch for turning on the predictable "random" number generator.

上级 c9e1fe33
......@@ -130,6 +130,10 @@
#include <openssl/rand.h>
#ifdef BN_DEBUG
# define PREDICT
#endif
/* #define NORAND 1 */
/* #define PREDICT 1 */
......@@ -141,6 +145,10 @@ static long md_count[2]={0,0};
static double entropy=0;
static int initialized=0;
#ifdef PREDICT
int rand_predictable=0;
#endif
const char *RAND_version="RAND" OPENSSL_VERSION_PTEXT;
static void ssleay_rand_cleanup(void);
......@@ -306,6 +314,10 @@ static void ssleay_rand_initialize(void)
FILE *fh;
#endif
#ifdef NORAND
return;
#endif
CRYPTO_w_unlock(CRYPTO_LOCK_RAND);
/* put in some default random data, we need more than just this */
#ifndef GETPID_IS_MEANINGLESS
......@@ -354,13 +366,14 @@ static int ssleay_rand_bytes(unsigned char *buf, int num)
#endif
#ifdef PREDICT
{
static unsigned char val=0;
if (rand_predictable)
{
static unsigned char val=0;
for (i=0; i<num; i++)
buf[i]=val++;
return(1);
}
for (i=0; i<num; i++)
buf[i]=val++;
return(1);
}
#endif
/*
......
......@@ -97,7 +97,7 @@ int RAND_egd(const char *path)
buf[1] = 255;
write(fd, buf, 2);
if (read(fd, buf, 1) != 1) goto err;
if (buf[0] == 0) goto err;
if (buf[0] == 0) goto err;
num = read(fd, buf, 255);
if (num < 1) goto err;
RAND_seed(buf, num);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册