From 6a442d5df98a3af7f539fb214516444bdd115f21 Mon Sep 17 00:00:00 2001 From: Love Hornquist Astrand Date: Mon, 10 Dec 2012 12:38:35 -0800 Subject: [PATCH] guess that this is how arcfour prf works --- lib/krb5/crypto-arcfour.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/lib/krb5/crypto-arcfour.c b/lib/krb5/crypto-arcfour.c index 9954d02f8..ca2d7862c 100644 --- a/lib/krb5/crypto-arcfour.c +++ b/lib/krb5/crypto-arcfour.c @@ -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 };