summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaehyun Kim <jeik01.kim@samsung.com>2022-09-19 21:49:30 +0900
committerJaehyun Kim <jeik01.kim@samsung.com>2022-09-19 12:51:28 +0000
commit4a4767337169b9d4e2c9e1a309416f4322b7e858 (patch)
tree6c47ae98f134dc0c266da0fb8bc653203080ccd0
parent78968dd624e95b9e5f8280464c2613e0e920d8cf (diff)
downloadconnman-4a4767337169b9d4e2c9e1a309416f4322b7e858.tar.gz
connman-4a4767337169b9d4e2c9e1a309416f4322b7e858.tar.bz2
connman-4a4767337169b9d4e2c9e1a309416f4322b7e858.zip
Support ft-psk and ft-sae connectionaccepted/tizen/unified/20220923.052717
Change-Id: I05d8d3934a8a75c874b41cb44654b7bc61b34060 Signed-off-by: Jaehyun Kim <jeik01.kim@samsung.com>
-rwxr-xr-xgsupplicant/gsupplicant.h1
-rwxr-xr-xgsupplicant/supplicant.c20
-rwxr-xr-xplugins/wifi.c7
3 files changed, 24 insertions, 4 deletions
diff --git a/gsupplicant/gsupplicant.h b/gsupplicant/gsupplicant.h
index 884c92e3..3b19519f 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 e457fef2..12aed308 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 7a8eccce..20b1293e 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)