uniform indent
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@274 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -19,17 +19,18 @@ RCSID("$Id$");
|
||||
|
||||
#include <sys/systeminfo.h>
|
||||
|
||||
static long gethostid(void)
|
||||
static long
|
||||
gethostid(void)
|
||||
{
|
||||
static int flag=0;
|
||||
static long hostid;
|
||||
if(!flag){
|
||||
char s[32];
|
||||
sysinfo(SI_HW_SERIAL, s, 32);
|
||||
sscanf(s, "%u", &hostid);
|
||||
flag=1;
|
||||
}
|
||||
return hostid;
|
||||
static int flag=0;
|
||||
static long hostid;
|
||||
if(!flag){
|
||||
char s[32];
|
||||
sysinfo(SI_HW_SERIAL, s, 32);
|
||||
sscanf(s, "%u", &hostid);
|
||||
flag=1;
|
||||
}
|
||||
return hostid;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -49,8 +50,8 @@ static des_cblock default_seed = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
|
||||
static void
|
||||
do_initialize(void)
|
||||
{
|
||||
des_set_odd_parity(&default_seed);
|
||||
des_set_random_generator_seed(&default_seed);
|
||||
des_set_odd_parity(&default_seed);
|
||||
des_set_random_generator_seed(&default_seed);
|
||||
}
|
||||
|
||||
#define zero_long_long(ll) do { ll[0] = ll[1] = 0; } while (0)
|
||||
@@ -58,7 +59,7 @@ do_initialize(void)
|
||||
#define incr_long_long(ll) do { if (++ll[0] == 0) ++ll[1]; } while (0)
|
||||
|
||||
#define set_sequence_number(ll) \
|
||||
memcpy((char *)sequence_index, (ll), sizeof(sequence_index));
|
||||
memcpy((char *)sequence_index, (ll), sizeof(sequence_index));
|
||||
|
||||
/*
|
||||
* Set the sequnce number to this value (a long long).
|
||||
@@ -66,7 +67,7 @@ do_initialize(void)
|
||||
void
|
||||
des_set_sequence_number(unsigned char *ll)
|
||||
{
|
||||
set_sequence_number(ll);
|
||||
set_sequence_number(ll);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -75,9 +76,9 @@ des_set_sequence_number(unsigned char *ll)
|
||||
void
|
||||
des_set_random_generator_seed(des_cblock *seed)
|
||||
{
|
||||
des_key_sched(seed, sequence_seed);
|
||||
zero_long_long(sequence_index);
|
||||
initialized = 1;
|
||||
des_key_sched(seed, sequence_seed);
|
||||
zero_long_long(sequence_index);
|
||||
initialized = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -88,20 +89,20 @@ des_set_random_generator_seed(des_cblock *seed)
|
||||
int
|
||||
des_new_random_key(des_cblock *key)
|
||||
{
|
||||
if (!initialized)
|
||||
do_initialize();
|
||||
if (!initialized)
|
||||
do_initialize();
|
||||
|
||||
try_again:
|
||||
des_ecb_encrypt((des_cblock *) sequence_index,
|
||||
key,
|
||||
sequence_seed,
|
||||
DES_ENCRYPT);
|
||||
incr_long_long(sequence_index);
|
||||
/* random key must have odd parity and not be weak */
|
||||
des_set_odd_parity(key);
|
||||
if (des_is_weak_key(key))
|
||||
goto try_again;
|
||||
return(0);
|
||||
try_again:
|
||||
des_ecb_encrypt((des_cblock *) sequence_index,
|
||||
key,
|
||||
sequence_seed,
|
||||
DES_ENCRYPT);
|
||||
incr_long_long(sequence_index);
|
||||
/* random key must have odd parity and not be weak */
|
||||
des_set_odd_parity(key);
|
||||
if (des_is_weak_key(key))
|
||||
goto try_again;
|
||||
return(0);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -115,45 +116,45 @@ des_new_random_key(des_cblock *key)
|
||||
void
|
||||
des_init_random_number_generator(des_cblock *seed)
|
||||
{
|
||||
struct timeval now;
|
||||
static long uniq[2];
|
||||
des_cblock new_key;
|
||||
struct timeval now;
|
||||
static long uniq[2];
|
||||
des_cblock new_key;
|
||||
|
||||
gettimeofday(&now, (struct timezone *)0);
|
||||
if (!uniq[0])
|
||||
{
|
||||
struct hostent *hent;
|
||||
char hostname[100];
|
||||
gethostname(hostname, sizeof(hostname));
|
||||
hent = gethostbyname(hostname);
|
||||
if (hent != NULL)
|
||||
bcopy(hent->h_addr_list[0], &uniq[0], sizeof(uniq[0]));
|
||||
else
|
||||
uniq[0] = gethostid();
|
||||
gettimeofday(&now, (struct timezone *)0);
|
||||
if (!uniq[0])
|
||||
{
|
||||
struct hostent *hent;
|
||||
char hostname[100];
|
||||
gethostname(hostname, sizeof(hostname));
|
||||
hent = gethostbyname(hostname);
|
||||
if (hent != NULL)
|
||||
bcopy(hent->h_addr_list[0], &uniq[0], sizeof(uniq[0]));
|
||||
else
|
||||
uniq[0] = gethostid();
|
||||
#ifdef MSDOS
|
||||
uniq[1] = 1;
|
||||
uniq[1] = 1;
|
||||
#else
|
||||
uniq[1] = getpid();
|
||||
uniq[1] = getpid();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
/* Pick a unique random key from the shared sequence. */
|
||||
des_set_random_generator_seed(seed);
|
||||
set_sequence_number((unsigned char *)uniq);
|
||||
des_new_random_key(&new_key);
|
||||
/* Pick a unique random key from the shared sequence. */
|
||||
des_set_random_generator_seed(seed);
|
||||
set_sequence_number((unsigned char *)uniq);
|
||||
des_new_random_key(&new_key);
|
||||
|
||||
/* Select a new nonshared sequence, */
|
||||
des_set_random_generator_seed(&new_key);
|
||||
/* Select a new nonshared sequence, */
|
||||
des_set_random_generator_seed(&new_key);
|
||||
|
||||
/* and use the current time to pick a key for the new sequence. */
|
||||
set_sequence_number((unsigned char *)&now);
|
||||
des_new_random_key(&new_key);
|
||||
des_set_random_generator_seed(&new_key);
|
||||
/* and use the current time to pick a key for the new sequence. */
|
||||
set_sequence_number((unsigned char *)&now);
|
||||
des_new_random_key(&new_key);
|
||||
des_set_random_generator_seed(&new_key);
|
||||
}
|
||||
|
||||
/* This is for backwards compatibility. */
|
||||
int
|
||||
des_random_key(unsigned char *ret)
|
||||
{
|
||||
return des_new_random_key((des_cblock *) ret);
|
||||
return des_new_random_key((des_cblock *) ret);
|
||||
}
|
||||
|
Reference in New Issue
Block a user