From 653767eef0c8a1a50984a3198c10b3a05c90076c Mon Sep 17 00:00:00 2001 From: Abhishek Sansanwal Date: Mon, 16 Apr 2018 12:27:26 +0530 Subject: [PATCH] Added UI support for EAP-FAST and EAP-PWD methods Signed-off-by: Abhishek Sansanwal Change-Id: Idf1bcadf18f2d2a095f010a14a4e0e2d96937ea6 --- sources/libraries/Common/common_eap_connect.c | 91 +++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 6 deletions(-) diff --git a/sources/libraries/Common/common_eap_connect.c b/sources/libraries/Common/common_eap_connect.c index 98dcfd1..1b292d6 100755 --- a/sources/libraries/Common/common_eap_connect.c +++ b/sources/libraries/Common/common_eap_connect.c @@ -43,10 +43,13 @@ #define EAP_TYPE_UNKNOWN "UNKNOWN" #define EAP_TYPE_PEAP "PEAP" -#define EAP_TYPE_TLS "TLS" +#define EAP_TYPE_TLS "TLS" #define EAP_TYPE_TTLS "TTLS" -#define EAP_TYPE_SIM "SIM" -#define EAP_TYPE_AKA "AKA" +#define EAP_TYPE_SIM "SIM" +#define EAP_TYPE_AKA "AKA" +#define EAP_TYPE_AKA_PRIME "AKA'" +#define EAP_TYPE_FAST "FAST" +#define EAP_TYPE_PWD "PWD" #define EAP_AUTH_TYPE_PAP "PAP" #define EAP_AUTH_TYPE_MSCHAP "MSCHAP" @@ -62,6 +65,9 @@ typedef enum { EAP_SEC_TYPE_TTLS, EAP_SEC_TYPE_SIM, EAP_SEC_TYPE_AKA, + EAP_SEC_TYPE_AKA_PRIME, + EAP_SEC_TYPE_FAST, + EAP_SEC_TYPE_PWD, EAP_SEC_TYPE_NULL } eap_type_t; @@ -108,6 +114,9 @@ static const _Expand_List_t list_eap_type[] = { {"TTLS", ELM_GENLIST_ITEM_NONE}, {"SIM", ELM_GENLIST_ITEM_NONE}, {"AKA", ELM_GENLIST_ITEM_NONE}, + {"AKA'", ELM_GENLIST_ITEM_NONE}, + {"FAST", ELM_GENLIST_ITEM_NONE}, + {"PWD", ELM_GENLIST_ITEM_NONE}, {NULL, ELM_GENLIST_ITEM_NONE} }; @@ -270,11 +279,18 @@ static void _gl_eap_type_sub_sel(void *data, Evas_Object *obj, void *event_info) sel_index = EAP_SEC_TYPE_SIM; else if (strcmp(label, EAP_TYPE_AKA) == 0) sel_index = EAP_SEC_TYPE_AKA; + else if (strcmp(label, EAP_TYPE_AKA_PRIME) == 0) + sel_index = EAP_SEC_TYPE_AKA_PRIME; + else if (strcmp(label, EAP_TYPE_FAST) == 0) + sel_index = EAP_SEC_TYPE_FAST; + else if (strcmp(label, EAP_TYPE_PWD) == 0) + sel_index = EAP_SEC_TYPE_PWD; DEBUG_LOG(UG_NAME_NORMAL, "previous index = %d; selected index = %d;", pre_index, sel_index); if ((pre_index != EAP_SEC_TYPE_SIM && sel_index == EAP_SEC_TYPE_SIM) || - (pre_index != EAP_SEC_TYPE_AKA && sel_index == EAP_SEC_TYPE_AKA)) { + (pre_index != EAP_SEC_TYPE_AKA && sel_index == EAP_SEC_TYPE_AKA) || + (pre_index != EAP_SEC_TYPE_AKA_PRIME && sel_index == EAP_SEC_TYPE_AKA_PRIME)) { popup_btn_info_t popup_data; int value = -1; value = common_util_get_system_registry( @@ -579,11 +595,13 @@ static void _create_eap_type_list(eap_connect_data_t *eap_data, it = elm_ctxpopup_item_append(ctxpopup, list_eap_type[i].name, NULL, _gl_eap_type_sub_sel, eap_data); - if ((i == EAP_SEC_TYPE_SIM || i == EAP_SEC_TYPE_AKA) && + if ((i == EAP_SEC_TYPE_SIM || i == EAP_SEC_TYPE_AKA || + i == EAP_SEC_TYPE_AKA_PRIME) && sim_state != VCONFKEY_TELEPHONY_SIM_INSERTED) { elm_object_item_disabled_set(it, EINA_TRUE); } + i++; } move_dropdown(eap_data, btn); @@ -1392,13 +1410,42 @@ static void _create_and_update_list_items_based_on_rules(eap_type_t new_type, pw_reqd = EINA_TRUE; break; case EAP_SEC_TYPE_SIM: + insert_after_item = eap_data->eap_type_item; + auth_reqd = EINA_FALSE; + user_cert_reqd = EINA_FALSE; + id_reqd = EINA_FALSE; + pw_reqd = EINA_FALSE; + break; case EAP_SEC_TYPE_AKA: _delete_eap_entry_items(eap_data); + insert_after_item = eap_data->eap_type_item; + auth_reqd = EINA_FALSE; + user_cert_reqd = EINA_FALSE; + id_reqd = EINA_FALSE; + pw_reqd = EINA_FALSE; + break; + case EAP_SEC_TYPE_AKA_PRIME: + _delete_eap_entry_items(eap_data); + insert_after_item = eap_data->eap_type_item; auth_reqd = EINA_FALSE; user_cert_reqd = EINA_FALSE; id_reqd = EINA_FALSE; pw_reqd = EINA_FALSE; break; + case EAP_SEC_TYPE_FAST: + insert_after_item = eap_data->eap_type_item; + auth_reqd = EINA_FALSE; + user_cert_reqd = EINA_FALSE; + id_reqd = EINA_TRUE; + pw_reqd = EINA_TRUE; + break; + case EAP_SEC_TYPE_PWD: + insert_after_item = eap_data->eap_type_item; + auth_reqd = EINA_FALSE; + user_cert_reqd = EINA_FALSE; + id_reqd = EINA_TRUE; + pw_reqd = EINA_TRUE; + break; default: break; } @@ -1837,6 +1884,17 @@ static void __common_eap_connect_done_cb(void *data, Evas_Object *obj, case WIFI_MANAGER_EAP_TYPE_SIM: case WIFI_MANAGER_EAP_TYPE_AKA: + case WIFI_MANAGER_EAP_TYPE_AKA_PRIME: + wifi_manager_ap_set_eap_type(eap_data->ap, eap_type); + break; + case WIFI_MANAGER_EAP_TYPE_FAST: + case WIFI_MANAGER_EAP_TYPE_PWD: + str_id = common_utils_get_list_item_entry_txt(eap_data->eap_id_item); + str_pw = common_utils_get_list_item_entry_txt(eap_data->eap_pw_item); + + wifi_manager_ap_set_eap_type(eap_data->ap, eap_type); + wifi_manager_ap_set_eap_auth_type(eap_data->ap, eap_auth_type); + wifi_manager_ap_set_eap_passphrase(eap_data->ap, str_id, str_pw); break; default: @@ -1868,6 +1926,9 @@ static void __common_eap_connect_done_cb(void *data, Evas_Object *obj, break; case WIFI_MANAGER_EAP_TYPE_SIM: case WIFI_MANAGER_EAP_TYPE_AKA: + case WIFI_MANAGER_EAP_TYPE_AKA_PRIME: + case WIFI_MANAGER_EAP_TYPE_FAST: + case WIFI_MANAGER_EAP_TYPE_PWD: break; } wlan_manager_connect(hidden_ap); @@ -2036,6 +2097,15 @@ static wifi_manager_eap_type_e __common_eap_connect_popup_get_wlan_eap_type(eap_ case EAP_SEC_TYPE_AKA: wlan_eap_type = WIFI_MANAGER_EAP_TYPE_AKA; break; + case EAP_SEC_TYPE_AKA_PRIME: + wlan_eap_type = WIFI_MANAGER_EAP_TYPE_AKA_PRIME; + break; + case EAP_SEC_TYPE_FAST: + wlan_eap_type = WIFI_MANAGER_EAP_TYPE_FAST; + break; + case EAP_SEC_TYPE_PWD: + wlan_eap_type = WIFI_MANAGER_EAP_TYPE_PWD; + break; default: ERROR_LOG(UG_NAME_NORMAL, "Err! This case should never occur"); break; @@ -2102,6 +2172,15 @@ static eap_type_t __common_eap_connect_popup_get_eap_type(wifi_manager_ap_h ap) case WIFI_MANAGER_EAP_TYPE_AKA: /**< EAP AKA type */ return EAP_SEC_TYPE_AKA; + case WIFI_MANAGER_EAP_TYPE_AKA_PRIME: /**< EAP AKA PRIME type */ + return EAP_SEC_TYPE_AKA_PRIME; + + case WIFI_MANAGER_EAP_TYPE_FAST: /**< EAP FAST type */ + return EAP_SEC_TYPE_FAST; + + case WIFI_MANAGER_EAP_TYPE_PWD: /**< EAP PWD type */ + return EAP_SEC_TYPE_PWD; + default: return EAP_SEC_TYPE_PEAP; } @@ -2241,9 +2320,9 @@ eap_info_list_t *eap_info_append_items(wifi_manager_ap_h ap, Evas_Object* view_l case EAP_SEC_TYPE_PEAP: case EAP_SEC_TYPE_TLS: case EAP_SEC_TYPE_TTLS: - break; case EAP_SEC_TYPE_SIM: case EAP_SEC_TYPE_AKA: + break; default: append_continue = FALSE; break; -- 2.7.4