(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:
@@ -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;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user