hostapd: fix wpa3-eap modes

wpa3 was not setup correctly and wpa3-192 was missing

Fixes: WIFI-4281
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
John Crispin
2021-10-07 13:48:44 +02:00
parent 2988180211
commit a46262aaaa
4 changed files with 160 additions and 58 deletions

View File

@@ -1,14 +1,16 @@
From 39af14f6e40bcb97772dcc0c03849fbf6aa0032b Mon Sep 17 00:00:00 2001
From 0d49a8d2922a7451afceb759221660a1e399a9ce Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Thu, 27 May 2021 13:24:47 +0200
Subject: [PATCH 01/58] netifd: update to latest HEAD
Signed-off-by: John Crispin <john@phrozen.org>
---
package/network/config/netifd/Makefile | 8 +++-----
.../netifd/patches/002-fix-dhcp-issue.patch | 17 +++++++++++++++++
2 files changed, 20 insertions(+), 5 deletions(-)
package/network/config/netifd/Makefile | 8 +++----
.../netifd/patches/002-fix-dhcp-issue.patch | 17 +++++++++++++++
.../config/netifd/patches/100-script.patch | 21 +++++++++++++++++++
3 files changed, 41 insertions(+), 5 deletions(-)
create mode 100644 package/network/config/netifd/patches/002-fix-dhcp-issue.patch
create mode 100644 package/network/config/netifd/patches/100-script.patch
diff --git a/package/network/config/netifd/Makefile b/package/network/config/netifd/Makefile
index 4b5f110da2..d0ddec8f61 100644
@@ -57,6 +59,33 @@ index 0000000000..6f1d2e708e
+ return;
+ default:
+ break;
diff --git a/package/network/config/netifd/patches/100-script.patch b/package/network/config/netifd/patches/100-script.patch
new file mode 100644
index 0000000000..e7ba83f4bb
--- /dev/null
+++ b/package/network/config/netifd/patches/100-script.patch
@@ -0,0 +1,21 @@
+Index: a/scripts/netifd-wireless.sh
+===================================================================
+--- a/scripts/netifd-wireless.sh
++++ b/scripts/netifd-wireless.sh
+@@ -252,11 +252,14 @@ wireless_vif_parse_encryption() {
+ auth_type=owe
+ ;;
+ wpa3-mixed*)
+- auth_type=eap-eap192
++ auth_type=eap-eap256
+ ;;
+- wpa3*)
++ wpa3-192*)
+ auth_type=eap192
+ ;;
++ wpa3*)
++ auth_type=eap256
++ ;;
+ psk3-mixed*|sae-mixed*)
+ auth_type=psk-sae
+ ;;
--
2.25.1

View File

