Added UI support for EAP-FAST and EAP-PWD methods 36/176036/1
authorAbhishek Sansanwal <abhishek.s94@samsung.com>
Mon, 16 Apr 2018 06:57:26 +0000 (12:27 +0530)
committerAbhishek Sansanwal <abhishek.s94@samsung.com>
Mon, 16 Apr 2018 06:58:24 +0000 (12:28 +0530)
Signed-off-by: Abhishek Sansanwal <abhishek.s94@samsung.com>
Change-Id: Idf1bcadf18f2d2a095f010a14a4e0e2d96937ea6

sources/libraries/Common/common_eap_connect.c

index 98dcfd1..1b292d6 100755 (executable)
 
 #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;