diff --git a/tests/hwsim/test_ap_ft.py b/tests/hwsim/test_ap_ft.py index 7e5957ff6..7158adfab 100644 --- a/tests/hwsim/test_ap_ft.py +++ b/tests/hwsim/test_ap_ft.py @@ -91,20 +91,24 @@ def ft_params2_r0kh_mismatch(rsn=True, ssid=None, passphrase=None): params['r1kh'] = "12:00:00:00:03:00 10:01:02:03:04:05 300102030405060708090a0b0c0d0e0f" return params -def run_roams(dev, apdev, hapd0, hapd1, ssid, passphrase, over_ds=False, sae=False, eap=False, fail_test=False, roams=1): +def run_roams(dev, apdev, hapd0, hapd1, ssid, passphrase, over_ds=False, + sae=False, eap=False, fail_test=False, roams=1, + pairwise_cipher="CCMP", group_cipher="TKIP CCMP"): logger.info("Connect to first AP") if eap: dev.connect(ssid, key_mgmt="FT-EAP", proto="WPA2", ieee80211w="1", eap="GPSK", identity="gpsk user", password="abcdefghijklmnop0123456789abcdef", - scan_freq="2412") + scan_freq="2412", + pairwise=pairwise_cipher, group=group_cipher) else: if sae: key_mgmt="FT-SAE" else: key_mgmt="FT-PSK" dev.connect(ssid, psk=passphrase, key_mgmt=key_mgmt, proto="WPA2", - ieee80211w="1", scan_freq="2412") + ieee80211w="1", scan_freq="2412", + pairwise=pairwise_cipher, group=group_cipher) if dev.get_status_field('bssid') == apdev[0]['bssid']: ap1 = apdev[0] ap2 = apdev[1] @@ -724,3 +728,20 @@ def test_ap_ft_invalid_resp(dev, apdev): dev[0].request("RECONNECT") dev[0].wait_connected() + +def test_ap_ft_gcmp_256(dev, apdev): + """WPA2-PSK-FT AP with GCMP-256 cipher""" + if "GCMP-256" not in dev[0].get_capability("pairwise"): + raise HwsimSkip("Cipher GCMP-256 not supported") + ssid = "test-ft" + passphrase="12345678" + + params = ft_params1(ssid=ssid, passphrase=passphrase) + params['rsn_pairwise'] = "GCMP-256" + hapd0 = hostapd.add_ap(apdev[0]['ifname'], params) + params = ft_params2(ssid=ssid, passphrase=passphrase) + params['rsn_pairwise'] = "GCMP-256" + hapd1 = hostapd.add_ap(apdev[1]['ifname'], params) + + run_roams(dev[0], apdev, hapd0, hapd1, ssid, passphrase, + pairwise_cipher="GCMP-256", group_cipher="GCMP-256")