tests: WPA2-PSK-FT AP over DS protocol testing
Signed-off-by: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
cf671d54bd
commit
34d3eaa8ee
1 changed files with 52 additions and 1 deletions
|
@ -1,5 +1,5 @@
|
||||||
# Fast BSS Transition tests
|
# Fast BSS Transition tests
|
||||||
# Copyright (c) 2013-2014, Jouni Malinen <j@w1.fi>
|
# Copyright (c) 2013-2015, Jouni Malinen <j@w1.fi>
|
||||||
#
|
#
|
||||||
# This software may be distributed under the terms of the BSD license.
|
# This software may be distributed under the terms of the BSD license.
|
||||||
# See README for more details.
|
# See README for more details.
|
||||||
|
@ -770,3 +770,54 @@ def test_ap_ft_oom(dev, apdev):
|
||||||
dev[0].roam(dst, fail_test=True)
|
dev[0].roam(dst, fail_test=True)
|
||||||
with fail_test(dev[0], 1, "os_get_random;wpa_ft_prepare_auth_request"):
|
with fail_test(dev[0], 1, "os_get_random;wpa_ft_prepare_auth_request"):
|
||||||
dev[0].roam(dst, fail_test=True)
|
dev[0].roam(dst, fail_test=True)
|
||||||
|
|
||||||
|
def test_ap_ft_over_ds_proto(dev, apdev):
|
||||||
|
"""WPA2-PSK-FT AP over DS protocol testing"""
|
||||||
|
ssid = "test-ft"
|
||||||
|
passphrase="12345678"
|
||||||
|
|
||||||
|
params = ft_params1(ssid=ssid, passphrase=passphrase)
|
||||||
|
hapd0 = hostapd.add_ap(apdev[0]['ifname'], params)
|
||||||
|
dev[0].connect(ssid, psk=passphrase, key_mgmt="FT-PSK", proto="WPA2",
|
||||||
|
scan_freq="2412")
|
||||||
|
|
||||||
|
# FT Action Response while no FT-over-DS in progress
|
||||||
|
msg = {}
|
||||||
|
msg['fc'] = 13 << 4
|
||||||
|
msg['da'] = dev[0].own_addr()
|
||||||
|
msg['sa'] = apdev[0]['bssid']
|
||||||
|
msg['bssid'] = apdev[0]['bssid']
|
||||||
|
msg['payload'] = binascii.unhexlify("06020200000000000200000004000000")
|
||||||
|
hapd0.mgmt_tx(msg)
|
||||||
|
|
||||||
|
params = ft_params2(ssid=ssid, passphrase=passphrase)
|
||||||
|
hapd1 = hostapd.add_ap(apdev[1]['ifname'], params)
|
||||||
|
dev[0].scan_for_bss(apdev[1]['bssid'], freq="2412")
|
||||||
|
hapd0.set("ext_mgmt_frame_handling", "1")
|
||||||
|
hapd0.dump_monitor()
|
||||||
|
dev[0].request("FT_DS " + apdev[1]['bssid'])
|
||||||
|
for i in range(0, 10):
|
||||||
|
req = hapd0.mgmt_rx()
|
||||||
|
if req is None:
|
||||||
|
raise Exception("MGMT RX wait timed out")
|
||||||
|
if req['subtype'] == 13:
|
||||||
|
break
|
||||||
|
req = None
|
||||||
|
if not req:
|
||||||
|
raise Exception("FT Action frame not received")
|
||||||
|
|
||||||
|
# FT Action Response for unexpected Target AP
|
||||||
|
msg['payload'] = binascii.unhexlify("0602020000000000" + "f20000000400" + "0000")
|
||||||
|
hapd0.mgmt_tx(msg)
|
||||||
|
|
||||||
|
# FT Action Response without MDIE
|
||||||
|
msg['payload'] = binascii.unhexlify("0602020000000000" + "020000000400" + "0000")
|
||||||
|
hapd0.mgmt_tx(msg)
|
||||||
|
|
||||||
|
# FT Action Response without FTIE
|
||||||
|
msg['payload'] = binascii.unhexlify("0602020000000000" + "020000000400" + "0000" + "3603a1b201")
|
||||||
|
hapd0.mgmt_tx(msg)
|
||||||
|
|
||||||
|
# FT Action Response with FTIE SNonce mismatch
|
||||||
|
msg['payload'] = binascii.unhexlify("0602020000000000" + "020000000400" + "0000" + "3603a1b201" + "3766000000000000000000000000000000000000c4e67ac1999bebd00ff4ae4d5dcaf87896bb060b469f7c78d49623fb395c3455ffffff6b693fe6f8d8c5dfac0a22344750775bd09437f98b238c9f87b97f790c0106000102030406030a6e6173312e77312e6669")
|
||||||
|
hapd0.mgmt_tx(msg)
|
||||||
|
|
Loading…
Reference in a new issue