switch to the DES_ api, dont provide any compat glue
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@12748 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -149,7 +149,7 @@ md5sumFile (const char *name, int len, int32_t sum[4])
|
||||
* The sequence is indexed with a long long and
|
||||
* based on an initial des key used as a seed.
|
||||
*/
|
||||
static des_key_schedule sequence_seed;
|
||||
static DES_key_schedule sequence_seed;
|
||||
static u_int32_t sequence_index[2];
|
||||
|
||||
/*
|
||||
@@ -242,7 +242,7 @@ static RETSIGTYPE
|
||||
* It's not neccessary to be root to run it.
|
||||
*/
|
||||
void
|
||||
des_rand_data(unsigned char *data, int size)
|
||||
DES_rand_data(unsigned char *data, int size)
|
||||
{
|
||||
struct itimerval tv, otv;
|
||||
RETSIGTYPE (*osa)(int);
|
||||
@@ -312,36 +312,39 @@ des_rand_data(unsigned char *data, int size)
|
||||
}
|
||||
#else
|
||||
void
|
||||
des_rand_data(unsigned char *p, int s)
|
||||
DES_rand_data(unsigned char *p, int s)
|
||||
{
|
||||
des_not_rand_data (p, s);
|
||||
DES_not_rand_data (p, s);
|
||||
}
|
||||
#endif
|
||||
|
||||
void
|
||||
des_generate_random_block(des_cblock *block)
|
||||
DES_generate_random_block(DES_cblock *block)
|
||||
{
|
||||
des_rand_data((unsigned char *)block, sizeof(*block));
|
||||
DES_rand_data((unsigned char *)block, sizeof(*block));
|
||||
}
|
||||
|
||||
void
|
||||
DES_rand_data_key(DES_cblock *key);
|
||||
|
||||
/*
|
||||
* Generate a "random" DES key.
|
||||
*/
|
||||
void
|
||||
des_rand_data_key(des_cblock *key)
|
||||
DES_rand_data_key(DES_cblock *key)
|
||||
{
|
||||
unsigned char data[8];
|
||||
des_key_schedule sched;
|
||||
DES_key_schedule sched;
|
||||
do {
|
||||
des_rand_data(data, sizeof(data));
|
||||
des_rand_data((unsigned char*)key, sizeof(des_cblock));
|
||||
des_set_odd_parity(key);
|
||||
des_key_sched(key, sched);
|
||||
des_ecb_encrypt(&data, key, sched, DES_ENCRYPT);
|
||||
DES_rand_data(data, sizeof(data));
|
||||
DES_rand_data((unsigned char*)key, sizeof(DES_cblock));
|
||||
DES_set_odd_parity(key);
|
||||
DES_key_sched(key, &sched);
|
||||
DES_ecb_encrypt(&data, key, &sched, DES_ENCRYPT);
|
||||
memset(&data, 0, sizeof(data));
|
||||
memset(&sched, 0, sizeof(sched));
|
||||
des_set_odd_parity(key);
|
||||
} while(des_is_weak_key(key));
|
||||
DES_set_odd_parity(key);
|
||||
} while(DES_is_weak_key(key));
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -351,7 +354,10 @@ des_rand_data_key(des_cblock *key)
|
||||
* problems with permissions.
|
||||
*/
|
||||
int
|
||||
des_mem_rand8(unsigned char *data)
|
||||
DES_mem_rand8(unsigned char *data);
|
||||
|
||||
int
|
||||
DES_mem_rand8(unsigned char *data)
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
@@ -364,12 +370,12 @@ static int initialized;
|
||||
static void
|
||||
do_initialize(void)
|
||||
{
|
||||
des_cblock default_seed;
|
||||
DES_cblock default_seed;
|
||||
do {
|
||||
des_generate_random_block(&default_seed);
|
||||
des_set_odd_parity(&default_seed);
|
||||
} while (des_is_weak_key(&default_seed));
|
||||
des_init_random_number_generator(&default_seed);
|
||||
DES_generate_random_block(&default_seed);
|
||||
DES_set_odd_parity(&default_seed);
|
||||
} while (DES_is_weak_key(&default_seed));
|
||||
DES_init_random_number_generator(&default_seed);
|
||||
}
|
||||
|
||||
#define zero_long_long(ll) do { ll[0] = ll[1] = 0; } while (0)
|
||||
@@ -383,7 +389,7 @@ memcpy((char *)sequence_index, (ll), sizeof(sequence_index));
|
||||
* Set the sequnce number to this value (a long long).
|
||||
*/
|
||||
void
|
||||
des_set_sequence_number(unsigned char *ll)
|
||||
DES_set_sequence_number(unsigned char *ll)
|
||||
{
|
||||
set_sequence_number(ll);
|
||||
}
|
||||
@@ -392,9 +398,9 @@ des_set_sequence_number(unsigned char *ll)
|
||||
* Set the generator seed and reset the sequence number to 0.
|
||||
*/
|
||||
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);
|
||||
initialized = 1;
|
||||
}
|
||||
@@ -405,20 +411,20 @@ des_set_random_generator_seed(des_cblock *seed)
|
||||
* parity and skip weak keys.
|
||||
*/
|
||||
int
|
||||
des_new_random_key(des_cblock *key)
|
||||
DES_new_random_key(DES_cblock *key)
|
||||
{
|
||||
if (!initialized)
|
||||
do_initialize();
|
||||
|
||||
do {
|
||||
des_ecb_encrypt((des_cblock *) sequence_index,
|
||||
DES_ecb_encrypt((DES_cblock *) sequence_index,
|
||||
key,
|
||||
sequence_seed,
|
||||
&sequence_seed,
|
||||
DES_ENCRYPT);
|
||||
incr_long_long(sequence_index);
|
||||
/* random key must have odd parity and not be weak */
|
||||
des_set_odd_parity(key);
|
||||
} while (des_is_weak_key(key));
|
||||
DES_set_odd_parity(key);
|
||||
} while (DES_is_weak_key(key));
|
||||
return(0);
|
||||
}
|
||||
|
||||
@@ -431,34 +437,34 @@ des_new_random_key(des_cblock *key)
|
||||
*
|
||||
*/
|
||||
void
|
||||
des_init_random_number_generator(des_cblock *seed)
|
||||
DES_init_random_number_generator(DES_cblock *seed)
|
||||
{
|
||||
struct timeval now;
|
||||
des_cblock uniq;
|
||||
des_cblock new_key;
|
||||
DES_cblock uniq;
|
||||
DES_cblock new_key;
|
||||
|
||||
gettimeofday(&now, (struct timezone *)0);
|
||||
des_generate_random_block(&uniq);
|
||||
DES_generate_random_block(&uniq);
|
||||
|
||||
/* 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);
|
||||
des_new_random_key(&new_key);
|
||||
DES_new_random_key(&new_key);
|
||||
|
||||
/* 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. */
|
||||
set_sequence_number((unsigned char *)&now);
|
||||
des_new_random_key(&new_key);
|
||||
des_set_random_generator_seed(&new_key);
|
||||
DES_new_random_key(&new_key);
|
||||
DES_set_random_generator_seed(&new_key);
|
||||
}
|
||||
|
||||
/* This is for backwards compatibility. */
|
||||
void
|
||||
des_random_key(des_cblock ret)
|
||||
DES_random_key(DES_cblock ret)
|
||||
{
|
||||
des_new_random_key((des_cblock *)ret);
|
||||
DES_new_random_key((DES_cblock *)ret);
|
||||
}
|
||||
|
||||
#ifdef TESTRUN
|
||||
@@ -483,13 +489,13 @@ main()
|
||||
int
|
||||
main()
|
||||
{
|
||||
des_cblock data;
|
||||
DES_cblock data;
|
||||
int i;
|
||||
|
||||
while (1)
|
||||
{
|
||||
do_initialize();
|
||||
des_random_key(data);
|
||||
DES_random_key(data);
|
||||
for (i = 0; i < 8; i++)
|
||||
printf("%02x", data[i]);
|
||||
printf("\n");
|
||||
|
Reference in New Issue
Block a user