diff --git a/tests/hwsim/test_ap_psk.py b/tests/hwsim/test_ap_psk.py index 7ffd5583c..df4de5305 100644 --- a/tests/hwsim/test_ap_psk.py +++ b/tests/hwsim/test_ap_psk.py @@ -234,3 +234,59 @@ def test_ap_wpa2_psk_wildcard_ssid(dev, apdev): dev[0].connect("", bssid=apdev[0]['bssid'], psk=passphrase, scan_freq="2412") dev[1].connect("", bssid=apdev[0]['bssid'], raw_psk=psk, scan_freq="2412") + +def test_ap_wpa2_gtk_rekey(dev, apdev): + """WPA2-PSK AP and GTK rekey enforced by AP""" + ssid = "test-wpa2-psk" + passphrase = 'qwertyuiop' + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params['wpa_group_rekey'] = '1' + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk=passphrase, scan_freq="2412") + ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2) + if ev is None: + raise Exception("GTK rekey timed out") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_wpa_gtk_rekey(dev, apdev): + """WPA-PSK/TKIP AP and GTK rekey enforced by AP""" + ssid = "test-wpa-psk" + passphrase = 'qwertyuiop' + params = hostapd.wpa_params(ssid=ssid, passphrase=passphrase) + params['wpa_group_rekey'] = '1' + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk=passphrase, scan_freq="2412") + ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2) + if ev is None: + raise Exception("GTK rekey timed out") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_wpa2_gmk_rekey(dev, apdev): + """WPA2-PSK AP and GMK and GTK rekey enforced by AP""" + ssid = "test-wpa2-psk" + passphrase = 'qwertyuiop' + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params['wpa_group_rekey'] = '1' + params['wpa_gmk_rekey'] = '2' + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk=passphrase, scan_freq="2412") + for i in range(0, 3): + ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2) + if ev is None: + raise Exception("GTK rekey timed out") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname']) + +def test_ap_wpa2_strict_rekey(dev, apdev): + """WPA2-PSK AP and strict GTK rekey enforced by AP""" + ssid = "test-wpa2-psk" + passphrase = 'qwertyuiop' + params = hostapd.wpa2_params(ssid=ssid, passphrase=passphrase) + params['wpa_strict_rekey'] = '1' + hostapd.add_ap(apdev[0]['ifname'], params) + dev[0].connect(ssid, psk=passphrase, scan_freq="2412") + dev[1].connect(ssid, psk=passphrase, scan_freq="2412") + dev[1].request("DISCONNECT") + ev = dev[0].wait_event(["WPA: Group rekeying completed"], timeout=2) + if ev is None: + raise Exception("GTK rekey timed out") + hwsim_utils.test_connectivity(dev[0].ifname, apdev[0]['ifname'])