summaryrefslogtreecommitdiffstats
path: root/src/lib/des425/random_key.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/des425/random_key.c')
-rw-r--r--src/lib/des425/random_key.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/lib/des425/random_key.c b/src/lib/des425/random_key.c
new file mode 100644
index 000000000..d710b176a
--- /dev/null
+++ b/src/lib/des425/random_key.c
@@ -0,0 +1,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);
+}
+