@@ -1,4 +1,4 @@
From c51842eff4bcbc1def57e54d5eab0e5df2046d7e Mon Sep 17 00:00:00 2001
From c2ac5b5848fe54c08c1fb3a7ab9667dfed160be1 Mon Sep 17 00:00:00 2001
From: John Crispin <john@phrozen.org>
Date: Sat, 4 Sep 2021 05:48:27 +0200
Subject: [PATCH 01/56] hostapd: update to latest HEAD
@@ -8,7 +8,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
package/network/services/hostapd/Makefile | 15 +-
.../hostapd/files/hostapd-basic.config | 2 +-
.../hostapd/files/hostapd-full.config | 4 +-
.../network/services/hostapd/files/hostapd.sh | 145 +++++++--
.../network/services/hostapd/files/hostapd.sh | 177 ++++++++---
...-fix-frequency-setup-with-HE-enabled.patch | 196 -------------
...> 001-wolfssl-init-RNG-with-ECC-key.patch} | 11 +-
...-init-order-disable-pri-sec-channel-.patch | 126 --------
@@ -72,7 +72,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
.../services/hostapd/src/src/ap/ubus.c | 214 +++++++++++++-
.../services/hostapd/src/src/ap/ubus.h | 16 +
.../hostapd/src/src/utils/build_features.h | 2 -
67 files changed, 1280 insertions(+), 2335 deletions(-)
67 files changed, 1302 insertions(+), 2345 deletions(-)
delete mode 100644 package/network/services/hostapd/patches/001-HE-VHT-fix-frequency-setup-with-HE-enabled.patch
rename package/network/services/hostapd/patches/{802-wolfssl-init-RNG-with-ECC-key.patch => 001-wolfssl-init-RNG-with-ECC-key.patch} (76%)
delete mode 100644 package/network/services/hostapd/patches/002-mesh-fix-channel-init-order-disable-pri-sec-channel-.patch
@@ -179,18 +179,31 @@ index df272e443a..61b6daf861 100644
# EAP-SAKE for the integrated EAP server
#CONFIG_EAP_SAKE=y
diff --git a/package/network/services/hostapd/files/hostapd.sh b/package/network/services/hostapd/files/hostapd.sh
index aa72e09eba..c1f48326fa 100644
index aa72e09eba..c95784f054 100644
--- a/package/network/services/hostapd/files/hostapd.sh
+++ b/package/network/services/hostapd/files/hostapd.sh
@@ -49,6 +49,7 @@ hostapd_append_wpa_key_mgmt() {
@@ -48,13 +48,17 @@ hostapd_append_wpa_key_mgmt() {
;;
eap192)
append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
+ append wpa_key_mgmt "WPA-EAP-SHA256"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
+ [ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256"
;;
eap-eap192)
append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
@@ -91,6 +92,7 @@ hostapd_add_log_config() {
- eap-eap192)
- append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
+ eap-eap256)
append wpa_key_mgmt "WPA-EAP"
+ append wpa_key_mgmt "WPA-EAP-SHA256"
+ [ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
+ ;;
+ eap256)
+ append wpa_key_mgmt "WPA-EAP-SHA256"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
- [ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256"
;;
sae)
append wpa_key_mgmt "SAE"
@@ -91,6 +95,7 @@ hostapd_add_log_config() {
hostapd_common_add_device_config() {
config_add_array basic_rate
config_add_array supported_rates
@@ -198,7 +211,7 @@ index aa72e09eba..c1f48326fa 100644
config_add_string country country3
config_add_boolean country_ie doth
@@ -99,6 +101,10 @@ hostapd_common_add_device_config() {
@@ -99,6 +104,10 @@ hostapd_common_add_device_config() {
config_add_string require_mode
config_add_boolean legacy_rates
config_add_int cell_density
@@ -209,7 +222,7 @@ index aa72e09eba..c1f48326fa 100644
config_add_string acs_chan_bias
config_add_array hostapd_options
@@ -115,7 +121,8 @@ hostapd_prepare_device_config() {
@@ -115,7 +124,8 @@ hostapd_prepare_device_config() {
local base_cfg=
json_get_vars country country3 country_ie beacon_int:100 dtim_period:2 doth require_mode legacy_rates \
@@ -219,7 +232,7 @@ index aa72e09eba..c1f48326fa 100644
hostapd_set_log_options base_cfg
@@ -207,11 +214,16 @@ hostapd_prepare_device_config() {
@@ -207,11 +217,16 @@ hostapd_prepare_device_config() {
hostapd_add_rate brlist "$br"
done
@@ -236,7 +249,7 @@ index aa72e09eba..c1f48326fa 100644
json_get_values opts hostapd_options
for val in $opts; do
@@ -269,7 +281,7 @@ hostapd_common_add_bss_config() {
@@ -269,7 +284,7 @@ hostapd_common_add_bss_config() {
config_add_array domain_match domain_match2 domain_suffix_match domain_suffix_match2
config_add_string ieee80211w_mgmt_cipher
@@ -245,7 +258,7 @@ index aa72e09eba..c1f48326fa 100644
config_add_string vlan_tagged_interface vlan_bridge
config_add_string vlan_file
@@ -287,6 +299,7 @@ hostapd_common_add_bss_config() {
@@ -287,6 +302,7 @@ hostapd_common_add_bss_config() {
config_add_boolean wnm_sleep_mode wnm_sleep_mode_no_keys bss_transition
config_add_int time_advertisement
config_add_string time_zone
@@ -253,7 +266,7 @@ index aa72e09eba..c1f48326fa 100644
config_add_boolean ieee80211k rrm_neighbor_report rrm_beacon_report
@@ -311,6 +324,7 @@ hostapd_common_add_bss_config() {
@@ -311,6 +327,7 @@ hostapd_common_add_bss_config() {
config_add_array supported_rates
config_add_boolean sae_require_mfp
@@ -261,7 +274,7 @@ index aa72e09eba..c1f48326fa 100644
config_add_string 'owe_transition_bssid:macaddr' 'owe_transition_ssid:string'
@@ -319,23 +333,33 @@ hostapd_common_add_bss_config() {
@@ -319,23 +336,33 @@ hostapd_common_add_bss_config() {
config_add_int iw_ipaddr_type_availability iw_gas_address3
config_add_string iw_hessid iw_network_auth_type iw_qos_map_set
config_add_array iw_roaming_consortium iw_domain_name iw_anqp_3gpp_cell_net iw_nai_realm
@@ -298,7 +311,7 @@ index aa72e09eba..c1f48326fa 100644
}
hostapd_set_vlan_file() {
@@ -387,7 +411,7 @@ append_iw_anqp_3gpp_cell_net() {
@@ -387,7 +414,7 @@ append_iw_anqp_3gpp_cell_net() {
if [ -z "$iw_anqp_3gpp_cell_net_conf" ]; then
iw_anqp_3gpp_cell_net_conf="$1"
else
@@ -307,7 +320,7 @@ index aa72e09eba..c1f48326fa 100644
fi
}
@@ -399,10 +423,22 @@ append_iw_nai_realm() {
@@ -399,10 +426,22 @@ append_iw_nai_realm() {
[ -n "$1" ] && append bss_conf "nai_realm=$1" "$N"
}
@@ -330,7 +343,7 @@ index aa72e09eba..c1f48326fa 100644
append_osu_provider_service_desc() {
append bss_conf "osu_service_desc=$1" "$N"
}
@@ -450,6 +486,7 @@ append_osu_provider() {
@@ -450,6 +489,7 @@ append_osu_provider() {
append bss_conf "osu_method_list=$osu_method_list" "$N"
config_list_foreach "$1" osu_service_desc append_osu_provider_service_desc
@@ -338,7 +351,7 @@ index aa72e09eba..c1f48326fa 100644
config_list_foreach "$1" osu_icon append_osu_icon
append bss_conf "$N"
@@ -459,6 +496,14 @@ append_hs20_conn_capab() {
@@ -459,6 +499,14 @@ append_hs20_conn_capab() {
[ -n "$1" ] && append bss_conf "hs20_conn_capab=$1" "$N"
}
@@ -353,7 +366,7 @@ index aa72e09eba..c1f48326fa 100644
append_airtime_sta_weight() {
[ -n "$1" ] && append bss_conf "airtime_sta_weight=$1" "$N"
}
@@ -482,10 +527,12 @@ hostapd_set_bss_options() {
@@ -482,10 +530,12 @@ hostapd_set_bss_options() {
macfilter ssid utf8_ssid wmm uapsd hidden short_preamble rsn_preauth \
iapp_interface eapol_version dynamic_vlan ieee80211w nasid \
acct_server acct_secret acct_port acct_interval \
@@ -368,7 +381,7 @@ index aa72e09eba..c1f48326fa 100644
set_default isolate 0
set_default maxassoc 0
@@ -506,6 +553,7 @@ hostapd_set_bss_options() {
@@ -506,6 +556,7 @@ hostapd_set_bss_options() {
set_default multi_ap 0
set_default airtime_bss_weight 0
set_default airtime_bss_limit 0
@@ -376,7 +389,7 @@ index aa72e09eba..c1f48326fa 100644
append bss_conf "ctrl_interface=/var/run/hostapd"
if [ "$isolate" -gt 0 ]; then
@@ -532,6 +580,7 @@ hostapd_set_bss_options() {
@@ -532,6 +583,7 @@ hostapd_set_bss_options() {
append bss_conf "uapsd_advertisement_enabled=$uapsd" "$N"
append bss_conf "utf8_ssid=$utf8_ssid" "$N"
append bss_conf "multi_ap=$multi_ap" "$N"
@@ -384,7 +397,7 @@ index aa72e09eba..c1f48326fa 100644
[ "$tdls_prohibit" -gt 0 ] && append bss_conf "tdls_prohibit=$tdls_prohibit" "$N"
@@ -550,6 +599,7 @@ hostapd_set_bss_options() {
@@ -550,19 +602,21 @@ hostapd_set_bss_options() {
append bss_conf "acct_server_shared_secret=$acct_secret" "$N"
[ -n "$acct_interval" ] && \
append bss_conf "radius_acct_interim_interval=$acct_interval" "$N"
@@ -392,7 +405,15 @@ index aa72e09eba..c1f48326fa 100644
}
case "$auth_type" in
@@ -563,6 +613,7 @@ hostapd_set_bss_options() {
- sae|owe|eap192|eap-eap192)
+ sae|owe|eap192|eap256)
set_default ieee80211w 2
set_default sae_require_mfp 1
;;
- psk-sae)
+ psk-sae|eap-eap256)
set_default ieee80211w 1
set_default sae_require_mfp 1
;;
esac
[ -n "$sae_require_mfp" ] && append bss_conf "sae_require_mfp=$sae_require_mfp" "$N"
@@ -400,7 +421,13 @@ index aa72e09eba..c1f48326fa 100644
local vlan_possible=""
@@ -604,7 +655,7 @@ hostapd_set_bss_options() {
@@ -599,12 +653,12 @@ hostapd_set_bss_options() {
vlan_possible=1
wps_possible=1
;;
- eap|eap192|eap-eap192)
+ eap|eap192|eap-eap256|eap256)
json_get_vars \
auth_server auth_secret auth_port \
dae_client dae_secret dae_port \
ownip radius_client_addr \
@@ -409,7 +436,7 @@ index aa72e09eba..c1f48326fa 100644
# radius can provide VLAN ID for clients
vlan_possible=1
@@ -616,18 +667,22 @@ hostapd_set_bss_options() {
@@ -616,18 +670,22 @@ hostapd_set_bss_options() {
set_default auth_port 1812
set_default dae_port 3799
@@ -436,7 +463,7 @@ index aa72e09eba..c1f48326fa 100644
[ -n "$ownip" ] && append bss_conf "own_ip_addr=$ownip" "$N"
[ -n "$radius_client_addr" ] && append bss_conf "radius_client_addr=$radius_client_addr" "$N"
@@ -700,6 +755,7 @@ hostapd_set_bss_options() {
@@ -700,6 +758,7 @@ hostapd_set_bss_options() {
append bss_conf "ssid=$ssid" "$N"
[ -n "$network_bridge" ] && append bss_conf "bridge=$network_bridge" "$N"
@@ -444,7 +471,7 @@ index aa72e09eba..c1f48326fa 100644
[ -n "$iapp_interface" ] && {
local ifname
network_get_device ifname "$iapp_interface" || ifname="$iapp_interface"
@@ -740,7 +796,7 @@ hostapd_set_bss_options() {
@@ -740,7 +799,7 @@ hostapd_set_bss_options() {
append bss_conf "ftm_responder=1" "$N"
[ "$stationary_ap" -eq "1" ] && append bss_conf "stationary_ap=1" "$N"
[ -n "$lci" ] && append bss_conf "lci=$lci" "$N"
@@ -453,7 +480,7 @@ index aa72e09eba..c1f48326fa 100644
}
fi
@@ -764,6 +820,7 @@ hostapd_set_bss_options() {
@@ -764,6 +823,7 @@ hostapd_set_bss_options() {
;;
esac
@@ -461,7 +488,7 @@ index aa72e09eba..c1f48326fa 100644
append bss_conf "mobility_domain=$mobility_domain" "$N"
append bss_conf "ft_psk_generate_local=$ft_psk_generate_local" "$N"
append bss_conf "ft_over_ds=$ft_over_ds" "$N"
@@ -778,6 +835,13 @@ hostapd_set_bss_options() {
@@ -778,6 +838,13 @@ hostapd_set_bss_options() {
set_default r0_key_lifetime 10000
set_default pmk_r1_push 0
@@ -475,7 +502,25 @@ index aa72e09eba..c1f48326fa 100644
[ -n "$r1_key_holder" ] && append bss_conf "r1_key_holder=$r1_key_holder" "$N"
append bss_conf "r0_key_lifetime=$r0_key_lifetime" "$N"
append bss_conf "pmk_r1_push=$pmk_r1_push" "$N"
@@ -863,13 +927,17 @@ hostapd_set_bss_options() {
@@ -822,7 +889,16 @@ hostapd_set_bss_options() {
json_get_vars ieee80211w_mgmt_cipher ieee80211w_max_timeout ieee80211w_retry_timeout
append bss_conf "ieee80211w=$ieee80211w" "$N"
[ "$ieee80211w" -gt "0" ] && {
- append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N"
+ case "$auth_type" in
+ eap192)
+ append bss_conf "group_mgmt_cipher=BIP-GMAC-256" "$N"
+ append bss_conf "group_cipher=GCMP-256" "$N"
+ ;;
+ *)
+ append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N"
+ ;;
+ esac
+
[ -n "$ieee80211w_max_timeout" ] && \
append bss_conf "assoc_sa_query_max_timeout=$ieee80211w_max_timeout" "$N"
[ -n "$ieee80211w_retry_timeout" ] && \
@@ -863,13 +939,17 @@ hostapd_set_bss_options() {
}
[ -n "$vlan_possible" -a -n "$dynamic_vlan" ] && {
@@ -495,7 +540,7 @@ index aa72e09eba..c1f48326fa 100644
[ -n "$vlan_tagged_interface" ] && \
append bss_conf "vlan_tagged_interface=$vlan_tagged_interface" "$N"
[ -n "$vlan_file" ] && {
@@ -882,6 +950,7 @@ hostapd_set_bss_options() {
@@ -882,6 +962,7 @@ hostapd_set_bss_options() {
json_get_vars iw_hessid iw_venue_group iw_venue_type iw_network_auth_type
json_get_vars iw_roaming_consortium iw_domain_name iw_anqp_3gpp_cell_net iw_nai_realm
json_get_vars iw_anqp_elem iw_qos_map_set iw_ipaddr_type_availability iw_gas_address3
@@ -503,7 +548,7 @@ index aa72e09eba..c1f48326fa 100644
set_default iw_enabled 0
if [ "$iw_enabled" = "1" ]; then
@@ -910,6 +979,8 @@ hostapd_set_bss_options() {
@@ -910,6 +991,8 @@ hostapd_set_bss_options() {
json_for_each_item append_iw_roaming_consortium iw_roaming_consortium
json_for_each_item append_iw_anqp_elem iw_anqp_elem
json_for_each_item append_iw_nai_realm iw_nai_realm
@@ -512,7 +557,7 @@ index aa72e09eba..c1f48326fa 100644
iw_domain_name_conf=
json_for_each_item append_iw_domain_name iw_domain_name
@@ -924,11 +995,14 @@ hostapd_set_bss_options() {
@@ -924,11 +1007,14 @@ hostapd_set_bss_options() {
local hs20 disable_dgaf osen anqp_domain_id hs20_deauth_req_timeout \
@@ -529,7 +574,7 @@ index aa72e09eba..c1f48326fa 100644
set_default disable_dgaf $hs20
set_default osen 0
set_default anqp_domain_id 0
@@ -936,6 +1010,7 @@ hostapd_set_bss_options() {
@@ -936,6 +1022,7 @@ hostapd_set_bss_options() {
if [ "$hs20" = "1" ]; then
append bss_conf "hs20=1" "$N"
append_hs20_icons
@@ -537,7 +582,7 @@ index aa72e09eba..c1f48326fa 100644
append bss_conf "disable_dgaf=$disable_dgaf" "$N"
append bss_conf "osen=$osen" "$N"
append bss_conf "anqp_domain_id=$anqp_domain_id" "$N"
@@ -945,16 +1020,31 @@ hostapd_set_bss_options() {
@@ -945,16 +1032,31 @@ hostapd_set_bss_options() {
[ -n "$hs20_operating_class" ] && append bss_conf "hs20_operating_class=$hs20_operating_class" "$N"
[ -n "$hs20_t_c_filename" ] && append bss_conf "hs20_t_c_filename=$hs20_t_c_filename" "$N"
[ -n "$hs20_t_c_timestamp" ] && append bss_conf "hs20_t_c_timestamp=$hs20_t_c_timestamp" "$N"
@@ -570,7 +615,7 @@ index aa72e09eba..c1f48326fa 100644
set_default per_sta_vif 0
if [ "$per_sta_vif" -gt 0 ]; then
@@ -1079,16 +1169,16 @@ wpa_supplicant_set_fixed_freq() {
@@ -1079,16 +1181,16 @@ wpa_supplicant_set_fixed_freq() {
append network_data "frequency=$freq" "$N$T"
case "$htmode" in
NOHT) append network_data "disable_ht=1" "$N$T";;
@@ -591,7 +636,7 @@ index aa72e09eba..c1f48326fa 100644
*) append network_data "disable_vht=1" "$N$T";;
esac
}
@@ -1106,7 +1196,8 @@ wpa_supplicant_add_network() {
@@ -1106,19 +1208,21 @@ wpa_supplicant_add_network() {
ssid bssid key \
basic_rate mcast_rate \
ieee80211w ieee80211r \
@@ -600,8 +645,15 @@ index aa72e09eba..c1f48326fa 100644
+ default_disabled
case "$auth_type" in
sae|owe|eap192|eap-eap192)
@@ -1119,6 +1210,7 @@ wpa_supplicant_add_network() {
- sae|owe|eap192|eap-eap192)
+ sae|owe|eap-eap256)
set_default ieee80211w 2
;;
- psk-sae)
+ psk-sae|eap192|eap256)
set_default ieee80211w 1
;;
esac
set_default ieee80211r 0
set_default multi_ap 0
@@ -609,7 +661,7 @@ index aa72e09eba..c1f48326fa 100644
local key_mgmt='NONE'
local network_data=
@@ -1150,7 +1242,10 @@ wpa_supplicant_add_network() {
@@ -1150,7 +1254,10 @@ wpa_supplicant_add_network() {
scan_ssid=""
}
@@ -621,6 +673,15 @@ index aa72e09eba..c1f48326fa 100644
case "$auth_type" in
none) ;;
@@ -1186,7 +1293,7 @@ wpa_supplicant_add_network() {
fi
append network_data "$passphrase" "$N$T"
;;
- eap|eap192|eap-eap192)
+ eap|eap192|eap-eap256|eap256)
hostapd_append_wpa_key_mgmt
key_mgmt="$wpa_key_mgmt"
diff --git a/package/network/services/hostapd/patches/001-HE-VHT-fix-frequency-setup-with-HE-enabled.patch b/package/network/services/hostapd/patches/001-HE-VHT-fix-frequency-setup-with-HE-enabled.patch
deleted file mode 100644
index 37c17c50af..0000000000

View File

@@ -6,7 +6,7 @@ PKG_RELEASE:=1
PKG_SOURCE_URL=https://github.com/blogic/ucentral-schema.git
PKG_SOURCE_PROTO:=git
PKG_SOURCE_DATE:=2021-02-15
PKG_SOURCE_VERSION:=224042e57012b72231c5d402816a83fab5bbf54f
PKG_SOURCE_VERSION:=8f0922b4187d1182518caba466a7ed5513eb56f7
PKG_MAINTAINER:=John Crispin <john@phrozen.org>
PKG_LICENSE:=BSD-3-Clause

View File

@@ -48,14 +48,17 @@ hostapd_append_wpa_key_mgmt() {
;;
eap192)
append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
append wpa_key_mgmt "WPA-EAP-SHA256"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256"
;;
eap-eap192)
append wpa_key_mgmt "WPA-EAP-SUITE-B-192"
eap-eap256)
append wpa_key_mgmt "WPA-EAP"
append wpa_key_mgmt "WPA-EAP-SHA256"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
;;
eap256)
append wpa_key_mgmt "WPA-EAP-SHA256"
[ "${ieee80211r:-0}" -gt 0 ] && append wpa_key_mgmt "FT-EAP"
[ "${ieee80211w:-0}" -gt 0 ] && append wpa_key_mgmt "WPA-EAP-SHA256"
;;
sae)
append wpa_key_mgmt "SAE"
@@ -603,11 +606,11 @@ hostapd_set_bss_options() {
}
case "$auth_type" in
sae|owe|eap192|eap-eap192)
sae|owe|eap192|eap256)
set_default ieee80211w 2
set_default sae_require_mfp 1
;;
psk-sae)
psk-sae|eap-eap256)
set_default ieee80211w 1
set_default sae_require_mfp 1
;;
@@ -650,7 +653,7 @@ hostapd_set_bss_options() {
vlan_possible=1
wps_possible=1
;;
eap|eap192|eap-eap192)
eap|eap192|eap-eap256|eap256)
json_get_vars \
auth_server auth_secret auth_port \
dae_client dae_secret dae_port \
@@ -886,7 +889,16 @@ hostapd_set_bss_options() {
json_get_vars ieee80211w_mgmt_cipher ieee80211w_max_timeout ieee80211w_retry_timeout
append bss_conf "ieee80211w=$ieee80211w" "$N"
[ "$ieee80211w" -gt "0" ] && {
append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N"
case "$auth_type" in
eap192)
append bss_conf "group_mgmt_cipher=BIP-GMAC-256" "$N"
append bss_conf "group_cipher=GCMP-256" "$N"
;;
*)
append bss_conf "group_mgmt_cipher=${ieee80211w_mgmt_cipher:-AES-128-CMAC}" "$N"
;;
esac
[ -n "$ieee80211w_max_timeout" ] && \
append bss_conf "assoc_sa_query_max_timeout=$ieee80211w_max_timeout" "$N"
[ -n "$ieee80211w_retry_timeout" ] && \
@@ -1200,10 +1212,10 @@ wpa_supplicant_add_network() {
default_disabled
case "$auth_type" in
sae|owe|eap192|eap-eap192)
sae|owe|eap-eap256)
set_default ieee80211w 2
;;
psk-sae)
psk-sae|eap192|eap256)
set_default ieee80211w 1
;;
esac
@@ -1281,7 +1293,7 @@ wpa_supplicant_add_network() {
fi
append network_data "$passphrase" "$N$T"
;;
eap|eap192|eap-eap192)
eap|eap192|eap-eap256|eap256)
hostapd_append_wpa_key_mgmt
key_mgmt="$wpa_key_mgmt"