diff --git a/pcap_anonymize/layers/tplink.py b/pcap_anonymize/layers/tplink.py new file mode 100644 index 0000000000000000000000000000000000000000..7810f439fb23da4242ab85f124fa6491c26e4559 --- /dev/null +++ b/pcap_anonymize/layers/tplink.py @@ -0,0 +1,17 @@ +""" +Anonymize the TP-Link Smart Home protocol, +running over TCP port 9999. +""" + +from scapy.layers.inet import TCP + + +def anonymize_tplink(packet: TCP) -> None: + """ + Anonymize a packet's TP-Link Smart Home protocol, + by removing the payload. + + Args: + packet (scapy.layers.inet.TCP): Packet to anonymize + """ + packet.remove_payload() diff --git a/test/test_coap.py b/test/test_coap.py index c9b584be9b9cde20b56f815bf7a4865009156d04..b0d5800280db6b148b1e45d2ef2ab677be05c7a7 100644 --- a/test/test_coap.py +++ b/test/test_coap.py @@ -5,6 +5,9 @@ from pcap_anonymize.layers.coap import CoapFields, anonymize_coap ### TEST FUNCTIONS ### def test_anonymize_coap() -> None: + """ + Test the function `anonymize_coap`. + """ # Build CoAP layer options = [('Uri-Host', 'host'), ('Uri-Path', 'sensors'), ('Uri-Path', 'temperature')] coap = CoAP(type=0, code=1, msg_id=0x1234, token=b"token", options=options) diff --git a/test/test_tplink.py b/test/test_tplink.py new file mode 100644 index 0000000000000000000000000000000000000000..53812c3ef47524bb10e0b754980a7e95e9842034 --- /dev/null +++ b/test/test_tplink.py @@ -0,0 +1,21 @@ +from scapy.packet import Raw +from scapy.layers.inet import TCP +from pcap_anonymize.layers.tplink import anonymize_tplink + + +### TEST FUNCTIONS ### + +def test_anonymize_tplink() -> None: + """ + Test the function `anonymize_tplink`. + """ + # Build dummy TP-Link Smart Home packet + tcp = TCP(dport=9999) + payload = Raw(load=b"abcdef") + packet = tcp / payload + + anonymize_tplink(packet) + + # Check if payload was correctly deleted + assert not packet.haslayer(Raw) + assert not hasattr(packet, "load")