guess that this is how arcfour prf works
This commit is contained in:
@@ -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
|
||||
};
|
||||
|
Reference in New Issue
Block a user