From f1b106f6eb53aa826debdd20d9117e90bb331a22 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Thu, 7 Oct 2021 13:49:54 -0700 Subject: [PATCH] auto-t: hostapd.py: separate GTK and PTK rekeys 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):