diff --git a/lib/des/rnd_keys.c b/lib/des/rnd_keys.c index 26dff8584..25dbeeebd 100644 --- a/lib/des/rnd_keys.c +++ b/lib/des/rnd_keys.c @@ -19,17 +19,18 @@ RCSID("$Id$"); #include -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); }