* rndw32.c [__CYGWIN32__]: Don't include winioctl.h - it is not required

anymore. (From Werner)

* random.c (read_seed_file,update_random_seed_file): Use binary mode for
__CYGWIN__. (From Werner)

* blowfish.c (burn_stack), cast5.c (burn_stack), des.c (burn_stack), md5.c
(burn_stack), random.c (burn_stack, read_pool, fast_random_poll),
rijndael.c (burn_stack), rmd160.c (burn_stack), rndegd.c
(rndegd_gather_random), rndlinux.c (rndlinux_gather_random), sha1.c
(burn_stack), tiger.c (burn_stack), twofish.c (burn_stack): Replace
various calls to memset() with the more secure wipememory().
This commit is contained in:
David Shaw 2002-11-06 17:32:37 +00:00
parent 3cb4118b6c
commit c4d58f14e0
14 changed files with 41 additions and 25 deletions

View File

@ -1,3 +1,19 @@
2002-11-06 David Shaw <dshaw@jabberwocky.com>
* rndw32.c [__CYGWIN32__]: Don't include winioctl.h - it is not
required anymore. (From Werner)
* random.c (read_seed_file,update_random_seed_file): Use binary
mode for __CYGWIN__. (From Werner)
* blowfish.c (burn_stack), cast5.c (burn_stack), des.c
(burn_stack), md5.c (burn_stack), random.c (burn_stack, read_pool,
fast_random_poll), rijndael.c (burn_stack), rmd160.c (burn_stack),
rndegd.c (rndegd_gather_random), rndlinux.c
(rndlinux_gather_random), sha1.c (burn_stack), tiger.c
(burn_stack), twofish.c (burn_stack): Replace various calls to
memset() with the more secure wipememory().
2002-11-02 David Shaw <dshaw@jabberwocky.com>
* cipher.c (string_to_cipher_algo), md.c (string_to_digest_algo):

View File

@ -35,6 +35,7 @@
#include <string.h>
#include <assert.h>
#include "types.h"
#include "util.h"
#include "errors.h"
#include "algorithms.h"
@ -282,7 +283,7 @@ burn_stack (int bytes)
{
char buf[64];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -40,6 +40,7 @@
#include <stdlib.h>
#include <string.h>
#include "types.h"
#include "util.h"
#include "errors.h"
#include "algorithms.h"
@ -359,7 +360,7 @@ burn_stack (int bytes)
{
char buf[64];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -115,6 +115,7 @@
#include <stdio.h>
#include <string.h> /* memcpy, memcmp */
#include "types.h" /* for byte and u32 typedefs */
#include "util.h"
#include "errors.h"
#include "algorithms.h"
@ -453,7 +454,7 @@ burn_stack (int bytes)
{
char buf[64];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -78,7 +78,7 @@ burn_stack (int bytes)
{
char buf[128];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -205,7 +205,7 @@ burn_stack (int bytes)
{
char buf[128];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);
@ -311,9 +311,9 @@ mix_pool(byte *pool)
RMD160_CONTEXT md;
rmd160_init( &md );
#if DIGESTLEN != 20
#if DIGESTLEN != 20
#error must have a digest length of 20 for ripe-md-160
#endif
#endif
/* loop over the pool */
pend = pool + POOLSIZE;
memcpy(hashbuf, pend - DIGESTLEN, DIGESTLEN );
@ -367,11 +367,11 @@ read_seed_file(void)
if( !seed_file_name )
return 0;
#ifdef HAVE_DOSISH_SYSTEM
#if defined(HAVE_DOSISH_SYSTEM) || defined(__CYGWIN__)
fd = open( seed_file_name, O_RDONLY | O_BINARY );
#else
#else
fd = open( seed_file_name, O_RDONLY );
#endif
#endif
if( fd == -1 && errno == ENOENT) {
allow_seed_file_update = 1;
return 0;
@ -457,12 +457,12 @@ update_random_seed_file()
mix_pool(rndpool); rndstats.mixrnd++;
mix_pool(keypool); rndstats.mixkey++;
#ifdef HAVE_DOSISH_SYSTEM
#if defined(HAVE_DOSISH_SYSTEM) || defined(__CYGWIN__)
fd = open( seed_file_name, O_WRONLY|O_CREAT|O_TRUNC|O_BINARY,
S_IRUSR|S_IWUSR );
#else
#else
fd = open( seed_file_name, O_WRONLY|O_CREAT|O_TRUNC, S_IRUSR|S_IWUSR );
#endif
#endif
if( fd == -1 ) {
log_info(_("can't create `%s': %s\n"), seed_file_name, strerror(errno) );
return;
@ -564,7 +564,7 @@ read_pool( byte *buffer, size_t length, int level )
if( pool_balance < 0 )
pool_balance = 0;
/* and clear the keypool */
memset( keypool, 0, POOLSIZE );
wipememory(keypool, POOLSIZE);
}
}
@ -673,7 +673,7 @@ fast_random_poll()
getrusage( RUSAGE_SELF, &buf );
add_randomness( &buf, sizeof buf, 1 );
memset( &buf, 0, sizeof buf );
wipememory( &buf, sizeof buf );
}
#endif
#endif

View File

@ -1713,7 +1713,7 @@ burn_stack (int bytes)
{
char buf[64];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -146,7 +146,7 @@ burn_stack (int bytes)
{
char buf[150];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -221,7 +221,7 @@ rndegd_gather_random( void (*add)(const void*, size_t, int), int requester,
(*add)( buffer, n, requester );
length -= n;
}
memset(buffer, 0, sizeof(buffer) );
wipememory(buffer, sizeof(buffer) );
return 0; /* success */
}

View File

@ -156,7 +156,7 @@ _("\n"
(*add)( buffer, n, requester );
length -= n;
}
memset(buffer, 0, sizeof(buffer) );
wipememory(buffer, sizeof(buffer) );
return 0; /* success */
}

View File

@ -70,9 +70,6 @@
#include <string.h>
#include <windows.h>
#ifdef __CYGWIN32__
# include <winioctl.h>
#endif
#include "types.h"

View File

@ -54,7 +54,7 @@ burn_stack (int bytes)
{
char buf[128];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -635,7 +635,7 @@ burn_stack (int bytes)
{
char buf[256];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);

View File

@ -550,7 +550,7 @@ burn_stack (int bytes)
{
char buf[64];
memset (buf, 0, sizeof buf);
wipememory(buf,sizeof buf);
bytes -= sizeof buf;
if (bytes > 0)
burn_stack (bytes);