ipsec: huge anti-replay window support
[vpp.git] / test / test_ipsec_esp.py
index a894644..fdd7eb8 100644 (file)
@@ -7,7 +7,6 @@ from scapy.layers.l2 import Ether
 from scapy.packet import Raw
 
 from parameterized import parameterized
-from framework import tag_fixme_ubuntu2204
 from framework import VppTestRunner
 from template_ipsec import (
     IpsecTra46Tests,
@@ -63,10 +62,11 @@ class ConfigIpsecESP(TemplateIpsec):
     def tearDown(self):
         super(ConfigIpsecESP, self).tearDown()
 
-    def config_anti_replay(self, params):
+    def config_anti_replay(self, params, anti_replay_window_size=64):
         saf = VppEnum.vl_api_ipsec_sad_flags_t
         for p in params:
             p.flags |= saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
+            p.anti_replay_window_size = anti_replay_window_size
 
     def config_network(self, params):
         self.net_objs = []
@@ -135,6 +135,7 @@ class ConfigIpsecESP(TemplateIpsec):
         flags = params.flags
         tun_flags = params.tun_flags
         salt = params.salt
+        anti_replay_window_size = params.anti_replay_window_size
         objs = []
 
         params.tun_sa_in = VppIpsecSA(
@@ -146,13 +147,14 @@ class ConfigIpsecESP(TemplateIpsec):
             crypt_algo_vpp_id,
             crypt_key,
             self.vpp_esp_protocol,
-            self.tun_if.local_addr[addr_type],
             self.tun_if.remote_addr[addr_type],
+            self.tun_if.local_addr[addr_type],
             tun_flags=tun_flags,
             dscp=params.dscp,
             flags=flags,
             salt=salt,
             hop_limit=params.outer_hop_limit,
+            anti_replay_window_size=anti_replay_window_size,
         )
         params.tun_sa_out = VppIpsecSA(
             self,
@@ -163,13 +165,14 @@ class ConfigIpsecESP(TemplateIpsec):
             crypt_algo_vpp_id,
             crypt_key,
             self.vpp_esp_protocol,
-            self.tun_if.remote_addr[addr_type],
             self.tun_if.local_addr[addr_type],
+            self.tun_if.remote_addr[addr_type],
             tun_flags=tun_flags,
             dscp=params.dscp,
             flags=flags,
             salt=salt,
             hop_limit=params.outer_hop_limit,
+            anti_replay_window_size=anti_replay_window_size,
         )
         objs.append(params.tun_sa_in)
         objs.append(params.tun_sa_out)
@@ -202,7 +205,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tun_spd,
-                vpp_tun_sa_id,
+                scapy_tun_sa_id,
                 remote_tun_if_host,
                 remote_tun_if_host,
                 self.pg1.remote_addr[addr_type],
@@ -217,7 +220,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tun_spd,
-                scapy_tun_sa_id,
+                vpp_tun_sa_id,
                 self.pg1.remote_addr[addr_type],
                 self.pg1.remote_addr[addr_type],
                 remote_tun_if_host,
@@ -231,7 +234,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tun_spd,
-                vpp_tun_sa_id,
+                scapy_tun_sa_id,
                 remote_tun_if_host,
                 remote_tun_if_host,
                 self.pg0.local_addr[addr_type],
@@ -246,7 +249,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tun_spd,
-                scapy_tun_sa_id,
+                vpp_tun_sa_id,
                 self.pg0.local_addr[addr_type],
                 self.pg0.local_addr[addr_type],
                 remote_tun_if_host,
@@ -275,6 +278,7 @@ class ConfigIpsecESP(TemplateIpsec):
         e = VppEnum.vl_api_ipsec_spd_action_t
         flags = params.flags
         salt = params.salt
+        anti_replay_window_size = params.anti_replay_window_size
         objs = []
 
         params.tra_sa_in = VppIpsecSA(
@@ -288,6 +292,7 @@ class ConfigIpsecESP(TemplateIpsec):
             self.vpp_esp_protocol,
             flags=flags,
             salt=salt,
+            anti_replay_window_size=anti_replay_window_size,
         )
         params.tra_sa_out = VppIpsecSA(
             self,
@@ -300,6 +305,7 @@ class ConfigIpsecESP(TemplateIpsec):
             self.vpp_esp_protocol,
             flags=flags,
             salt=salt,
+            anti_replay_window_size=anti_replay_window_size,
         )
         objs.append(params.tra_sa_in)
         objs.append(params.tra_sa_out)
@@ -333,7 +339,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tra_spd,
-                vpp_tra_sa_id,
+                scapy_tra_sa_id,
                 self.tra_if.local_addr[addr_type],
                 self.tra_if.local_addr[addr_type],
                 self.tra_if.remote_addr[addr_type],
@@ -348,7 +354,7 @@ class ConfigIpsecESP(TemplateIpsec):
             VppIpsecSpdEntry(
                 self,
                 self.tra_spd,
-                scapy_tra_sa_id,
+                vpp_tra_sa_id,
                 self.tra_if.local_addr[addr_type],
                 self.tra_if.local_addr[addr_type],
                 self.tra_if.remote_addr[addr_type],
@@ -448,7 +454,7 @@ class TestIpsecEsp1(
         VppIpsecSpdEntry(
             self,
             self.tun_spd,
-            p6.scapy_tun_sa_id,
+            p6.vpp_tun_sa_id,
             self.pg1.remote_addr[p4.addr_type],
             self.pg1.remote_addr[p4.addr_type],
             p6.remote_tun_if_host4,
@@ -483,7 +489,7 @@ class TestIpsecEsp1(
         VppIpsecSpdEntry(
             self,
             self.tun_spd,
-            p4.scapy_tun_sa_id,
+            p4.vpp_tun_sa_id,
             self.pg1.remote_addr[p6.addr_type],
             self.pg1.remote_addr[p6.addr_type],
             p4.remote_tun_if_host6,
@@ -747,10 +753,10 @@ class TestIpsecEspAsync(TemplateIpsecEsp):
         self.assertEqual(len(rxs), len(pkts))
 
         for rx in rxs:
-            if rx[ESP].spi == p.scapy_tun_spi:
+            if rx[ESP].spi == p.vpp_tun_spi:
                 decrypted = p.vpp_tun_sa.decrypt(rx[IP])
             elif rx[ESP].spi == self.p_sync.vpp_tun_spi:
-                decrypted = self.p_sync.scapy_tun_sa.decrypt(rx[IP])
+                decrypted = self.p_sync.vpp_tun_sa.decrypt(rx[IP])
             else:
                 rx.show()
                 self.assertTrue(False)
@@ -808,12 +814,12 @@ class TestIpsecEspAsync(TemplateIpsecEsp):
         self.assertEqual(len(rxs), len(pkts))
 
         for rx in rxs:
-            if rx[ESP].spi == p.scapy_tun_spi:
+            if rx[ESP].spi == p.vpp_tun_spi:
                 decrypted = p.vpp_tun_sa.decrypt(rx[IP])
             elif rx[ESP].spi == self.p_sync.vpp_tun_spi:
-                decrypted = self.p_sync.scapy_tun_sa.decrypt(rx[IP])
+                decrypted = self.p_sync.vpp_tun_sa.decrypt(rx[IP])
             elif rx[ESP].spi == self.p_async.vpp_tun_spi:
-                decrypted = self.p_async.scapy_tun_sa.decrypt(rx[IP])
+                decrypted = self.p_async.vpp_tun_sa.decrypt(rx[IP])
             else:
                 rx.show()
                 self.assertTrue(False)
@@ -823,11 +829,6 @@ class TestIpsecEspAsync(TemplateIpsecEsp):
         self.p_async.spd.remove_vpp_config()
         self.p_async.sa.remove_vpp_config()
 
-        # async mode should have been disabled now that there are
-        # no async SAs. there's no API for this, so a reluctant
-        # screen scrape.
-        self.assertTrue("DISABLED" in self.vapi.cli("sh crypto async status"))
-
 
 class TestIpsecEspHandoff(
     TemplateIpsecEsp, IpsecTun6HandoffTests, IpsecTun4HandoffTests
@@ -1039,6 +1040,42 @@ class MyParameters:
                 "salt": 2020,
                 "key": b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h",
             },
+            "AES-NULL-GMAC-128/NONE": {
+                "vpp-crypto": (
+                    VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_NULL_GMAC_128
+                ),
+                "vpp-integ": (
+                    VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
+                ),
+                "scapy-crypto": "AES-NULL-GMAC",
+                "scapy-integ": "NULL",
+                "key": b"JPjyOWBeVEQiMe7h",
+                "salt": 0,
+            },
+            "AES-NULL-GMAC-192/NONE": {
+                "vpp-crypto": (
+                    VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_NULL_GMAC_192
+                ),
+                "vpp-integ": (
+                    VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
+                ),
+                "scapy-crypto": "AES-NULL-GMAC",
+                "scapy-integ": "NULL",
+                "key": b"JPjyOWBeVEQiMe7h01234567",
+                "salt": 1010,
+            },
+            "AES-NULL-GMAC-256/NONE": {
+                "vpp-crypto": (
+                    VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_NULL_GMAC_256
+                ),
+                "vpp-integ": (
+                    VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
+                ),
+                "scapy-crypto": "AES-NULL-GMAC",
+                "scapy-integ": "NULL",
+                "key": b"JPjyOWBeVEQiMe7h0123456787654321",
+                "salt": 2020,
+            },
         }
 
 
@@ -1154,9 +1191,16 @@ class RunTestIpsecEspAll(ConfigIpsecESP, IpsecTra4, IpsecTra6, IpsecTun4, IpsecT
         #
         saf = VppEnum.vl_api_ipsec_sad_flags_t
         if flag & saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY:
-            self.unconfig_network()
-            self.config_network(self.params.values())
-            self.verify_tra_anti_replay()
+            for anti_replay_window_size in (
+                64,
+                131072,
+            ):
+                self.unconfig_network()
+                self.config_anti_replay(self.params.values(), anti_replay_window_size)
+                self.config_network(self.params.values())
+                self.verify_tra_anti_replay()
+                self.verify_tra_anti_replay_algorithm()
+            self.config_anti_replay(self.params.values())
 
         self.unconfig_network()
         self.config_network(self.params.values())
@@ -1188,7 +1232,8 @@ class RunTestIpsecEspAll(ConfigIpsecESP, IpsecTra4, IpsecTra6, IpsecTun4, IpsecT
 # GEN     AES-GCM-192/NONE AES-GCM-256/NONE AES-CBC-128/MD5-96 \
 # GEN     AES-CBC-192/SHA1-96 AES-CBC-256/SHA1-96 \
 # GEN     3DES-CBC/SHA1-96 NONE/SHA1-96 \
-# GEN     AES-CTR-128/SHA1-96 AES-CTR-192/SHA1-96 AES-CTR-256/SHA1-96; do \
+# GEN     AES-CTR-128/SHA1-96 AES-CTR-192/SHA1-96 AES-CTR-256/SHA1-96 \
+# GEN     AES-NULL-GMAC-128/NONE AES-NULL-GMAC-192/NONE AES-NULL-GMAC-256/NONE; do \
 # GEN      echo -en "\n\nclass "
 # GEN      echo -e "Test_${ENG}_${ESN}_${AR}_${ALG}(RunTestIpsecEspAll):" |
 # GEN             sed -e 's/-/_/g' -e 's#/#_#g' ;
@@ -1236,7 +1281,6 @@ class Test_native_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """native ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1245,7 +1289,6 @@ class Test_native_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1254,7 +1297,6 @@ class Test_native_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1263,7 +1305,6 @@ class Test_native_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1328,7 +1369,6 @@ class Test_native_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """native ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1337,7 +1377,6 @@ class Test_native_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1346,7 +1385,6 @@ class Test_native_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1355,7 +1393,6 @@ class Test_native_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """native ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1420,7 +1457,6 @@ class Test_native_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """native ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1429,7 +1465,6 @@ class Test_native_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1438,7 +1473,6 @@ class Test_native_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1447,7 +1481,6 @@ class Test_native_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1512,7 +1545,6 @@ class Test_native_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """native ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1521,7 +1553,6 @@ class Test_native_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1530,7 +1561,6 @@ class Test_native_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1539,7 +1569,6 @@ class Test_native_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_native_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """native ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1604,7 +1633,6 @@ class Test_ipsecmb_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1613,7 +1641,6 @@ class Test_ipsecmb_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1622,7 +1649,6 @@ class Test_ipsecmb_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1631,7 +1657,6 @@ class Test_ipsecmb_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1696,7 +1721,6 @@ class Test_ipsecmb_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1705,7 +1729,6 @@ class Test_ipsecmb_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1714,7 +1737,6 @@ class Test_ipsecmb_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1723,7 +1745,6 @@ class Test_ipsecmb_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1788,7 +1809,6 @@ class Test_ipsecmb_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1797,7 +1817,6 @@ class Test_ipsecmb_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1806,7 +1825,6 @@ class Test_ipsecmb_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1815,7 +1833,6 @@ class Test_ipsecmb_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1880,7 +1897,6 @@ class Test_ipsecmb_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1889,7 +1905,6 @@ class Test_ipsecmb_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1898,7 +1913,6 @@ class Test_ipsecmb_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1907,7 +1921,6 @@ class Test_ipsecmb_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_ipsecmb_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """ipsecmb ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -1972,7 +1985,6 @@ class Test_openssl_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """openssl ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -1981,7 +1993,6 @@ class Test_openssl_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -1990,7 +2001,6 @@ class Test_openssl_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -1999,7 +2009,6 @@ class Test_openssl_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -2040,6 +2049,30 @@ class Test_openssl_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
+class Test_openssl_ESNon_ARon_AES_NULL_GMAC_128_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARon AES-NULL-GMAC-128/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARon AES-NULL-GMAC-128/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNon_ARon_AES_NULL_GMAC_192_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARon AES-NULL-GMAC-192/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARon AES-NULL-GMAC-192/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNon_ARon_AES_NULL_GMAC_256_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARon AES-NULL-GMAC-256/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARon AES-NULL-GMAC-256/NONE IPSec test"""
+        self.run_test()
+
+
 class Test_openssl_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
     """openssl ESNon ARoff AES-GCM-128/NONE IPSec test"""
 
@@ -2064,7 +2097,6 @@ class Test_openssl_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """openssl ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -2073,7 +2105,6 @@ class Test_openssl_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2082,7 +2113,6 @@ class Test_openssl_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2091,7 +2121,6 @@ class Test_openssl_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -2132,6 +2161,30 @@ class Test_openssl_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
+class Test_openssl_ESNon_ARoff_AES_NULL_GMAC_128_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARoff AES-NULL-GMAC-128/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARoff AES-NULL-GMAC-128/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNon_ARoff_AES_NULL_GMAC_192_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARoff AES-NULL-GMAC-192/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARoff AES-NULL-GMAC-192/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNon_ARoff_AES_NULL_GMAC_256_NONE(RunTestIpsecEspAll):
+    """openssl ESNon ARoff AES-NULL-GMAC-256/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNon ARoff AES-NULL-GMAC-256/NONE IPSec test"""
+        self.run_test()
+
+
 class Test_openssl_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
     """openssl ESNoff ARon AES-GCM-128/NONE IPSec test"""
 
@@ -2156,7 +2209,6 @@ class Test_openssl_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """openssl ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
 
@@ -2165,7 +2217,6 @@ class Test_openssl_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2174,7 +2225,6 @@ class Test_openssl_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2183,7 +2233,6 @@ class Test_openssl_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -2224,6 +2273,30 @@ class Test_openssl_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
+class Test_openssl_ESNoff_ARon_AES_NULL_GMAC_128_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARon AES-NULL-GMAC-128/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARon AES-NULL-GMAC-128/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNoff_ARon_AES_NULL_GMAC_192_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARon AES-NULL-GMAC-192/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARon AES-NULL-GMAC-192/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNoff_ARon_AES_NULL_GMAC_256_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARon AES-NULL-GMAC-256/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARon AES-NULL-GMAC-256/NONE IPSec test"""
+        self.run_test()
+
+
 class Test_openssl_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
     """openssl ESNoff ARoff AES-GCM-128/NONE IPSec test"""
 
@@ -2248,7 +2321,6 @@ class Test_openssl_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
     """openssl ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
 
@@ -2257,7 +2329,6 @@ class Test_openssl_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2266,7 +2337,6 @@ class Test_openssl_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2275,7 +2345,6 @@ class Test_openssl_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_openssl_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
     """openssl ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
 
@@ -2316,6 +2385,30 @@ class Test_openssl_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
+class Test_openssl_ESNoff_ARoff_AES_NULL_GMAC_128_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARoff AES-NULL-GMAC-128/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARoff AES-NULL-GMAC-128/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNoff_ARoff_AES_NULL_GMAC_192_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARoff AES-NULL-GMAC-192/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARoff AES-NULL-GMAC-192/NONE IPSec test"""
+        self.run_test()
+
+
+class Test_openssl_ESNoff_ARoff_AES_NULL_GMAC_256_NONE(RunTestIpsecEspAll):
+    """openssl ESNoff ARoff AES-NULL-GMAC-256/NONE IPSec test"""
+
+    def test_ipsec(self):
+        """openssl ESNoff ARoff AES-NULL-GMAC-256/NONE IPSec test"""
+        self.run_test()
+
+
 class Test_async_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
     """async ESNon ARon AES-GCM-128/NONE IPSec test"""
 
@@ -2340,7 +2433,6 @@ class Test_async_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """async ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2349,7 +2441,6 @@ class Test_async_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """async ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2382,7 +2473,6 @@ class Test_async_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """async ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2391,7 +2481,6 @@ class Test_async_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """async ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2424,7 +2513,6 @@ class Test_async_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """async ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2433,7 +2521,6 @@ class Test_async_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """async ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
 
@@ -2466,7 +2553,6 @@ class Test_async_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
     """async ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
 
@@ -2475,7 +2561,6 @@ class Test_async_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
         self.run_test()
 
 
-@tag_fixme_ubuntu2204
 class Test_async_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
     """async ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""