X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=gsupplicant%2Fsupplicant.c;h=8996d2de9a1e5b9a0576efa6b12cc4396e73e9cb;hb=refs%2Ftags%2Faccepted%2Ftizen%2F7.0%2Funified%2F20221209.015645;hp=1cecf6c1a17dc5477925d18a97730b9ceffe3701;hpb=dd2f1d17b32de651564219c67f4e815382c3adf8;p=platform%2Fupstream%2Fconnman.git diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index 1cecf6c..8996d2d 100755 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -308,6 +308,7 @@ struct g_supplicant_bss { GSupplicantPhy_mode phy_mode; dbus_int16_t snr; dbus_uint32_t est_throughput; + dbus_bool_t psk_sha256; #endif unsigned int wps_capabilities; #if defined TIZEN_EXT @@ -539,6 +540,8 @@ static const char *security2string(GSupplicantSecurity security) case G_SUPPLICANT_SECURITY_IEEE8021X: return "ieee8021x"; #if defined TIZEN_EXT + case G_SUPPLICANT_SECURITY_PSK_SHA256: + return "psk_sha256"; case G_SUPPLICANT_SECURITY_FT_PSK: return "ft_psk"; case G_SUPPLICANT_SECURITY_FT_IEEE8021X: @@ -670,6 +673,7 @@ static int store_network_information(GSupplicantInterface * interface, ssid->security == G_SUPPLICANT_SECURITY_PSK || #if defined TIZEN_EXT ssid->security == G_SUPPLICANT_SECURITY_SAE || + ssid->security == G_SUPPLICANT_SECURITY_PSK_SHA256 || #endif ssid->security == G_SUPPLICANT_SECURITY_NONE) && ssid->passphrase) { @@ -1941,6 +1945,7 @@ const char *g_supplicant_network_get_enc_mode(GSupplicantNetwork *network) network->best_bss->security == G_SUPPLICANT_SECURITY_SAE || network->best_bss->security == G_SUPPLICANT_SECURITY_OWE || network->best_bss->security == G_SUPPLICANT_SECURITY_DPP || + network->best_bss->security == G_SUPPLICANT_SECURITY_PSK_SHA256 || network->best_bss->security == G_SUPPLICANT_SECURITY_IEEE8021X) { unsigned int pairwise; @@ -2621,7 +2626,14 @@ static char *create_group(struct g_supplicant_bss *bss) if (mode) g_string_append_printf(str, "_%s", mode); +#if defined TIZEN_EXT + if (bss->security == G_SUPPLICANT_SECURITY_PSK_SHA256) + security = "psk"; + else + security = security2string(bss->security); +#else security = security2string(bss->security); +#endif if (security) g_string_append_printf(str, "_%s", security); @@ -3215,7 +3227,7 @@ static void bss_compute_security(struct g_supplicant_bss *bss) #if defined TIZEN_EXT if (bss->keymgmt & (G_SUPPLICANT_KEYMGMT_WPA_EAP | - G_SUPPLICANT_KEYMGMT_WPA_EAP_256)) + G_SUPPLICANT_KEYMGMT_WPA_EAP_256)) bss->ieee8021x = TRUE; else if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_FT_EAP) bss->ft_ieee8021x = TRUE; @@ -3229,8 +3241,13 @@ static void bss_compute_security(struct g_supplicant_bss *bss) #if defined TIZEN_EXT if (bss->keymgmt & + G_SUPPLICANT_KEYMGMT_WPA_PSK_256) { + bss->psk_sha256 = TRUE; + } + + if (bss->keymgmt & (G_SUPPLICANT_KEYMGMT_WPA_PSK | - G_SUPPLICANT_KEYMGMT_WPA_PSK_256)) + G_SUPPLICANT_KEYMGMT_WPA_PSK_256)) bss->psk = TRUE; else if (bss->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_FT_PSK) bss->ft_psk = TRUE; @@ -3259,6 +3276,8 @@ static void bss_compute_security(struct g_supplicant_bss *bss) bss->security = G_SUPPLICANT_SECURITY_IEEE8021X; else if (bss->sae) bss->security = G_SUPPLICANT_SECURITY_SAE; + else if (bss->psk_sha256) + bss->security = G_SUPPLICANT_SECURITY_PSK_SHA256; #endif else if (bss->psk) bss->security = G_SUPPLICANT_SECURITY_PSK; @@ -7265,6 +7284,7 @@ static void add_network_ieee80211w(DBusMessageIter *dict, GSupplicantSSID *ssid) { if (ssid->security != G_SUPPLICANT_SECURITY_SAE && ssid->security != G_SUPPLICANT_SECURITY_OWE + && ssid->security != G_SUPPLICANT_SECURITY_PSK_SHA256 && ssid->security != G_SUPPLICANT_SECURITY_DPP) return; @@ -7373,6 +7393,15 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid) add_network_security_proto(dict, ssid); break; #if defined TIZEN_EXT + case G_SUPPLICANT_SECURITY_PSK_SHA256: + if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_PSK) + key_mgmt = "WPA-PSK-SHA256 WPA-PSK"; + else + key_mgmt = "WPA-PSK-SHA256"; + add_network_security_psk(dict, ssid); + add_network_security_ciphers(dict, ssid); + add_network_security_proto(dict, ssid); + break; case G_SUPPLICANT_SECURITY_FT_PSK: key_mgmt = "FT-PSK"; add_network_security_psk(dict, ssid);