From: Jaehyun Kim Date: Mon, 19 Sep 2022 12:49:30 +0000 (+0900) Subject: Support ft-psk and ft-sae connection X-Git-Tag: accepted/tizen/unified/20220923.052717^0 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fconnman.git;a=commitdiff_plain;h=4a4767337169b9d4e2c9e1a309416f4322b7e858 Support ft-psk and ft-sae connection Change-Id: I05d8d3934a8a75c874b41cb44654b7bc61b34060 Signed-off-by: Jaehyun Kim --- diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h index 884c92e..3b19519 100755 --- a/gsupplicant/gsupplicant.h +++ b/gsupplicant/gsupplicant.h @@ -71,6 +71,7 @@ extern "C" { #define G_SUPPLICANT_KEYMGMT_WPS (1 << 9) #if defined TIZEN_EXT #define G_SUPPLICANT_KEYMGMT_SAE (1 << 10) +#define G_SUPPLICANT_KEYMGMT_FT_SAE (1 << 11) #define G_SUPPLICANT_KEYMGMT_OWE (1 << 22) #define G_SUPPLICANT_KEYMGMT_DPP (1 << 23) #endif diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index e457fef..12aed30 100755 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -122,6 +122,7 @@ static struct strvalmap keymgmt_map[] = { { "wps", G_SUPPLICANT_KEYMGMT_WPS }, #if defined TIZEN_EXT { "sae", G_SUPPLICANT_KEYMGMT_SAE }, + { "ft-sae", G_SUPPLICANT_KEYMGMT_FT_SAE }, { "owe", G_SUPPLICANT_KEYMGMT_OWE }, { "dpp", G_SUPPLICANT_KEYMGMT_DPP }, #endif @@ -3230,7 +3231,8 @@ static void bss_compute_security(struct g_supplicant_bss *bss) #endif #if defined TIZEN_EXT - if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_SAE) + if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_SAE | + bss->keymgmt & G_SUPPLICANT_KEYMGMT_FT_SAE) bss->sae = TRUE; if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_OWE) bss->owe = TRUE; @@ -7340,7 +7342,14 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid) add_network_security_ciphers(dict, ssid); break; case G_SUPPLICANT_SECURITY_PSK: +#if defined TIZEN_EXT + if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_FT_PSK) + key_mgmt = "FT-PSK WPA-PSK"; + else + key_mgmt = "WPA-PSK"; +#else key_mgmt = "WPA-PSK"; +#endif add_network_security_psk(dict, ssid); add_network_security_ciphers(dict, ssid); add_network_security_proto(dict, ssid); @@ -7365,8 +7374,13 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid) add_network_security_proto(dict, ssid); break; case G_SUPPLICANT_SECURITY_SAE: - if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_PSK) - key_mgmt = "SAE WPA-PSK"; // WFA (WPA3 & WPA2 Mixed -> WPA2 only) + if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_FT_SAE) { + if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_SAE) + key_mgmt = "FT-SAE SAE"; + else + key_mgmt = "FT-SAE"; + } else if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_PSK) + key_mgmt = "SAE WPA-PSK"; else key_mgmt = "SAE"; add_network_security_psk(dict, ssid); diff --git a/plugins/wifi.c b/plugins/wifi.c index 7a8eccc..20b1293 100755 --- a/plugins/wifi.c +++ b/plugins/wifi.c @@ -5298,11 +5298,16 @@ static GSList *get_supported_security_list(unsigned int keymgmt, sec_list = g_slist_prepend (sec_list, "psk"); sec_list = g_slist_prepend (sec_list, "rsn"); } - } else if (keymgmt & G_SUPPLICANT_KEYMGMT_WPA_FT_PSK) + } + + if (keymgmt & G_SUPPLICANT_KEYMGMT_WPA_FT_PSK) sec_list = g_slist_prepend (sec_list, "ft_psk"); if (keymgmt & G_SUPPLICANT_KEYMGMT_SAE) sec_list = g_slist_prepend (sec_list, "sae"); + if (keymgmt & G_SUPPLICANT_KEYMGMT_FT_SAE) + sec_list = g_slist_prepend (sec_list, "ft_sae"); + if (keymgmt & G_SUPPLICANT_KEYMGMT_OWE || owe_transition_mode) sec_list = g_slist_prepend (sec_list, "owe"); if (keymgmt & G_SUPPLICANT_KEYMGMT_DPP)