The introduced SHA1_NOFINAL hasher was not sufficient for EAP-AKA,
[strongswan.git] / src / libstrongswan / plugins / sha1 / sha1_hasher.h
index aff0eae..2e44797 100644 (file)
 #define SHA1_HASHER_H_
 
 typedef struct sha1_hasher_t sha1_hasher_t;
+typedef struct sha1_keyed_prf_t sha1_keyed_prf_t;
 
 #include <crypto/hashers/hasher.h>
+#include <crypto/prfs/prf.h>
 
 /**
  * Implementation of hasher_t interface using the SHA1 algorithm.
@@ -38,13 +40,30 @@ struct sha1_hasher_t {
 };
 
 /**
+ * Implementation of prf_t interface using keyed SHA1 algorithm (used for EAP-AKA).
+ */
+struct sha1_keyed_prf_t {
+       
+       /**
+        * Implements prf_t interface.
+        */
+       prf_t prf_interface;
+};
+
+/**
  * Creates a new sha1_hasher_t.
- * 
- * This implementation supports two algorithms, HASH_SHA1 and HASH_SHA1_NOFINAL
  *
- * @param algo         algorithm
+ * @param algo         algorithm, must be HASH_SHA1
  * @return                     sha1_hasher_t object
  */
 sha1_hasher_t *sha1_hasher_create(hash_algorithm_t algo);
 
+/**
+ * Creates a new sha1_keyed_prf_t.
+ *
+ * @param algo         algorithm, must be PRF_KEYED_SHA1
+ * @return                     sha1_keyed_prf_tobject
+ */
+sha1_keyed_prf_t *sha1_keyed_prf_create(pseudo_random_function_t algo);
+
 #endif /*SHA1_HASHER_H_ @}*/