tests: RRB wildcard R0KH/R1KH pull with multiple BSSs
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
a422d9b4c2
commit
0d0baf9f17
1 changed files with 78 additions and 0 deletions
|
@ -1348,6 +1348,84 @@ def test_ap_ft_eap_pull_wildcard(dev, apdev):
|
|||
|
||||
run_roams(dev[0], apdev, hapd, hapd1, ssid, passphrase, eap=True)
|
||||
|
||||
def test_ap_ft_eap_pull_wildcard_multi_bss(dev, apdev, params):
|
||||
"""WPA2-EAP-FT AP (pull PMK) - wildcard R0KH/R1KH with multiple BSSs"""
|
||||
bssconf = os.path.join(params['logdir'],
|
||||
'ap_ft_eap_pull_wildcard_multi_bss.bss.conf')
|
||||
ssid = "test-ft"
|
||||
passphrase = "12345678"
|
||||
radius = hostapd.radius_params()
|
||||
|
||||
params = ft_params1(ssid=ssid, passphrase=passphrase, discovery=True)
|
||||
params['wpa_key_mgmt'] = "WPA-EAP FT-EAP"
|
||||
params["ieee8021x"] = "1"
|
||||
params["pmk_r1_push"] = "0"
|
||||
params["r0kh"] = "ff:ff:ff:ff:ff:ff * 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"
|
||||
params["r1kh"] = "00:00:00:00:00:00 00:00:00:00:00:00 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"
|
||||
params["eap_server"] = "0"
|
||||
params = dict(list(radius.items()) + list(params.items()))
|
||||
hapd = hostapd.add_ap(apdev[0], params)
|
||||
ifname2 = apdev[0]['ifname'] + "-2"
|
||||
bssid2 = "02:00:00:00:03:01"
|
||||
params['nas_identifier'] = "nas1b.w1.fi"
|
||||
params['r1_key_holder'] = "000102030415"
|
||||
with open(bssconf, 'w') as f:
|
||||
f.write("driver=nl80211\n")
|
||||
f.write("hw_mode=g\n")
|
||||
f.write("channel=1\n")
|
||||
f.write("ieee80211n=1\n")
|
||||
f.write("interface=%s\n" % ifname2)
|
||||
f.write("bssid=%s\n" % bssid2)
|
||||
f.write("ctrl_interface=/var/run/hostapd\n")
|
||||
for name, val in params.items():
|
||||
f.write("%s=%s\n" % (name, val))
|
||||
hapd2 = hostapd.add_bss(apdev[0], ifname2, bssconf)
|
||||
|
||||
params = ft_params2(ssid=ssid, passphrase=passphrase, discovery=True)
|
||||
params['wpa_key_mgmt'] = "WPA-EAP FT-EAP"
|
||||
params["ieee8021x"] = "1"
|
||||
params["pmk_r1_push"] = "0"
|
||||
params["r0kh"] = "ff:ff:ff:ff:ff:ff * 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"
|
||||
params["r1kh"] = "00:00:00:00:00:00 00:00:00:00:00:00 00112233445566778899aabbccddeeff00112233445566778899aabbccddeeff"
|
||||
params["eap_server"] = "0"
|
||||
params = dict(list(radius.items()) + list(params.items()))
|
||||
hapd1 = hostapd.add_ap(apdev[1], params)
|
||||
|
||||
# The first iteration of the roaming test will use wildcard R0KH discovery
|
||||
# and RRB sequence number synchronization while the second iteration shows
|
||||
# the clean RRB exchange where those extra steps are not needed.
|
||||
for i in range(2):
|
||||
hapd.note("Test iteration %d" % i)
|
||||
dev[0].note("Test iteration %d" % i)
|
||||
|
||||
id = dev[0].connect(ssid, key_mgmt="FT-EAP", eap="GPSK",
|
||||
identity="gpsk user",
|
||||
password="abcdefghijklmnop0123456789abcdef",
|
||||
bssid=bssid2,
|
||||
scan_freq="2412")
|
||||
res = dev[0].get_status_field("bssid")
|
||||
if res != bssid2:
|
||||
raise Exception("Unexpected BSSID after initial connection: " + res)
|
||||
|
||||
dev[0].scan_for_bss(apdev[1]['bssid'], freq="2412")
|
||||
dev[0].set_network(id, "bssid", "00:00:00:00:00:00")
|
||||
dev[0].roam(apdev[1]['bssid'])
|
||||
res = dev[0].get_status_field("bssid")
|
||||
if res != apdev[1]['bssid']:
|
||||
raise Exception("Unexpected BSSID after first roam: " + res)
|
||||
|
||||
dev[0].scan_for_bss(apdev[0]['bssid'], freq="2412")
|
||||
dev[0].roam(apdev[0]['bssid'])
|
||||
res = dev[0].get_status_field("bssid")
|
||||
if res != apdev[0]['bssid']:
|
||||
raise Exception("Unexpected BSSID after second roam: " + res)
|
||||
|
||||
dev[0].request("REMOVE_NETWORK all")
|
||||
dev[0].wait_disconnected()
|
||||
dev[0].dump_monitor()
|
||||
hapd.dump_monitor()
|
||||
hapd2.dump_monitor()
|
||||
|
||||
@remote_compatible
|
||||
def test_ap_ft_mismatching_rrb_key_push(dev, apdev):
|
||||
"""WPA2-PSK-FT AP over DS with mismatching RRB key (push)"""
|
||||
|
|
Loading…
Reference in a new issue