From 71646ad85bc3fa2916214effd9edfa09915a9a46 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Sun, 1 Jun 1997 14:34:32 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@1803 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/generate_seq_number.c | 25 +++++++++++++++++++++++++ lib/krb5/generate_subkey.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) create mode 100644 lib/krb5/generate_seq_number.c create mode 100644 lib/krb5/generate_subkey.c diff --git a/lib/krb5/generate_seq_number.c b/lib/krb5/generate_seq_number.c new file mode 100644 index 000000000..e84f7af80 --- /dev/null +++ b/lib/krb5/generate_seq_number.c @@ -0,0 +1,25 @@ +#include + +RCSID("$Id$"); + +krb5_error_code +krb5_generate_seq_number(krb5_context context, + const krb5_keyblock *key, + int32_t *seqno) +{ + des_cblock c; + int32_t q; + u_char *p; + int i; + + if (key->keytype != KEYTYPE_DES) + abort (); + memmove (c, key->contents.data, sizeof(c)); + des_new_random_key(&c); + q = 0; + for (p = (u_char *)c, i = 0; i < sizeof(c); ++i, ++p) + q = (q << 8) | *p; + q &= 0xffffffff; + *seqno = q; + return 0; +} diff --git a/lib/krb5/generate_subkey.c b/lib/krb5/generate_subkey.c new file mode 100644 index 000000000..8b56c595f --- /dev/null +++ b/lib/krb5/generate_subkey.c @@ -0,0 +1,30 @@ +#include + +RCSID("$Id$"); + +krb5_error_code +krb5_generate_subkey(krb5_context context, + const krb5_keyblock *key, + krb5_keyblock **subkey) +{ + krb5_error_code ret; + krb5_keyblock *k; + + if (key->keytype != KEYTYPE_DES) + abort (); + k = malloc(sizeof(**subkey)); + if (k == NULL) + return ENOMEM; + k->keytype = key->keytype; + k->contents.length = 0; + ret = krb5_data_copy (&k->contents, + key->contents.data, + key->contents.length); + if (ret) { + free(k); + return ret; + } + des_new_random_key ((des_cblock *)k->contents.data); + *subkey = k; + return 0; +}