summaryrefslogtreecommitdiffstats
path: root/src/lib/des425/random_key.c
blob: d710b176aef0bc9397727cea1463133870825017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/*
 * $Source$
 * $Author$
 */

#ifndef	lint
static char rcsid_random_key_c[] =
"$Header$";
#endif /* lint */

#include "des.h"

/* random_key */
int
des_random_key(key)
    mit_des_cblock *key;
{
    mit_des_random_key_seed	p_seed;
    mit_des_cblock		nullkey;

    bzero(nullkey, sizeof(mit_des_cblock));
    mit_des_fixup_key_parity(key);
    mit_des_init_random_number_generator(nullkey,&p_seed);
    do {
	mit_des_generate_random_block(key, &p_seed);
	mit_des_fixup_key_parity(key);
    } while (mit_des_is_weak_key(key));

    return(0);
}