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'])