From 4877be55f1c98f746f389d1e3b828c25075c6294 Mon Sep 17 00:00:00 2001 From: Assar Westerlund Date: Mon, 29 Sep 1997 20:45:53 +0000 Subject: [PATCH] (krb5_generate_seq_number): handle other key types than DES git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@3567 ec53bebd-3082-4978-b11e-865c3cabbd6b --- lib/krb5/generate_seq_number.c | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/krb5/generate_seq_number.c b/lib/krb5/generate_seq_number.c index 24d1db0c6..fe160e72b 100644 --- a/lib/krb5/generate_seq_number.c +++ b/lib/krb5/generate_seq_number.c @@ -45,19 +45,23 @@ krb5_generate_seq_number(krb5_context context, const krb5_keyblock *key, int32_t *seqno) { - des_cblock c; - int32_t q; + krb5_error_code ret; + krb5_keyblock *subkey; + u_int32_t q; u_char *p; int i; - if (key->keytype != KEYTYPE_DES) - abort (); - memmove (c, key->keyvalue.data, sizeof(c)); - des_new_random_key(&c); + ret = krb5_generate_subkey (context, key, &subkey); + if (ret) + return ret; + q = 0; - for (p = (u_char *)c, i = 0; i < sizeof(c); ++i, ++p) + for (p = (u_char *)subkey->keyvalue.data, i = 0; + i < subkey->keyvalue.length; + ++i, ++p) q = (q << 8) | *p; q &= 0xffffffff; *seqno = q; + krb5_free_keyblock (context, subkey); return 0; }