guess that this is how arcfour prf works

This commit is contained in:
Love Hornquist Astrand
2012-12-10 12:38:35 -08:00
parent 71bd63639f
commit 6a442d5df9

View File

@@ -309,6 +309,30 @@ ARCFOUR_encrypt(krb5_context context,
return ARCFOUR_subdecrypt (context, key, data, len, keyusage, ivec);
}
static krb5_error_code
ARCFOUR_prf(krb5_context context,
krb5_crypto crypto,
const krb5_data *in,
krb5_data *out)
{
struct _krb5_checksum_type *c = _krb5_find_checksum(CKSUMTYPE_SHA1);
krb5_error_code ret;
Checksum res;
ret = krb5_data_alloc(out, c->checksumsize);
if (ret)
return ret;
res.checksum.data = out->data;
res.checksum.length = out->length;
ret = _krb5_internal_hmac(context, c, in->data, in->length, 0, &crypto->key, &res);
if (ret)
krb5_data_free(out);
return 0;
}
struct _krb5_encryption_type _krb5_enctype_arcfour_hmac_md5 = {
ETYPE_ARCFOUR_HMAC_MD5,
"arcfour-hmac-md5",
@@ -322,5 +346,5 @@ struct _krb5_encryption_type _krb5_enctype_arcfour_hmac_md5 = {
F_SPECIAL,
ARCFOUR_encrypt,
0,
NULL
ARCFOUR_prf
};