]>
git.ipfire.org Git - thirdparty/hostap.git/blob - tests/hwsim/test_ap_mixed.py
1 # Mixed AP module parameters enabled
2 # Copyright (c) 2014, Qualcomm Atheros, Inc.
4 # This software may be distributed under the terms of the BSD license.
5 # See README for more details.
8 logger
= logging
.getLogger()
12 from utils
import skip_with_fips
14 def test_ap_mixed_security(dev
, apdev
):
15 """WPA/WPA2 with PSK, EAP, SAE, FT in a single BSS"""
16 skip_with_fips(dev
[0])
17 dev
[0].flush_scan_cache()
18 sae
= "SAE" in dev
[2].get_capability("auth_alg")
20 passphrase
= 'qwertyuiop'
21 params
= hostapd
.wpa_mixed_params(ssid
=ssid
, passphrase
=passphrase
)
22 params
['wpa_key_mgmt'] = "WPA-PSK WPA-PSK-SHA256 WPA-EAP WPA-EAP-SHA256 SAE FT-PSK FT-EAP FT-SAE"
23 params
["ieee8021x"] = "1"
24 params
["eap_server"] = "1"
25 params
["eap_user_file"] = "auth_serv/eap_user.conf"
26 params
['nas_identifier'] = "nas1.w1.fi"
27 hapd
= hostapd
.add_ap(apdev
[0], params
)
29 dev
[0].connect(ssid
, key_mgmt
="WPA-PSK", proto
="WPA", pairwise
="TKIP",
30 psk
=passphrase
, scan_freq
="2412")
31 dev
[1].connect(ssid
, key_mgmt
="WPA-EAP-SHA256", proto
="WPA2", eap
="GPSK",
33 password
="abcdefghijklmnop0123456789abcdef",
36 dev
[2].request("SET sae_groups ")
37 dev
[2].connect(ssid
, psk
=passphrase
, key_mgmt
="SAE", scan_freq
="2412")
39 logger
.debug(dev
[0].request("SCAN_RESULTS"))
40 bss
= dev
[0].get_bss(apdev
[0]['bssid'])
42 if "[WPA-EAP+PSK-TKIP]" not in bss
['flags']:
43 raise Exception("Unexpected flags (WPA): " + bss
['flags'])
44 if sae
and "[WPA2-EAP+PSK+SAE+FT/EAP+FT/PSK+FT/SAE+EAP-SHA256+PSK-SHA256-CCMP]" not in bss
['flags']:
45 raise Exception("Unexpected flags (WPA2): " + bss
['flags'])
47 if dev
[0].get_status_field("key_mgmt") != "WPA-PSK":
48 raise Exception("Unexpected key_mgmt(1)")
49 if dev
[0].get_status_field("pairwise_cipher") != "TKIP":
50 raise Exception("Unexpected pairwise(1)")
51 if dev
[1].get_status_field("key_mgmt") != "WPA2-EAP-SHA256":
52 raise Exception("Unexpected key_mgmt(2)")
53 if sae
and dev
[2].get_status_field("key_mgmt") != "SAE":
54 raise Exception("Unexpected key_mgmt(3)")
56 hwsim_utils
.test_connectivity(dev
[0], dev
[1])
58 hwsim_utils
.test_connectivity(dev
[1], dev
[2])
59 hwsim_utils
.test_connectivity(dev
[0], dev
[2])
62 hwsim_utils
.test_connectivity(dev
[i
], hapd
)
63 dev
[i
].request("DISCONNECT")
65 dev
[0].connect(ssid
, key_mgmt
="WPA-PSK WPA-PSK-SHA256", psk
=passphrase
,
67 dev
[1].connect(ssid
, key_mgmt
="WPA-EAP", proto
="WPA", eap
="GPSK",
69 password
="abcdefghijklmnop0123456789abcdef",
72 dev
[2].connect(ssid
, key_mgmt
="WPA-PSK WPA-PSK-SHA256 SAE",
73 psk
=passphrase
, scan_freq
="2412")
75 if dev
[0].get_status_field("key_mgmt") != "WPA2-PSK-SHA256":
76 raise Exception("Unexpected key_mgmt(1b)")
77 if dev
[0].get_status_field("pairwise_cipher") != "CCMP":
78 raise Exception("Unexpected pairwise(1b)")
79 if dev
[1].get_status_field("key_mgmt") != "WPA/IEEE 802.1X/EAP":
80 raise Exception("Unexpected key_mgmt(2b)")
81 if sae
and dev
[2].get_status_field("key_mgmt") != "SAE":
82 raise Exception("Unexpected key_mgmt(3b)")
85 dev
[i
].request("DISCONNECT")
87 dev
[0].connect(ssid
, key_mgmt
="FT-PSK", psk
=passphrase
, scan_freq
="2412")
88 dev
[1].connect(ssid
, key_mgmt
="FT-EAP", eap
="GPSK", identity
="gpsk user",
89 password
="abcdefghijklmnop0123456789abcdef",
92 dev
[2].connect(ssid
, psk
=passphrase
, key_mgmt
="FT-SAE",
95 if dev
[0].get_status_field("key_mgmt") != "FT-PSK":
96 raise Exception("Unexpected key_mgmt(1c)")
97 if dev
[1].get_status_field("key_mgmt") != "FT-EAP":
98 raise Exception("Unexpected key_mgmt(2c)")
99 if sae
and dev
[2].get_status_field("key_mgmt") != "FT-SAE":
100 raise Exception("Unexpected key_mgmt(3c)")