]> git.ipfire.org Git - thirdparty/krb5.git/commitdiff
Implement PRF for RC4 enctypes
authorSam Hartman <hartmans@mit.edu>
Fri, 3 Apr 2009 03:39:41 +0000 (03:39 +0000)
committerSam Hartman <hartmans@mit.edu>
Fri, 3 Apr 2009 03:39:41 +0000 (03:39 +0000)
git-svn-id: svn://anonsvn.mit.edu/krb5/branches/fast@22162 dc483132-0cff-0310-8789-dd5450dbe970

src/lib/crypto/arcfour/arcfour.c
src/lib/crypto/arcfour/arcfour.h
src/lib/crypto/etypes.c

index ea3129688a093ccb4bb0ebdebdda1cf9d415de25..8d35d7eefca1c42592577082748068261d31eb8b 100644 (file)
@@ -8,6 +8,8 @@ of RSA Data Security)
 */
 #include "k5-int.h"
 #include "arcfour-int.h"
+#include "../hash_provider/hash_provider.h"
+
 const char *const krb5int_arcfour_l40 = "fortybits";
 
 void
@@ -304,3 +306,12 @@ krb5_arcfour_decrypt(const struct krb5_enc_provider *enc,
   return (ret);
 }
 
+ krb5_error_code krb5int_arcfour_prf(
+                                        const struct krb5_enc_provider *enc,
+                                        const struct krb5_hash_provider *hash,
+                                        const krb5_keyblock *key,
+                                        const krb5_data *in, krb5_data *out)
+ {
+   assert(out->length == 20);
+   return krb5_hmac(&krb5int_hash_sha1, key, 1, in, out);
+ }
index e8ff203ca168d7507dda13d79ad9f35abe386031..be408febc632d7519ff8662da7d91409a3ed5918 100644 (file)
@@ -34,5 +34,10 @@ extern krb5_error_code krb5int_arcfour_string_to_key(
 
 extern const struct krb5_enc_provider krb5int_enc_arcfour;
 extern const struct krb5_aead_provider krb5int_aead_arcfour;
+ krb5_error_code krb5int_arcfour_prf(
+                                        const struct krb5_enc_provider *enc,
+                                        const struct krb5_hash_provider *hash,
+                                        const krb5_keyblock *key,
+                                        const krb5_data *in, krb5_data *out);
 
 #endif /* ARCFOUR_H */
index 1c969ae020b2d4a90ab28a37f19985508f75f077..d3ddceed97ee7a2b67c7d84c8831511b99868732 100644 (file)
@@ -119,10 +119,10 @@ const struct krb5_keytypes krb5_enctypes_list[] = {
       "ArcFour with HMAC/md5",
       &krb5int_enc_arcfour,
       &krb5int_hash_md5,
-      0,
+      20,
       krb5_arcfour_encrypt_length, krb5_arcfour_encrypt,
       krb5_arcfour_decrypt, krb5int_arcfour_string_to_key,
-      NULL, /*PRF*/
+      krb5int_arcfour_prf, /*PRF*/
       CKSUMTYPE_HMAC_MD5_ARCFOUR,
       &krb5int_aead_arcfour,
       0 /*flags*/ },
@@ -131,10 +131,10 @@ const struct krb5_keytypes krb5_enctypes_list[] = {
       "Exportable ArcFour with HMAC/md5",
       &krb5int_enc_arcfour,
       &krb5int_hash_md5,
-      0,
+      20,
       krb5_arcfour_encrypt_length, krb5_arcfour_encrypt,
       krb5_arcfour_decrypt, krb5int_arcfour_string_to_key,
-      NULL, /*PRF*/
+      krb5int_arcfour_prf, /*PRF*/
       CKSUMTYPE_HMAC_MD5_ARCFOUR,
       &krb5int_aead_arcfour,
       0 /*flags*/ },