(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
This commit is contained in:
Assar Westerlund
1997-09-29 20:45:53 +00:00
parent 5ba6a0b9ec
commit 4877be55f1

View File

@@ -45,19 +45,23 @@ krb5_generate_seq_number(krb5_context context,
const krb5_keyblock *key, const krb5_keyblock *key,
int32_t *seqno) int32_t *seqno)
{ {
des_cblock c; krb5_error_code ret;
int32_t q; krb5_keyblock *subkey;
u_int32_t q;
u_char *p; u_char *p;
int i; int i;
if (key->keytype != KEYTYPE_DES) ret = krb5_generate_subkey (context, key, &subkey);
abort (); if (ret)
memmove (c, key->keyvalue.data, sizeof(c)); return ret;
des_new_random_key(&c);
q = 0; 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 = (q << 8) | *p;
q &= 0xffffffff; q &= 0xffffffff;
*seqno = q; *seqno = q;
krb5_free_keyblock (context, subkey);
return 0; return 0;
} }