mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-22 14:57:02 +01:00
* random.c (mix_pool): Removed the failsafe stuff again. It makes
the code more complicate and may give the path to more bugs.
This commit is contained in:
parent
dca36f6252
commit
05705bcb1c
@ -1,3 +1,8 @@
|
|||||||
|
2002-02-14 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* random.c (mix_pool): Removed the failsafe stuff again. It makes
|
||||||
|
the code more complicate and may give the path to more bugs.
|
||||||
|
|
||||||
2002-02-10 Werner Koch <wk@gnupg.org>
|
2002-02-10 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* random.c (mix_pool): Carry an extra failsafe_digest buffer
|
* random.c (mix_pool): Carry an extra failsafe_digest buffer
|
||||||
|
@ -57,7 +57,6 @@
|
|||||||
#include "random.h"
|
#include "random.h"
|
||||||
#include "rand-internal.h"
|
#include "rand-internal.h"
|
||||||
#include "dynload.h"
|
#include "dynload.h"
|
||||||
#include "cipher.h" /* only used for the rmd160_hash_buffer() prototype */
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef RAND_MAX /* for SunOS */
|
#ifndef RAND_MAX /* for SunOS */
|
||||||
@ -101,9 +100,6 @@ static int did_initial_extra_seeding;
|
|||||||
static char *seed_file_name;
|
static char *seed_file_name;
|
||||||
static int allow_seed_file_update;
|
static int allow_seed_file_update;
|
||||||
|
|
||||||
static unsigned char failsafe_digest[DIGESTLEN];
|
|
||||||
static int failsafe_digest_valid;
|
|
||||||
|
|
||||||
static int secure_alloc;
|
static int secure_alloc;
|
||||||
static int quick_test;
|
static int quick_test;
|
||||||
static int faked_rng;
|
static int faked_rng;
|
||||||
@ -263,11 +259,6 @@ mix_pool(byte *pool)
|
|||||||
memcpy(hashbuf+DIGESTLEN, pool, BLOCKLEN-DIGESTLEN);
|
memcpy(hashbuf+DIGESTLEN, pool, BLOCKLEN-DIGESTLEN);
|
||||||
rmd160_mixblock( &md, hashbuf);
|
rmd160_mixblock( &md, hashbuf);
|
||||||
memcpy(pool, hashbuf, 20 );
|
memcpy(pool, hashbuf, 20 );
|
||||||
if (failsafe_digest_valid && (char*)pool == rndpool)
|
|
||||||
{
|
|
||||||
for (i=0; i < 20; i++)
|
|
||||||
pool[i] ^= failsafe_digest[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
p = pool;
|
p = pool;
|
||||||
for( n=1; n < POOLBLOCKS; n++ ) {
|
for( n=1; n < POOLBLOCKS; n++ ) {
|
||||||
@ -288,12 +279,7 @@ mix_pool(byte *pool)
|
|||||||
rmd160_mixblock( &md, hashbuf);
|
rmd160_mixblock( &md, hashbuf);
|
||||||
memcpy(p, hashbuf, 20 );
|
memcpy(p, hashbuf, 20 );
|
||||||
}
|
}
|
||||||
if ((char*)pool == rndpool)
|
burn_stack (384); /* for the rmd160_mixblock() */
|
||||||
{
|
|
||||||
rmd160_hash_buffer (failsafe_digest, pool, POOLSIZE);
|
|
||||||
failsafe_digest_valid = 1;
|
|
||||||
}
|
|
||||||
burn_stack (384); /* for the rmd160_mixblock(), rmd160_hash_buffer */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user