The introduced SHA1_NOFINAL hasher was not sufficient for EAP-AKA,
as it requires to XOR the key into the hashers state. A new SHA1 based keyed hash function, implemented as PRF, enables EAP-AKA and the FIPS-PRF function to properly use the existing SHA1 implementation.
This commit is contained in:
@@ -18,11 +18,12 @@
|
||||
|
||||
#include "prf.h"
|
||||
|
||||
ENUM_BEGIN(pseudo_random_function_names, PRF_UNDEFINED, PRF_FIPS_DES,
|
||||
ENUM_BEGIN(pseudo_random_function_names, PRF_UNDEFINED, PRF_KEYED_SHA1,
|
||||
"PRF_UNDEFINED",
|
||||
"PRF_FIPS_SHA1_160",
|
||||
"PRF_FIPS_DES");
|
||||
ENUM_NEXT(pseudo_random_function_names, PRF_HMAC_MD5, PRF_HMAC_SHA2_512, PRF_FIPS_DES,
|
||||
"PRF_FIPS_DES",
|
||||
"PRF_KEYED_SHA1");
|
||||
ENUM_NEXT(pseudo_random_function_names, PRF_HMAC_MD5, PRF_HMAC_SHA2_512, PRF_KEYED_SHA1,
|
||||
"PRF_HMAC_MD5",
|
||||
"PRF_HMAC_SHA1",
|
||||
"PRF_HMAC_TIGER",
|
||||
|
||||
@@ -53,6 +53,11 @@ enum pseudo_random_function_t {
|
||||
PRF_FIPS_SHA1_160 = 1025,
|
||||
/** Could be implemented via fips_prf_t, uses fixed output size of 160bit */
|
||||
PRF_FIPS_DES = 1026,
|
||||
/**
|
||||
* Keyed hash algorithm using SHA1, used in EAP-AKA:
|
||||
* This PRF uses SHA1, but XORs the key into the IV. No "Final()" operation
|
||||
* is applied to the SHA1 state. */
|
||||
PRF_KEYED_SHA1 = 1027,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user