]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: Extend debugfs key state reading for IGTK/BIGTK
authorJohannes Berg <johannes.berg@intel.com>
Thu, 7 May 2020 08:26:49 +0000 (10:26 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 16 May 2020 22:31:19 +0000 (01:31 +0300)
Extend the debugfs read helpers to work with IGTK and BIGTK.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
tests/hwsim/test_ap_ciphers.py

index 3d10cb0dce2c5b3fb89e97bf6b72afd4bce9637c..482fba18f1d16c9dbcfbdfe93e25f4af381ce72a 100644 (file)
@@ -17,7 +17,7 @@ from utils import *
 from wlantest import Wlantest
 from wpasupplicant import WpaSupplicant
 
-KT_PTK, KT_GTK = range(2)
+KT_PTK, KT_GTK, KT_IGTK, KT_BIGTK = range(4)
 
 def check_cipher(dev, ap, cipher, group_cipher=None):
     if cipher not in dev.get_capability("pairwise"):
@@ -490,6 +490,14 @@ def get_rx_spec(phy, keytype=KT_PTK):
     try:
         for key in os.listdir(keys):
             keydir = keys + "/" + key
+            with open(keydir + '/keyidx') as f:
+                keyid = int(f.read())
+            if keytype in (KT_PTK, KT_GTK) and keyid not in (0, 1, 2, 3):
+                continue
+            if keytype == KT_IGTK and keyid not in (4, 5):
+                continue
+            if keytype == KT_BIGTK and keyid not in (6, 7):
+                continue
             files = os.listdir(keydir)
             if keytype == KT_PTK and "station" not in files:
                 continue
@@ -506,6 +514,14 @@ def get_tk_replay_counter(phy, keytype=KT_PTK):
     try:
         for key in os.listdir(keys):
             keydir = keys + "/" + key
+            with open(keydir + '/keyidx') as f:
+                keyid = int(f.read())
+            if keytype in (KT_PTK, KT_GTK) and keyid not in (0, 1, 2, 3):
+                continue
+            if keytype == KT_IGTK and keyid not in (4, 5):
+                continue
+            if keytype == KT_BIGTK and keyid not in (6, 7):
+                continue
             files = os.listdir(keydir)
             if keytype == KT_PTK and "station" not in files:
                 continue