[PATCH] gsupplicant: Set MFP optional and key_mgmt for PSK
"Dembianny, Sven (GDE-EDSD7)" <[email protected]> Thu, 15 May 2025 15:24:47 +0200
| Newsgroups | dev.linux.lists.connman |
|---|---|
| Message-ID | <[email protected]> |
From: Sven Dembianny <[email protected]> This replaces 23b09a8a and enables MFPC independent of AP setting which is needed for WFA certification, see "Wi-Fi CERTIFIED Protected Management Frames Test Plan v1.9.pdf", 3.3.2 "STAUT requirements". Additionally key_mgmt is set independent of AP because roaming between APs with different AKM, e.g. WPA2 -> WPA3 is not working, since WPA-PSK is still set from first connection. wpa_supplicant does not try to connect at all in that case: skip RSN IE - key mgmt mismatch reject due to mismatch with WPA/WPA2 --- gsupplicant/supplicant.c | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c index f3be9e7b..5e289953 100644 --- a/gsupplicant/supplicant.c +++ b/gsupplicant/supplicant.c @@ -4955,22 +4955,9 @@ static void add_network_security(DBusMessageIter *dict, GSupplicantSSID *ssid) add_network_security_ciphers(dict, ssid); break; case G_SUPPLICANT_SECURITY_PSK: - if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_SAE) { - if (ssid->keymgmt & G_SUPPLICANT_KEYMGMT_WPA_PSK) { - /* - * WPA3-Personal transition mode: supports both - * WPA2-Personal (PSK) and WPA3-Personal (SAE) - */ - key_mgmt = "SAE WPA-PSK"; - ieee80211w = G_SUPPLICANT_MFP_OPTIONAL; - } else { - key_mgmt = "SAE"; - ieee80211w = G_SUPPLICANT_MFP_REQUIRED; - } - add_network_ieee80211w(dict, ssid, ieee80211w); - } else { - key_mgmt = "WPA-PSK"; - } + key_mgmt = "SAE WPA-PSK WPA-PSK-SHA256"; + ieee80211w = G_SUPPLICANT_MFP_OPTIONAL; + add_network_ieee80211w(dict, ssid, ieee80211w); add_network_security_psk(dict, ssid); add_network_security_ciphers(dict, ssid); add_network_security_proto(dict, ssid); -- 2.49.0