MCPcopy Create free account
hub / github.com/secdev/scapy / Dot11

Class Dot11

scapy/layers/dot11.py:695–826  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

693
694# 802.11-2020 9.2.4.1.1
695class Dot11(Packet):
696 name = "802.11"
697 fields_desc = [
698 BitMultiEnumField("subtype", 0, 4, _dot11_subtypes,
699 lambda pkt: pkt.type),
700 BitEnumField("type", 0, 2, ["Management", "Control", "Data",
701 "Extension"]),
702 BitField("proto", 0, 2),
703 ConditionalField(
704 BitEnumField("cfe", 0, 4, _dot11_cfe),
705 lambda pkt: (pkt.type, pkt.subtype) == (1, 6)
706 ),
707 MultipleTypeField(
708 [
709 (
710 FlagsField("FCfield", 0, 4,
711 ["pw_mgt", "MD", "protected", "order"]),
712 lambda pkt: (pkt.type, pkt.subtype) == (1, 6)
713 ),
714 (
715 FlagsField("FCfield", 0, 2,
716 ["security", "AP_PM"]),
717 lambda pkt: (pkt.type, pkt.subtype) == (3, 1)
718 )
719 ],
720 FlagsField("FCfield", 0, 8,
721 ["to_DS", "from_DS", "MF", "retry",
722 "pw_mgt", "MD", "protected", "order"])
723 ),
724 ConditionalField(
725 BitField("FCfield_bw", 0, 3),
726 lambda pkt: (pkt.type, pkt.subtype) == (3, 1)
727 ),
728 ConditionalField(
729 FlagsField("FCfield2", 0, 3,
730 ["next_tbtt", "comp_ssid", "ano"]),
731 lambda pkt: (pkt.type, pkt.subtype) == (3, 1)
732 ),
733 LEShortField("ID", 0),
734 _Dot11MacField("addr1", ETHER_ANY, 1),
735 ConditionalField(
736 _Dot11MacField("addr2", ETHER_ANY, 2),
737 lambda pkt: (pkt.type not in {1, 3} or
738 pkt.subtype in [0x4, 0x5, 0x6, 0x8, 0x9, 0xa, 0xb, 0xe, 0xf]),
739 ),
740 ConditionalField(
741 _Dot11MacField("addr3", ETHER_ANY, 3),
742 lambda pkt: (pkt.type in [0, 2] or
743 ((pkt.type, pkt.subtype) == (1, 6) and pkt.cfe == 6)),
744 ),
745 ConditionalField(LEShortField("SC", 0), lambda pkt: pkt.type not in {1, 3}),
746 ConditionalField(
747 _Dot11MacField("addr4", ETHER_ANY, 4),
748 lambda pkt: (pkt.type == 2 and
749 pkt.FCfield & 3 == 3), # from_DS+to_DS
750 )
751 ]
752

Callers 7

build_ap_info_pktMethod · 0.90
send_wpa_encMethod · 0.90
send_auth_responseMethod · 0.90
send_assoc_responseMethod · 0.90
send_wpa_handshake_1Method · 0.90
send_wpa_handshake_3Method · 0.90
krack_proceedMethod · 0.90

Calls 8

BitMultiEnumFieldClass · 0.90
BitEnumFieldClass · 0.90
BitFieldClass · 0.90
ConditionalFieldClass · 0.90
MultipleTypeFieldClass · 0.90
FlagsFieldClass · 0.90
LEShortFieldClass · 0.90
_Dot11MacFieldClass · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…