Browse Source

libwifi: make decrpyt_ccmp more robust

It should not also work if the provided packet contains a Dot11WEP
packet for some reason.
Mathy Vanhoef 2 years ago
parent
commit
9f1831d9d4
2 changed files with 6 additions and 1 deletions
  1. 1 1
      krackattack/libwifi/crypto.py
  2. 5 0
      krackattack/libwifi/wifi.py

+ 1 - 1
krackattack/libwifi/crypto.py

@@ -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)
 

+ 5 - 0
krackattack/libwifi/wifi.py

@@ -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: