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>
|
#include <sys/systeminfo.h>
|
||||||
|
|
||||||
static long gethostid(void)
|
static long
|
||||||
|
gethostid(void)
|
||||||
{
|
{
|
||||||
static int flag=0;
|
static int flag=0;
|
||||||
static long hostid;
|
static long hostid;
|
||||||
if(!flag){
|
if(!flag){
|
||||||
char s[32];
|
char s[32];
|
||||||
sysinfo(SI_HW_SERIAL, s, 32);
|
sysinfo(SI_HW_SERIAL, s, 32);
|
||||||
sscanf(s, "%u", &hostid);
|
sscanf(s, "%u", &hostid);
|
||||||
flag=1;
|
flag=1;
|
||||||
}
|
}
|
||||||
return hostid;
|
return hostid;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -49,8 +50,8 @@ static des_cblock default_seed = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
|
|||||||
static void
|
static void
|
||||||
do_initialize(void)
|
do_initialize(void)
|
||||||
{
|
{
|
||||||
des_set_odd_parity(&default_seed);
|
des_set_odd_parity(&default_seed);
|
||||||
des_set_random_generator_seed(&default_seed);
|
des_set_random_generator_seed(&default_seed);
|
||||||
}
|
}
|
||||||
|
|
||||||
#define zero_long_long(ll) do { ll[0] = ll[1] = 0; } while (0)
|
#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 incr_long_long(ll) do { if (++ll[0] == 0) ++ll[1]; } while (0)
|
||||||
|
|
||||||
#define set_sequence_number(ll) \
|
#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).
|
* Set the sequnce number to this value (a long long).
|
||||||
@@ -66,7 +67,7 @@ do_initialize(void)
|
|||||||
void
|
void
|
||||||
des_set_sequence_number(unsigned char *ll)
|
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
|
void
|
||||||
des_set_random_generator_seed(des_cblock *seed)
|
des_set_random_generator_seed(des_cblock *seed)
|
||||||
{
|
{
|
||||||
des_key_sched(seed, sequence_seed);
|
des_key_sched(seed, sequence_seed);
|
||||||
zero_long_long(sequence_index);
|
zero_long_long(sequence_index);
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -88,20 +89,20 @@ des_set_random_generator_seed(des_cblock *seed)
|
|||||||
int
|
int
|
||||||
des_new_random_key(des_cblock *key)
|
des_new_random_key(des_cblock *key)
|
||||||
{
|
{
|
||||||
if (!initialized)
|
if (!initialized)
|
||||||
do_initialize();
|
do_initialize();
|
||||||
|
|
||||||
try_again:
|
try_again:
|
||||||
des_ecb_encrypt((des_cblock *) sequence_index,
|
des_ecb_encrypt((des_cblock *) sequence_index,
|
||||||
key,
|
key,
|
||||||
sequence_seed,
|
sequence_seed,
|
||||||
DES_ENCRYPT);
|
DES_ENCRYPT);
|
||||||
incr_long_long(sequence_index);
|
incr_long_long(sequence_index);
|
||||||
/* random key must have odd parity and not be weak */
|
/* random key must have odd parity and not be weak */
|
||||||
des_set_odd_parity(key);
|
des_set_odd_parity(key);
|
||||||
if (des_is_weak_key(key))
|
if (des_is_weak_key(key))
|
||||||
goto try_again;
|
goto try_again;
|
||||||
return(0);
|
return(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -115,45 +116,45 @@ des_new_random_key(des_cblock *key)
|
|||||||
void
|
void
|
||||||
des_init_random_number_generator(des_cblock *seed)
|
des_init_random_number_generator(des_cblock *seed)
|
||||||
{
|
{
|
||||||
struct timeval now;
|
struct timeval now;
|
||||||
static long uniq[2];
|
static long uniq[2];
|
||||||
des_cblock new_key;
|
des_cblock new_key;
|
||||||
|
|
||||||
gettimeofday(&now, (struct timezone *)0);
|
gettimeofday(&now, (struct timezone *)0);
|
||||||
if (!uniq[0])
|
if (!uniq[0])
|
||||||
{
|
{
|
||||||
struct hostent *hent;
|
struct hostent *hent;
|
||||||
char hostname[100];
|
char hostname[100];
|
||||||
gethostname(hostname, sizeof(hostname));
|
gethostname(hostname, sizeof(hostname));
|
||||||
hent = gethostbyname(hostname);
|
hent = gethostbyname(hostname);
|
||||||
if (hent != NULL)
|
if (hent != NULL)
|
||||||
bcopy(hent->h_addr_list[0], &uniq[0], sizeof(uniq[0]));
|
bcopy(hent->h_addr_list[0], &uniq[0], sizeof(uniq[0]));
|
||||||
else
|
else
|
||||||
uniq[0] = gethostid();
|
uniq[0] = gethostid();
|
||||||
#ifdef MSDOS
|
#ifdef MSDOS
|
||||||
uniq[1] = 1;
|
uniq[1] = 1;
|
||||||
#else
|
#else
|
||||||
uniq[1] = getpid();
|
uniq[1] = getpid();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Pick a unique random key from the shared sequence. */
|
/* Pick a unique random key from the shared sequence. */
|
||||||
des_set_random_generator_seed(seed);
|
des_set_random_generator_seed(seed);
|
||||||
set_sequence_number((unsigned char *)uniq);
|
set_sequence_number((unsigned char *)uniq);
|
||||||
des_new_random_key(&new_key);
|
des_new_random_key(&new_key);
|
||||||
|
|
||||||
/* Select a new nonshared sequence, */
|
/* Select a new nonshared sequence, */
|
||||||
des_set_random_generator_seed(&new_key);
|
des_set_random_generator_seed(&new_key);
|
||||||
|
|
||||||
/* and use the current time to pick a key for the new sequence. */
|
/* and use the current time to pick a key for the new sequence. */
|
||||||
set_sequence_number((unsigned char *)&now);
|
set_sequence_number((unsigned char *)&now);
|
||||||
des_new_random_key(&new_key);
|
des_new_random_key(&new_key);
|
||||||
des_set_random_generator_seed(&new_key);
|
des_set_random_generator_seed(&new_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* This is for backwards compatibility. */
|
/* This is for backwards compatibility. */
|
||||||
int
|
int
|
||||||
des_random_key(unsigned char *ret)
|
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