REKEY_GTK kicks off the GTK only handshake where REKEY_PTK does both (via the 4-way). The way this utility was written was causing hostapd some major issues since both REKEY_GTK and REKEY_PTK was used. Instead if address is set only do REKEY_PTK. This will also rekey the GTK via the 4-way handshake. If no address is set do REKEY_GTK which will only rekey the GTK. --- autotests/util/hostapd.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/autotests/util/hostapd.py b/autotests/util/hostapd.py index 9f2dc745..22802be6 100644 --- a/autotests/util/hostapd.py +++ b/autotests/util/hostapd.py @@ -202,11 +202,15 @@ class HostapdCLI(object): cmd = self.cmdline + ['req_beacon', addr, request] ctx.start_process(cmd).wait() - def rekey(self, address): + def rekey(self, address=None): + if address: + cmd = 'REKEY_PTK %s' % address + self.ctrl_sock.sendall(cmd.encode('utf-8')) + self.wait_for_event('EAPOL-4WAY-HS-COMPLETED') + return + cmd = 'REKEY_GTK' self.ctrl_sock.sendall(cmd.encode('utf-8')) - cmd = 'REKEY_PTK %s' % address - self.ctrl_sock.sendall(cmd.encode('utf-8')) @property def bssid(self): -- 2.31.1