extern fr_value_box_t const *enum_eap_type_sim;
extern fr_value_box_t const *enum_eap_type_aka;
extern fr_value_box_t const *enum_eap_type_aka_prime;
+
+extern HIDDEN fr_value_box_t const *enum_kdf_prime_with_ck_prime_ik_prime;
fr_value_box_t const *enum_eap_type_aka;
fr_value_box_t const *enum_eap_type_aka_prime;
+fr_value_box_t const *enum_kdf_prime_with_ck_prime_ik_prime;
+
extern fr_dict_enum_autoload_t libfreeradius_aka_sim_dict_enum[];
fr_dict_enum_autoload_t libfreeradius_aka_sim_dict_enum[] = {
{ .out = &enum_eap_type_sim, .name = "SIM", .attr = &attr_eap_type },
{ .out = &enum_eap_type_aka, .name = "AKA", .attr = &attr_eap_type },
{ .out = &enum_eap_type_aka_prime, .name = "AKA-Prime", .attr = &attr_eap_type },
+
+ { .out = &enum_kdf_prime_with_ck_prime_ik_prime, .name = "Prime-With-CK-Prime-IK-Prime", .attr = &attr_eap_aka_sim_kdf },
+
{ NULL }
};
break;
case FR_EAP_METHOD_AKA_PRIME:
- switch (eap_aka_sim_session->kdf) {
- case FR_KDF_VALUE_PRIME_WITH_CK_PRIME_IK_PRIME:
+ if (eap_aka_sim_session->kdf == enum_kdf_prime_with_ck_prime_ik_prime->vb_int16) {
if (fr_aka_sim_vector_umts_kdf_1_reauth_from_attrs(request, &request->session_state_pairs,
&eap_aka_sim_session->keys) != 0) {
goto request_new_id;
}
if (fr_aka_sim_crypto_umts_kdf_1_reauth(&eap_aka_sim_session->keys) < 0) goto request_new_id;
- break;
-
- default:
+ } else {
fr_assert(0);
- break;
}
break;
break;
case FR_EAP_METHOD_AKA_PRIME:
- switch (eap_aka_sim_session->kdf) {
- case FR_KDF_VALUE_PRIME_WITH_CK_PRIME_IK_PRIME:
+ if (eap_aka_sim_session->kdf == enum_kdf_prime_with_ck_prime_ik_prime->vb_int16) {
fr_aka_sim_crypto_umts_kdf_1(&eap_aka_sim_session->keys);
- break;
-
- default:
+ } else {
fr_assert(0);
- break;
}
}
if (RDEBUG_ENABLED3) fr_aka_sim_crypto_keys_log(request, &eap_aka_sim_session->keys);
running = AKA_SIM_METHOD_HINT_AKA_PRIME;
eap_aka_sim_session->type = FR_EAP_METHOD_AKA_PRIME;
- eap_aka_sim_session->kdf = FR_KDF_VALUE_PRIME_WITH_CK_PRIME_IK_PRIME;
+ eap_aka_sim_session->kdf = enum_kdf_prime_with_ck_prime_ik_prime->vb_int16;
eap_aka_sim_session->mac_md = EVP_sha256();
break;