github.com/n00py/Slackor@v0.0.0-20200610224921-d007fcea1740/impacket/tests/dot11/test_RadioTapDecoder.py (about)

     1  #!/usr/bin/env python
     2  # sorry, this is very ugly, but I'm in python 2.5
     3  import sys
     4  sys.path.insert(0,"../..")
     5  
     6  from impacket.ImpactDecoder import RadioTapDecoder
     7  import impacket.dot11, impacket.ImpactPacket
     8  import unittest
     9  from six import PY2
    10  
    11  class TestRadioTapDecoder(unittest.TestCase):
    12  
    13      def setUp(self):
    14          self.RadioTapData=b'\x00\x00\x20\x00\x67\x08\x04\x00\x30\x03\x1a\x25\x00\x00\x00\x00\x22\x0c\xd9\xa0\x02\x00\x00\x00\x40\x01\x00\x00\x3c\x14\x24\x11\x08\x02\x00\x00\xff\xff\xff\xff\xff\xff\x06\x03\x7f\x07\xa0\x16\x00\x19\xe3\xd3\x53\x52\x90\x7f\xaa\xaa\x03\x00\x00\x00\x08\x06\x00\x01\x08\x00\x06\x04\x00\x01\x00\x19\xe3\xd3\x53\x52\xa9\xfe\xf7\x00\x00\x00\x00\x00\x00\x00\x43\x08\x0e\x36'
    15          self.radiotap_decoder = RadioTapDecoder()
    16          self.in0=self.radiotap_decoder.decode(self.RadioTapData)
    17          self.in1=self.in0.child()
    18          self.in2=self.in1.child()
    19          self.in3=self.in2.child()
    20          self.in4=self.in3.child()
    21          self.in5=self.in4.child()
    22          self.in6=self.in5.child()
    23          
    24      def test_00(self):
    25          'Test RadioTap decoder'
    26          if PY2:
    27              self.assertEqual(str(self.in0.__class__), "impacket.dot11.RadioTap")
    28          else:
    29              self.assertEqual(str(self.in0.__class__), "<class 'impacket.dot11.RadioTap'>")
    30          
    31      def test_01(self):
    32          'Test Dot11 decoder'
    33          if PY2:
    34              self.assertEqual(str(self.in1.__class__), "impacket.dot11.Dot11")
    35          else:
    36              self.assertEqual(str(self.in1.__class__), "<class 'impacket.dot11.Dot11'>")
    37  
    38      def test_02(self):
    39          'Test Dot11DataFrame decoder'
    40          if PY2:
    41              self.assertEqual(str(self.in2.__class__), "impacket.dot11.Dot11DataFrame")
    42          else:
    43              self.assertEqual(str(self.in2.__class__), "<class 'impacket.dot11.Dot11DataFrame'>")
    44      
    45      def test_03(self):
    46          'Test LLC decoder'
    47          if PY2:
    48              self.assertEqual(str(self.in3.__class__), "impacket.dot11.LLC")
    49          else:
    50              self.assertEqual(str(self.in3.__class__), "<class 'impacket.dot11.LLC'>")
    51  
    52      def test_04(self):
    53          'Test SNAP decoder'
    54          if PY2:
    55              self.assertEqual(str(self.in4.__class__), "impacket.dot11.SNAP")
    56          else:
    57              self.assertEqual(str(self.in4.__class__), "<class 'impacket.dot11.SNAP'>")
    58  
    59  #    def test_05(self):
    60  #        'Test ARP decoder'
    61  #        self.assertEqual(str(self.in5.__class__), "ImpactPacket.ARP")
    62  
    63  #    def test_05(self):
    64  #        'Test Data decoder'
    65  #        self.assertEqual(str(self.in6.__class__), "ImpactPacket.Data")
    66          
    67      def test_06(self):
    68          'Test Protocol Finder'
    69          p=self.radiotap_decoder.get_protocol(impacket.dot11.RadioTap)
    70          if PY2:
    71              self.assertEqual(str(p.__class__), "impacket.dot11.RadioTap")
    72          else:
    73              self.assertEqual(str(p.__class__), "<class 'impacket.dot11.RadioTap'>")
    74                  
    75          p=self.radiotap_decoder.get_protocol(impacket.dot11.Dot11)
    76          if PY2:
    77              self.assertEqual(str(p.__class__), "impacket.dot11.Dot11")
    78          else:
    79              self.assertEqual(str(p.__class__), "<class 'impacket.dot11.Dot11'>")
    80          
    81          p=self.radiotap_decoder.get_protocol(impacket.dot11.Dot11DataFrame)
    82          if PY2:
    83              self.assertEqual(str(p.__class__), "impacket.dot11.Dot11DataFrame")
    84          else:
    85              self.assertEqual(str(p.__class__), "<class 'impacket.dot11.Dot11DataFrame'>")
    86          
    87          p=self.radiotap_decoder.get_protocol(impacket.dot11.LLC)
    88          if PY2:
    89              self.assertEqual(str(p.__class__), "impacket.dot11.LLC")
    90          else:
    91              self.assertEqual(str(p.__class__), "<class 'impacket.dot11.LLC'>")
    92          
    93          p=self.radiotap_decoder.get_protocol(impacket.dot11.SNAP)
    94          if PY2:
    95              self.assertEqual(str(p.__class__), "impacket.dot11.SNAP")
    96          else:
    97              self.assertEqual(str(p.__class__), "<class 'impacket.dot11.SNAP'>")
    98          
    99          #p=self.radiotap_decoder.get_protocol(ImpactPacket.ARP)
   100          #self.assertEqual(str(p.__class__), "ImpactPacket.ARP")
   101          
   102          #p=self.radiotap_decoder.get_protocol(ImpactPacket.Data)
   103          #self.assertEqual(str(p.__class__), "ImpactPacket.Data")
   104          
   105          # When not found, None is returned
   106          p=self.radiotap_decoder.get_protocol(impacket.dot11.Dot11WPA)
   107          self.assertEqual(p, None)
   108        
   109  suite = unittest.TestLoader().loadTestsFromTestCase(TestRadioTapDecoder)
   110  unittest.TextTestRunner(verbosity=1).run(suite)