It should not also work if the provided packet contains a Dot11WEP packet for some reason.
@@ -108,7 +108,7 @@ def decrypt_ccmp(p, tk, verify=True):
p = p.copy()
# Get used CCMP parameters
- keyid = p.key_id
+ keyid = get_ccmp_keyid(p)
priority = dot11_get_priority(p)
pn = dot11ccmp_get_pn(p)
@@ -354,6 +354,11 @@ def dot11_get_priority(p):
#### Crypto functions and util ####
+def get_ccmp_keyid(p):
+ if Dot11WEP in p:
+ return p.keyid
+ return p.key_id
+
def get_ccmp_payload(p):
if Dot11WEP in p:
# Extract encrypted payload: