From 9cb9d0230a615d4ea89a0169a9247751f969e07a Mon Sep 17 00:00:00 2001 From: David Maciejak Date: Mon, 27 Jan 2025 10:28:16 -0500 Subject: [PATCH 1/2] Fix critical bit set Critical bit is set on the MSB --- scapy/contrib/ikev2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scapy/contrib/ikev2.py b/scapy/contrib/ikev2.py index 3bf12e65bff..b1ffd8cdc17 100644 --- a/scapy/contrib/ikev2.py +++ b/scapy/contrib/ikev2.py @@ -568,7 +568,7 @@ class IKEv2_Payload(_IKEv2_Packet): name = "IKEv2 Payload" fields_desc = [ ByteEnumField("next_payload", None, IKEv2PayloadTypes), - FlagsField("flags", 0, 8, ["critical"]), + FlagsField("flags", 0, 8, {0x80: "critical"}), ShortField("length", None), XStrLenField("load", "", length_from=lambda pkt: pkt.length - 4), ] From 7c4da1b897bcfede0f1cf10ee5a6558a008264a3 Mon Sep 17 00:00:00 2001 From: gpotter2 <10530980+gpotter2@users.noreply.github.com> Date: Mon, 3 Feb 2025 03:58:44 +0100 Subject: [PATCH 2/2] Add unit test --- test/contrib/ikev2.uts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/contrib/ikev2.uts b/test/contrib/ikev2.uts index db503867fc1..9d51493daa1 100644 --- a/test/contrib/ikev2.uts +++ b/test/contrib/ikev2.uts @@ -28,8 +28,8 @@ a[IKEv2_Transform].show() = Build Ikev2 SA request packet -a = IKEv2(init_SPI="MySPI",exch_type=34)/IKEv2_SA(prop=IKEv2_Proposal()) -assert raw(a) == b'MySPI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00! "\x00\x00\x00\x00\x00\x00\x00\x00(\x00\x00\x00\x0c\x00\x00\x00\x08\x01\x01\x00\x00' +a = IKEv2(init_SPI="MySPI",exch_type=34)/IKEv2_SA(flags="critical", prop=IKEv2_Proposal()) +assert raw(a) == b'MySPI\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00! "\x00\x00\x00\x00\x00\x00\x00\x00(\x00\x80\x00\x0c\x00\x00\x00\x08\x01\x01\x00\x00' = Build advanced IKEv2