summaryrefslogtreecommitdiffstats
path: root/scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py')
-rw-r--r--scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py b/scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py
new file mode 100644
index 00000000..084eedd8
--- /dev/null
+++ b/scripts/external_libs/scapy-python3-0.18/scapy/contrib/wpa_eapol.py
@@ -0,0 +1,35 @@
+
+# http://trac.secdev.org/scapy/ticket/104
+
+# scapy.contrib.description = WPA EAPOL dissector
+# scapy.contrib.status = loads
+
+from scapy.packet import *
+from scapy.fields import *
+from scapy.layers.l2 import *
+
+class WPA_key(Packet):
+ name = "WPA_key"
+ fields_desc = [ ByteField("descriptor_type", 1),
+ ShortField("key_info",0),
+ LenField("len", None, "H"),
+ StrFixedLenField("replay_counter", "", 8),
+ StrFixedLenField("nonce", "", 32),
+ StrFixedLenField("key_iv", "", 16),
+ StrFixedLenField("wpa_key_rsc", "", 8),
+ StrFixedLenField("wpa_key_id", "", 8),
+ StrFixedLenField("wpa_key_mic", "", 16),
+ LenField("wpa_key_length", None, "H"),
+ StrLenField("wpa_key", "", length_from=lambda pkt:pkt.wpa_key_length) ]
+ def extract_padding(self, s):
+ l = self.len
+ return s[:l],s[l:]
+ def hashret(self):
+ return chr(self.type)+self.payload.hashret()
+ def answers(self, other):
+ if isinstance(other,WPA_key):
+ return 1
+ return 0
+
+
+bind_layers( EAPOL, WPA_key, type=3)