(self, pkt)
| 693 | |
| 694 | @ATMT.receive_condition(ANALYZE_DATA) |
| 695 | def get_data(self, pkt): |
| 696 | # Avoid packet from other interfaces |
| 697 | if RadioTap not in pkt: |
| 698 | return |
| 699 | |
| 700 | # Skip retries |
| 701 | if pkt[Dot11].FCfield.retry: |
| 702 | return |
| 703 | |
| 704 | # Skip unencrypted frames (TKIP rely on encrypted packets) |
| 705 | if not pkt[Dot11].FCfield.protected: |
| 706 | return |
| 707 | |
| 708 | # Dot11.type 2: Data |
| 709 | if pkt.type == 2 and Raw in pkt and pkt.addr1 == self.mac: |
| 710 | # Do not check pkt.addr3, frame can be broadcast |
| 711 | raise self.KRACK_DISPATCHER().action_parameters(pkt) |
| 712 | |
| 713 | @ATMT.action(get_data) |
| 714 | def extract_iv(self, pkt): |
nothing calls this directly
no test coverage detected