67 | 67 |
{
|
68 | 68 |
STRLEN in_len=0;
|
69 | 69 |
unsigned char *in_buffer=NULL;
|
70 | |
unsigned char entropy_buf[32];
|
|
70 |
unsigned char entropy_buf[40];
|
71 | 71 |
int rv;
|
72 | 72 |
if (SvOK(entropy)) {
|
73 | 73 |
in_buffer = (unsigned char *) SvPVbyte(entropy, in_len);
|
|
75 | 75 |
if (rv != CRYPT_OK) croak("FATAL: PRNG_add_entropy failed: %s", error_to_string(rv));
|
76 | 76 |
}
|
77 | 77 |
else {
|
78 | |
if (rng_get_bytes(entropy_buf, 32, NULL) != 32) croak("FATAL: rng_get_bytes failed");
|
79 | |
rv = self->desc->add_entropy(entropy_buf, 32, &self->state);
|
|
78 |
if (rng_get_bytes(entropy_buf, 40, NULL) != 40) croak("FATAL: rng_get_bytes failed");
|
|
79 |
rv = self->desc->add_entropy(entropy_buf, 40, &self->state);
|
80 | 80 |
if (rv != CRYPT_OK) croak("FATAL: PRNG_add_entropy failed: %s", error_to_string(rv));
|
81 | 81 |
}
|
82 | 82 |
rv = self->desc->ready(&self->state);
|
|
89 | 89 |
{
|
90 | 90 |
int rv_len;
|
91 | 91 |
unsigned char *rdata;
|
92 | |
unsigned char entropy_buf[32];
|
|
92 |
unsigned char entropy_buf[40];
|
93 | 93 |
|
94 | 94 |
if (self->last_pid != curpid) {
|
95 | |
rng_get_bytes(entropy_buf, 32, NULL);
|
96 | |
self->desc->add_entropy(entropy_buf, 32, &self->state);
|
|
95 |
if (rng_get_bytes(entropy_buf, 40, NULL) != 40) croak("FATAL: rng_get_bytes failed");
|
|
96 |
self->desc->add_entropy(entropy_buf, 40, &self->state);
|
97 | 97 |
self->desc->ready(&self->state);
|
98 | 98 |
self->last_pid = curpid;
|
99 | 99 |
}
|
|
117 | 117 |
{
|
118 | 118 |
int i;
|
119 | 119 |
unsigned char rdata[4];
|
120 | |
unsigned char entropy_buf[32];
|
|
120 |
unsigned char entropy_buf[40];
|
121 | 121 |
|
122 | 122 |
if (self->last_pid != curpid) {
|
123 | |
rng_get_bytes(entropy_buf, 32, NULL);
|
124 | |
self->desc->add_entropy(entropy_buf, 32, &self->state);
|
|
123 |
if (rng_get_bytes(entropy_buf, 40, NULL) != 40) croak("FATAL: rng_get_bytes failed");
|
|
124 |
self->desc->add_entropy(entropy_buf, 40, &self->state);
|
125 | 125 |
self->desc->ready(&self->state);
|
126 | 126 |
self->last_pid = curpid;
|
127 | 127 |
}
|
|
140 | 140 |
int i;
|
141 | 141 |
unsigned long a, b; /* 32bit is enough */
|
142 | 142 |
unsigned char rdata[7]; /* for double we need 53 bits */
|
143 | |
unsigned char entropy_buf[32];
|
|
143 |
unsigned char entropy_buf[40];
|
144 | 144 |
NV limit;
|
145 | 145 |
|
146 | 146 |
if (self->last_pid != curpid) {
|
147 | |
rng_get_bytes(entropy_buf, 32, NULL);
|
148 | |
self->desc->add_entropy(entropy_buf, 32, &self->state);
|
|
147 |
if (rng_get_bytes(entropy_buf, 40, NULL) != 40) croak("FATAL: rng_get_bytes failed");
|
|
148 |
self->desc->add_entropy(entropy_buf, 40, &self->state);
|
149 | 149 |
self->desc->ready(&self->state);
|
150 | 150 |
self->last_pid = curpid;
|
151 | 151 |
}
|