From bdbbba1e1bb6512b72ee3706f8bdebb2299acf04 Mon Sep 17 00:00:00 2001 From: Johan Danielsson Date: Wed, 9 Jul 1997 00:35:05 +0000 Subject: [PATCH] Keyblock generation functions. git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@2074 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/keyblock.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/krb5/keyblock.c diff --git a/lib/krb5/keyblock.c b/lib/krb5/keyblock.c new file mode 100644 index 000000000..ad9724430 --- /dev/null +++ b/lib/krb5/keyblock.c @@ -0,0 +1,35 @@ +#include "krb5_locl.h" + +krb5_error_code +krb5_generate_random_des_key(krb5_context context, + krb5_keyblock *keyblock) +{ + des_new_random_key(keyblock->keyvalue.data); + return 0; +} + +static struct key_type { + int keytype; + int keysize; + krb5_error_code (*func)(krb5_context, krb5_keyblock*); +} key_types[] = { + { KEYTYPE_DES, 8, krb5_generate_random_des_key }, +}; + +static const int num_key_types = sizeof(key_types) / sizeof(key_types[0]); + +krb5_error_code +krb5_generate_random_keyblock(krb5_context context, + int keytype, + krb5_keyblock *keyblock) +{ + struct key_type *k; + for(k = key_types; k < key_types + num_key_types; k++) + if(keytype == k->keytype){ + keyblock->keytype = keytype; + keyblock->keyvalue.length = k->keysize; + keyblock->keyvalue.data = malloc(keyblock->keyvalue.length); + return (*k->func)(context, keyblock); + } + return KRB5_PROG_KEYTYPE_NOSUPP; +}