tests: skip tests failing on ubuntu 22.04
[vpp.git] / test / test_ipsec_esp.py
1 import socket
2 import unittest
3 from scapy.layers.ipsec import ESP
4 from scapy.layers.inet import IP, ICMP, UDP
5 from scapy.layers.inet6 import IPv6
6 from scapy.layers.l2 import Ether
7 from scapy.packet import Raw
8
9 from parameterized import parameterized
10 from framework import tag_fixme_ubuntu2204
11 from framework import VppTestRunner
12 from template_ipsec import (
13     IpsecTra46Tests,
14     IpsecTun46Tests,
15     TemplateIpsec,
16     IpsecTcpTests,
17     IpsecTun4Tests,
18     IpsecTra4Tests,
19     config_tra_params,
20     config_tun_params,
21     IPsecIPv4Params,
22     IPsecIPv6Params,
23     IpsecTra4,
24     IpsecTun4,
25     IpsecTra6,
26     IpsecTun6,
27     IpsecTun6HandoffTests,
28     IpsecTun4HandoffTests,
29     IpsecTra6ExtTests,
30 )
31 from vpp_ipsec import VppIpsecSpd, VppIpsecSpdEntry, VppIpsecSA, VppIpsecSpdItfBinding
32 from vpp_ip_route import VppIpRoute, VppRoutePath
33 from vpp_ip import DpoProto
34 from vpp_papi import VppEnum
35
36 NUM_PKTS = 67
37 engines_supporting_chain_bufs = ["openssl", "async"]
38 engines = ["ia32", "ipsecmb", "openssl"]
39
40
41 class ConfigIpsecESP(TemplateIpsec):
42     encryption_type = ESP
43     tra4_encrypt_node_name = "esp4-encrypt"
44     tra4_decrypt_node_name = ["esp4-decrypt", "esp4-decrypt-post"]
45     tra6_encrypt_node_name = "esp6-encrypt"
46     tra6_decrypt_node_name = ["esp6-decrypt", "esp6-decrypt-post"]
47     tun4_encrypt_node_name = "esp4-encrypt"
48     tun4_decrypt_node_name = ["esp4-decrypt", "esp4-decrypt-post"]
49     tun6_encrypt_node_name = "esp6-encrypt"
50     tun6_decrypt_node_name = ["esp6-decrypt", "esp6-decrypt-post"]
51
52     @classmethod
53     def setUpClass(cls):
54         super(ConfigIpsecESP, cls).setUpClass()
55
56     @classmethod
57     def tearDownClass(cls):
58         super(ConfigIpsecESP, cls).tearDownClass()
59
60     def setUp(self):
61         super(ConfigIpsecESP, self).setUp()
62
63     def tearDown(self):
64         super(ConfigIpsecESP, self).tearDown()
65
66     def config_anti_replay(self, params):
67         saf = VppEnum.vl_api_ipsec_sad_flags_t
68         for p in params:
69             p.flags |= saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
70
71     def config_network(self, params):
72         self.net_objs = []
73         self.tun_if = self.pg0
74         self.tra_if = self.pg2
75         self.logger.info(self.vapi.ppcli("show int addr"))
76
77         self.tra_spd = VppIpsecSpd(self, self.tra_spd_id)
78         self.tra_spd.add_vpp_config()
79         self.net_objs.append(self.tra_spd)
80         self.tun_spd = VppIpsecSpd(self, self.tun_spd_id)
81         self.tun_spd.add_vpp_config()
82         self.net_objs.append(self.tun_spd)
83
84         b = VppIpsecSpdItfBinding(self, self.tun_spd, self.tun_if)
85         b.add_vpp_config()
86         self.net_objs.append(b)
87
88         b = VppIpsecSpdItfBinding(self, self.tra_spd, self.tra_if)
89         b.add_vpp_config()
90         self.net_objs.append(b)
91
92         for p in params:
93             self.config_esp_tra(p)
94             config_tra_params(p, self.encryption_type)
95         for p in params:
96             self.config_esp_tun(p)
97             config_tun_params(p, self.encryption_type, self.tun_if)
98
99         for p in params:
100             d = DpoProto.DPO_PROTO_IP6 if p.is_ipv6 else DpoProto.DPO_PROTO_IP4
101             r = VppIpRoute(
102                 self,
103                 p.remote_tun_if_host,
104                 p.addr_len,
105                 [
106                     VppRoutePath(
107                         self.tun_if.remote_addr[p.addr_type], 0xFFFFFFFF, proto=d
108                     )
109                 ],
110             )
111             r.add_vpp_config()
112             self.net_objs.append(r)
113
114         self.logger.info(self.vapi.ppcli("show ipsec all"))
115
116     def unconfig_network(self):
117         for o in reversed(self.net_objs):
118             o.remove_vpp_config()
119         self.net_objs = []
120
121     def config_esp_tun(self, params):
122         addr_type = params.addr_type
123         scapy_tun_sa_id = params.scapy_tun_sa_id
124         scapy_tun_spi = params.scapy_tun_spi
125         vpp_tun_sa_id = params.vpp_tun_sa_id
126         vpp_tun_spi = params.vpp_tun_spi
127         auth_algo_vpp_id = params.auth_algo_vpp_id
128         auth_key = params.auth_key
129         crypt_algo_vpp_id = params.crypt_algo_vpp_id
130         crypt_key = params.crypt_key
131         remote_tun_if_host = params.remote_tun_if_host
132         addr_any = params.addr_any
133         addr_bcast = params.addr_bcast
134         e = VppEnum.vl_api_ipsec_spd_action_t
135         flags = params.flags
136         tun_flags = params.tun_flags
137         salt = params.salt
138         objs = []
139
140         params.tun_sa_in = VppIpsecSA(
141             self,
142             scapy_tun_sa_id,
143             scapy_tun_spi,
144             auth_algo_vpp_id,
145             auth_key,
146             crypt_algo_vpp_id,
147             crypt_key,
148             self.vpp_esp_protocol,
149             self.tun_if.local_addr[addr_type],
150             self.tun_if.remote_addr[addr_type],
151             tun_flags=tun_flags,
152             dscp=params.dscp,
153             flags=flags,
154             salt=salt,
155             hop_limit=params.outer_hop_limit,
156         )
157         params.tun_sa_out = VppIpsecSA(
158             self,
159             vpp_tun_sa_id,
160             vpp_tun_spi,
161             auth_algo_vpp_id,
162             auth_key,
163             crypt_algo_vpp_id,
164             crypt_key,
165             self.vpp_esp_protocol,
166             self.tun_if.remote_addr[addr_type],
167             self.tun_if.local_addr[addr_type],
168             tun_flags=tun_flags,
169             dscp=params.dscp,
170             flags=flags,
171             salt=salt,
172             hop_limit=params.outer_hop_limit,
173         )
174         objs.append(params.tun_sa_in)
175         objs.append(params.tun_sa_out)
176
177         params.spd_policy_in_any = VppIpsecSpdEntry(
178             self,
179             self.tun_spd,
180             scapy_tun_sa_id,
181             addr_any,
182             addr_bcast,
183             addr_any,
184             addr_bcast,
185             socket.IPPROTO_ESP,
186         )
187         params.spd_policy_out_any = VppIpsecSpdEntry(
188             self,
189             self.tun_spd,
190             scapy_tun_sa_id,
191             addr_any,
192             addr_bcast,
193             addr_any,
194             addr_bcast,
195             socket.IPPROTO_ESP,
196             is_outbound=0,
197         )
198         objs.append(params.spd_policy_out_any)
199         objs.append(params.spd_policy_in_any)
200
201         objs.append(
202             VppIpsecSpdEntry(
203                 self,
204                 self.tun_spd,
205                 vpp_tun_sa_id,
206                 remote_tun_if_host,
207                 remote_tun_if_host,
208                 self.pg1.remote_addr[addr_type],
209                 self.pg1.remote_addr[addr_type],
210                 socket.IPPROTO_RAW,
211                 priority=10,
212                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
213                 is_outbound=0,
214             )
215         )
216         objs.append(
217             VppIpsecSpdEntry(
218                 self,
219                 self.tun_spd,
220                 scapy_tun_sa_id,
221                 self.pg1.remote_addr[addr_type],
222                 self.pg1.remote_addr[addr_type],
223                 remote_tun_if_host,
224                 remote_tun_if_host,
225                 socket.IPPROTO_RAW,
226                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
227                 priority=10,
228             )
229         )
230         objs.append(
231             VppIpsecSpdEntry(
232                 self,
233                 self.tun_spd,
234                 vpp_tun_sa_id,
235                 remote_tun_if_host,
236                 remote_tun_if_host,
237                 self.pg0.local_addr[addr_type],
238                 self.pg0.local_addr[addr_type],
239                 socket.IPPROTO_RAW,
240                 priority=20,
241                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
242                 is_outbound=0,
243             )
244         )
245         objs.append(
246             VppIpsecSpdEntry(
247                 self,
248                 self.tun_spd,
249                 scapy_tun_sa_id,
250                 self.pg0.local_addr[addr_type],
251                 self.pg0.local_addr[addr_type],
252                 remote_tun_if_host,
253                 remote_tun_if_host,
254                 socket.IPPROTO_RAW,
255                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
256                 priority=20,
257             )
258         )
259         for o in objs:
260             o.add_vpp_config()
261         self.net_objs = self.net_objs + objs
262
263     def config_esp_tra(self, params):
264         addr_type = params.addr_type
265         scapy_tra_sa_id = params.scapy_tra_sa_id
266         scapy_tra_spi = params.scapy_tra_spi
267         vpp_tra_sa_id = params.vpp_tra_sa_id
268         vpp_tra_spi = params.vpp_tra_spi
269         auth_algo_vpp_id = params.auth_algo_vpp_id
270         auth_key = params.auth_key
271         crypt_algo_vpp_id = params.crypt_algo_vpp_id
272         crypt_key = params.crypt_key
273         addr_any = params.addr_any
274         addr_bcast = params.addr_bcast
275         e = VppEnum.vl_api_ipsec_spd_action_t
276         flags = params.flags
277         salt = params.salt
278         objs = []
279
280         params.tra_sa_in = VppIpsecSA(
281             self,
282             scapy_tra_sa_id,
283             scapy_tra_spi,
284             auth_algo_vpp_id,
285             auth_key,
286             crypt_algo_vpp_id,
287             crypt_key,
288             self.vpp_esp_protocol,
289             flags=flags,
290             salt=salt,
291         )
292         params.tra_sa_out = VppIpsecSA(
293             self,
294             vpp_tra_sa_id,
295             vpp_tra_spi,
296             auth_algo_vpp_id,
297             auth_key,
298             crypt_algo_vpp_id,
299             crypt_key,
300             self.vpp_esp_protocol,
301             flags=flags,
302             salt=salt,
303         )
304         objs.append(params.tra_sa_in)
305         objs.append(params.tra_sa_out)
306
307         objs.append(
308             VppIpsecSpdEntry(
309                 self,
310                 self.tra_spd,
311                 vpp_tra_sa_id,
312                 addr_any,
313                 addr_bcast,
314                 addr_any,
315                 addr_bcast,
316                 socket.IPPROTO_ESP,
317             )
318         )
319         objs.append(
320             VppIpsecSpdEntry(
321                 self,
322                 self.tra_spd,
323                 vpp_tra_sa_id,
324                 addr_any,
325                 addr_bcast,
326                 addr_any,
327                 addr_bcast,
328                 socket.IPPROTO_ESP,
329                 is_outbound=0,
330             )
331         )
332         objs.append(
333             VppIpsecSpdEntry(
334                 self,
335                 self.tra_spd,
336                 vpp_tra_sa_id,
337                 self.tra_if.local_addr[addr_type],
338                 self.tra_if.local_addr[addr_type],
339                 self.tra_if.remote_addr[addr_type],
340                 self.tra_if.remote_addr[addr_type],
341                 socket.IPPROTO_RAW,
342                 priority=10,
343                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
344                 is_outbound=0,
345             )
346         )
347         objs.append(
348             VppIpsecSpdEntry(
349                 self,
350                 self.tra_spd,
351                 scapy_tra_sa_id,
352                 self.tra_if.local_addr[addr_type],
353                 self.tra_if.local_addr[addr_type],
354                 self.tra_if.remote_addr[addr_type],
355                 self.tra_if.remote_addr[addr_type],
356                 socket.IPPROTO_RAW,
357                 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
358                 priority=10,
359             )
360         )
361         for o in objs:
362             o.add_vpp_config()
363         self.net_objs = self.net_objs + objs
364
365
366 class TemplateIpsecEsp(ConfigIpsecESP):
367     """
368     Basic test for ipsec esp sanity - tunnel and transport modes.
369
370     Below 4 cases are covered as part of this test
371
372     #. ipsec esp v4 transport basic test  - IPv4 Transport mode
373         scenario using HMAC-SHA1-96 integrity algo
374
375     #. ipsec esp v4 transport burst test
376         Above test for 257 pkts
377
378     #. ipsec esp 4o4 tunnel basic test    - IPv4 Tunnel mode
379         scenario using HMAC-SHA1-96 integrity algo
380
381     #. ipsec esp 4o4 tunnel burst test
382         Above test for 257 pkts
383
384     TRANSPORT MODE::
385
386          ---   encrypt   ---
387         |pg2| <-------> |VPP|
388          ---   decrypt   ---
389
390     TUNNEL MODE::
391
392          ---   encrypt   ---   plain   ---
393         |pg0| <-------  |VPP| <------ |pg1|
394          ---             ---           ---
395
396          ---   decrypt   ---   plain   ---
397         |pg0| ------->  |VPP| ------> |pg1|
398          ---             ---           ---
399
400     """
401
402     @classmethod
403     def setUpClass(cls):
404         super(TemplateIpsecEsp, cls).setUpClass()
405
406     @classmethod
407     def tearDownClass(cls):
408         super(TemplateIpsecEsp, cls).tearDownClass()
409
410     def setUp(self):
411         super(TemplateIpsecEsp, self).setUp()
412         self.config_anti_replay(self.params.values())
413         self.config_network(self.params.values())
414
415     def tearDown(self):
416         self.unconfig_network()
417         super(TemplateIpsecEsp, self).tearDown()
418
419
420 class TestIpsecEsp1(
421     TemplateIpsecEsp, IpsecTra46Tests, IpsecTun46Tests, IpsecTra6ExtTests
422 ):
423     """Ipsec ESP - TUN & TRA tests"""
424
425     @classmethod
426     def setUpClass(cls):
427         super(TestIpsecEsp1, cls).setUpClass()
428
429     @classmethod
430     def tearDownClass(cls):
431         super(TestIpsecEsp1, cls).tearDownClass()
432
433     def setUp(self):
434         super(TestIpsecEsp1, self).setUp()
435
436     def tearDown(self):
437         super(TestIpsecEsp1, self).tearDown()
438
439     def test_tun_46(self):
440         """ipsec 4o6 tunnel"""
441         # add an SPD entry to direct 2.2.2.2 to the v6 tunnel SA
442         p6 = self.ipv6_params
443         p4 = self.ipv4_params
444
445         p6.remote_tun_if_host4 = "2.2.2.2"
446         e = VppEnum.vl_api_ipsec_spd_action_t
447
448         VppIpsecSpdEntry(
449             self,
450             self.tun_spd,
451             p6.scapy_tun_sa_id,
452             self.pg1.remote_addr[p4.addr_type],
453             self.pg1.remote_addr[p4.addr_type],
454             p6.remote_tun_if_host4,
455             p6.remote_tun_if_host4,
456             socket.IPPROTO_RAW,
457             priority=10,
458             policy=e.IPSEC_API_SPD_ACTION_PROTECT,
459             is_outbound=1,
460         ).add_vpp_config()
461         VppIpRoute(
462             self,
463             p6.remote_tun_if_host4,
464             p4.addr_len,
465             [VppRoutePath(self.tun_if.remote_addr[p4.addr_type], 0xFFFFFFFF)],
466         ).add_vpp_config()
467
468         old_name = self.tun6_encrypt_node_name
469         self.tun6_encrypt_node_name = "esp4-encrypt"
470
471         self.verify_tun_46(p6, count=63)
472         self.tun6_encrypt_node_name = old_name
473
474     def test_tun_64(self):
475         """ipsec 6o4 tunnel"""
476         # add an SPD entry to direct 4444::4 to the v4 tunnel SA
477         p6 = self.ipv6_params
478         p4 = self.ipv4_params
479
480         p4.remote_tun_if_host6 = "4444::4"
481         e = VppEnum.vl_api_ipsec_spd_action_t
482
483         VppIpsecSpdEntry(
484             self,
485             self.tun_spd,
486             p4.scapy_tun_sa_id,
487             self.pg1.remote_addr[p6.addr_type],
488             self.pg1.remote_addr[p6.addr_type],
489             p4.remote_tun_if_host6,
490             p4.remote_tun_if_host6,
491             socket.IPPROTO_RAW,
492             priority=10,
493             policy=e.IPSEC_API_SPD_ACTION_PROTECT,
494             is_outbound=1,
495         ).add_vpp_config()
496         d = DpoProto.DPO_PROTO_IP6
497         VppIpRoute(
498             self,
499             p4.remote_tun_if_host6,
500             p6.addr_len,
501             [VppRoutePath(self.tun_if.remote_addr[p6.addr_type], 0xFFFFFFFF, proto=d)],
502         ).add_vpp_config()
503
504         old_name = self.tun4_encrypt_node_name
505         self.tun4_encrypt_node_name = "esp6-encrypt"
506         self.verify_tun_64(p4, count=63)
507         self.tun4_encrypt_node_name = old_name
508
509
510 class TestIpsecEspTun(TemplateIpsecEsp, IpsecTun46Tests):
511     """Ipsec ESP - TUN encap tests"""
512
513     def setUp(self):
514         self.ipv4_params = IPsecIPv4Params()
515         self.ipv6_params = IPsecIPv6Params()
516
517         c = (
518             VppEnum.vl_api_tunnel_encap_decap_flags_t.TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_DSCP
519         )
520         c1 = c | (
521             VppEnum.vl_api_tunnel_encap_decap_flags_t.TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_ECN
522         )
523
524         self.ipv4_params.tun_flags = c
525         self.ipv6_params.tun_flags = c1
526
527         super(TestIpsecEspTun, self).setUp()
528
529     def gen_pkts(self, sw_intf, src, dst, count=1, payload_size=54):
530         # set the DSCP + ECN - flags are set to copy only DSCP
531         return [
532             Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac)
533             / IP(src=src, dst=dst, tos=5)
534             / UDP(sport=4444, dport=4444)
535             / Raw(b"X" * payload_size)
536             for i in range(count)
537         ]
538
539     def gen_pkts6(self, p, sw_intf, src, dst, count=1, payload_size=54):
540         # set the DSCP + ECN - flags are set to copy both
541         return [
542             Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac)
543             / IPv6(src=src, dst=dst, tc=5)
544             / UDP(sport=4444, dport=4444)
545             / Raw(b"X" * payload_size)
546             for i in range(count)
547         ]
548
549     def verify_encrypted(self, p, sa, rxs):
550         # just check that only the DSCP is copied
551         for rx in rxs:
552             self.assertEqual(rx[IP].tos, 4)
553
554     def verify_encrypted6(self, p, sa, rxs):
555         # just check that the DSCP & ECN are copied
556         for rx in rxs:
557             self.assertEqual(rx[IPv6].tc, 5)
558
559
560 class TestIpsecEspTun2(TemplateIpsecEsp, IpsecTun46Tests):
561     """Ipsec ESP - TUN DSCP tests"""
562
563     def setUp(self):
564         self.ipv4_params = IPsecIPv4Params()
565         self.ipv6_params = IPsecIPv6Params()
566
567         self.ipv4_params.dscp = VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_EF
568         self.ipv6_params.dscp = VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_AF11
569
570         super(TestIpsecEspTun2, self).setUp()
571
572     def gen_pkts(self, sw_intf, src, dst, count=1, payload_size=54):
573         return [
574             Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac)
575             / IP(src=src, dst=dst)
576             / UDP(sport=4444, dport=4444)
577             / Raw(b"X" * payload_size)
578             for i in range(count)
579         ]
580
581     def gen_pkts6(self, p, sw_intf, src, dst, count=1, payload_size=54):
582         return [
583             Ether(src=sw_intf.remote_mac, dst=sw_intf.local_mac)
584             / IPv6(src=src, dst=dst)
585             / UDP(sport=4444, dport=4444)
586             / Raw(b"X" * payload_size)
587             for i in range(count)
588         ]
589
590     def verify_encrypted(self, p, sa, rxs):
591         # just check that only the DSCP is set
592         for rx in rxs:
593             self.assertEqual(rx[IP].tos, VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_EF << 2)
594
595     def verify_encrypted6(self, p, sa, rxs):
596         # just check that the DSCP is set
597         for rx in rxs:
598             self.assertEqual(
599                 rx[IPv6].tc, VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_AF11 << 2
600             )
601
602
603 class TestIpsecEsp2(TemplateIpsecEsp, IpsecTcpTests):
604     """Ipsec ESP - TCP tests"""
605
606     pass
607
608
609 class TestIpsecEspAsync(TemplateIpsecEsp):
610     """Ipsec ESP - Aysnc tests"""
611
612     vpp_worker_count = 2
613
614     def setUp(self):
615         super(TestIpsecEspAsync, self).setUp()
616
617         self.p_sync = IPsecIPv4Params()
618
619         self.p_sync.crypt_algo_vpp_id = (
620             VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_256
621         )
622         self.p_sync.crypt_algo = "AES-CBC"  # scapy name
623         self.p_sync.crypt_key = b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h"
624
625         self.p_sync.scapy_tun_sa_id += 0xF0000
626         self.p_sync.scapy_tun_spi += 0xF0000
627         self.p_sync.vpp_tun_sa_id += 0xF0000
628         self.p_sync.vpp_tun_spi += 0xF0000
629         self.p_sync.remote_tun_if_host = "2.2.2.2"
630         e = VppEnum.vl_api_ipsec_spd_action_t
631
632         self.p_sync.sa = VppIpsecSA(
633             self,
634             self.p_sync.vpp_tun_sa_id,
635             self.p_sync.vpp_tun_spi,
636             self.p_sync.auth_algo_vpp_id,
637             self.p_sync.auth_key,
638             self.p_sync.crypt_algo_vpp_id,
639             self.p_sync.crypt_key,
640             self.vpp_esp_protocol,
641             self.tun_if.local_addr[self.p_sync.addr_type],
642             self.tun_if.remote_addr[self.p_sync.addr_type],
643         ).add_vpp_config()
644         self.p_sync.spd = VppIpsecSpdEntry(
645             self,
646             self.tun_spd,
647             self.p_sync.vpp_tun_sa_id,
648             self.pg1.remote_addr[self.p_sync.addr_type],
649             self.pg1.remote_addr[self.p_sync.addr_type],
650             self.p_sync.remote_tun_if_host,
651             self.p_sync.remote_tun_if_host,
652             socket.IPPROTO_RAW,
653             priority=1,
654             policy=e.IPSEC_API_SPD_ACTION_PROTECT,
655             is_outbound=1,
656         ).add_vpp_config()
657         VppIpRoute(
658             self,
659             self.p_sync.remote_tun_if_host,
660             self.p_sync.addr_len,
661             [VppRoutePath(self.tun_if.remote_addr[self.p_sync.addr_type], 0xFFFFFFFF)],
662         ).add_vpp_config()
663         config_tun_params(self.p_sync, self.encryption_type, self.tun_if)
664
665         self.p_async = IPsecIPv4Params()
666
667         self.p_async.crypt_algo_vpp_id = (
668             VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_256
669         )
670         self.p_async.auth_algo_vpp_id = (
671             VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
672         )
673         self.p_async.crypt_algo = "AES-GCM"  # scapy name
674         self.p_async.crypt_key = b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h"
675         self.p_async.auth_algo = "NULL"
676
677         self.p_async.scapy_tun_sa_id += 0xE0000
678         self.p_async.scapy_tun_spi += 0xE0000
679         self.p_async.vpp_tun_sa_id += 0xE0000
680         self.p_async.vpp_tun_spi += 0xE0000
681         self.p_async.remote_tun_if_host = "2.2.2.3"
682
683         iflags = VppEnum.vl_api_ipsec_sad_flags_t
684         self.p_async.flags = (
685             iflags.IPSEC_API_SAD_FLAG_USE_ESN
686             | iflags.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
687             | iflags.IPSEC_API_SAD_FLAG_ASYNC
688         )
689
690         self.p_async.sa = VppIpsecSA(
691             self,
692             self.p_async.vpp_tun_sa_id,
693             self.p_async.vpp_tun_spi,
694             self.p_async.auth_algo_vpp_id,
695             self.p_async.auth_key,
696             self.p_async.crypt_algo_vpp_id,
697             self.p_async.crypt_key,
698             self.vpp_esp_protocol,
699             self.tun_if.local_addr[self.p_async.addr_type],
700             self.tun_if.remote_addr[self.p_async.addr_type],
701             flags=self.p_async.flags,
702         ).add_vpp_config()
703         self.p_async.spd = VppIpsecSpdEntry(
704             self,
705             self.tun_spd,
706             self.p_async.vpp_tun_sa_id,
707             self.pg1.remote_addr[self.p_async.addr_type],
708             self.pg1.remote_addr[self.p_async.addr_type],
709             self.p_async.remote_tun_if_host,
710             self.p_async.remote_tun_if_host,
711             socket.IPPROTO_RAW,
712             priority=2,
713             policy=e.IPSEC_API_SPD_ACTION_PROTECT,
714             is_outbound=1,
715         ).add_vpp_config()
716         VppIpRoute(
717             self,
718             self.p_async.remote_tun_if_host,
719             self.p_async.addr_len,
720             [VppRoutePath(self.tun_if.remote_addr[self.p_async.addr_type], 0xFFFFFFFF)],
721         ).add_vpp_config()
722         config_tun_params(self.p_async, self.encryption_type, self.tun_if)
723
724     def test_dual_stream(self):
725         """Alternating SAs"""
726         p = self.params[self.p_sync.addr_type]
727         self.vapi.ipsec_set_async_mode(async_enable=True)
728
729         pkts = [
730             (
731                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
732                 / IP(src=self.pg1.remote_ip4, dst=self.p_sync.remote_tun_if_host)
733                 / UDP(sport=4444, dport=4444)
734                 / Raw(b"0x0" * 200)
735             ),
736             (
737                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
738                 / IP(src=self.pg1.remote_ip4, dst=p.remote_tun_if_host)
739                 / UDP(sport=4444, dport=4444)
740                 / Raw(b"0x0" * 200)
741             ),
742         ]
743         pkts *= 1023
744
745         rxs = self.send_and_expect(self.pg1, pkts, self.pg0)
746
747         self.assertEqual(len(rxs), len(pkts))
748
749         for rx in rxs:
750             if rx[ESP].spi == p.scapy_tun_spi:
751                 decrypted = p.vpp_tun_sa.decrypt(rx[IP])
752             elif rx[ESP].spi == self.p_sync.vpp_tun_spi:
753                 decrypted = self.p_sync.scapy_tun_sa.decrypt(rx[IP])
754             else:
755                 rx.show()
756                 self.assertTrue(False)
757
758         self.p_sync.spd.remove_vpp_config()
759         self.p_sync.sa.remove_vpp_config()
760         self.p_async.spd.remove_vpp_config()
761         self.p_async.sa.remove_vpp_config()
762         self.vapi.ipsec_set_async_mode(async_enable=False)
763
764     def test_sync_async_noop_stream(self):
765         """Alternating SAs sync/async/noop"""
766         p = self.params[self.p_sync.addr_type]
767
768         # first pin the default/noop SA to worker 0
769         pkts = [
770             (
771                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
772                 / IP(src=self.pg1.remote_ip4, dst=p.remote_tun_if_host)
773                 / UDP(sport=4444, dport=4444)
774                 / Raw(b"0x0" * 200)
775             )
776         ]
777         rxs = self.send_and_expect(self.pg1, pkts, self.pg0, worker=0)
778
779         self.logger.info(self.vapi.cli("sh ipsec sa"))
780         self.logger.info(self.vapi.cli("sh crypto async status"))
781
782         # then use all the other SAs on worker 1.
783         # some will handoff, other take the sync and async paths
784         pkts = [
785             (
786                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
787                 / IP(src=self.pg1.remote_ip4, dst=self.p_sync.remote_tun_if_host)
788                 / UDP(sport=4444, dport=4444)
789                 / Raw(b"0x0" * 200)
790             ),
791             (
792                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
793                 / IP(src=self.pg1.remote_ip4, dst=p.remote_tun_if_host)
794                 / UDP(sport=4444, dport=4444)
795                 / Raw(b"0x0" * 200)
796             ),
797             (
798                 Ether(src=self.pg1.remote_mac, dst=self.pg1.local_mac)
799                 / IP(src=self.pg1.remote_ip4, dst=self.p_async.remote_tun_if_host)
800                 / UDP(sport=4444, dport=4444)
801                 / Raw(b"0x0" * 200)
802             ),
803         ]
804         pkts *= 1023
805
806         rxs = self.send_and_expect(self.pg1, pkts, self.pg0, worker=1)
807
808         self.assertEqual(len(rxs), len(pkts))
809
810         for rx in rxs:
811             if rx[ESP].spi == p.scapy_tun_spi:
812                 decrypted = p.vpp_tun_sa.decrypt(rx[IP])
813             elif rx[ESP].spi == self.p_sync.vpp_tun_spi:
814                 decrypted = self.p_sync.scapy_tun_sa.decrypt(rx[IP])
815             elif rx[ESP].spi == self.p_async.vpp_tun_spi:
816                 decrypted = self.p_async.scapy_tun_sa.decrypt(rx[IP])
817             else:
818                 rx.show()
819                 self.assertTrue(False)
820
821         self.p_sync.spd.remove_vpp_config()
822         self.p_sync.sa.remove_vpp_config()
823         self.p_async.spd.remove_vpp_config()
824         self.p_async.sa.remove_vpp_config()
825
826         # async mode should have been disabled now that there are
827         # no async SAs. there's no API for this, so a reluctant
828         # screen scrape.
829         self.assertTrue("DISABLED" in self.vapi.cli("sh crypto async status"))
830
831
832 class TestIpsecEspHandoff(
833     TemplateIpsecEsp, IpsecTun6HandoffTests, IpsecTun4HandoffTests
834 ):
835     """Ipsec ESP - handoff tests"""
836
837     pass
838
839
840 class TemplateIpsecEspUdp(ConfigIpsecESP):
841     """
842     UDP encapped ESP
843     """
844
845     @classmethod
846     def setUpClass(cls):
847         super(TemplateIpsecEspUdp, cls).setUpClass()
848
849     @classmethod
850     def tearDownClass(cls):
851         super(TemplateIpsecEspUdp, cls).tearDownClass()
852
853     def setUp(self):
854         super(TemplateIpsecEspUdp, self).setUp()
855         self.net_objs = []
856         self.tun_if = self.pg0
857         self.tra_if = self.pg2
858         self.logger.info(self.vapi.ppcli("show int addr"))
859
860         p = self.ipv4_params
861         p.flags = (
862             VppEnum.vl_api_ipsec_sad_flags_t.IPSEC_API_SAD_FLAG_UDP_ENCAP
863             | VppEnum.vl_api_ipsec_sad_flags_t.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
864         )
865         p.nat_header = UDP(sport=5454, dport=4500)
866
867         self.tra_spd = VppIpsecSpd(self, self.tra_spd_id)
868         self.tra_spd.add_vpp_config()
869         VppIpsecSpdItfBinding(self, self.tra_spd, self.tra_if).add_vpp_config()
870
871         self.config_esp_tra(p)
872         config_tra_params(p, self.encryption_type)
873
874         self.tun_spd = VppIpsecSpd(self, self.tun_spd_id)
875         self.tun_spd.add_vpp_config()
876         VppIpsecSpdItfBinding(self, self.tun_spd, self.tun_if).add_vpp_config()
877
878         self.config_esp_tun(p)
879         self.logger.info(self.vapi.ppcli("show ipsec all"))
880
881         d = DpoProto.DPO_PROTO_IP4
882         VppIpRoute(
883             self,
884             p.remote_tun_if_host,
885             p.addr_len,
886             [VppRoutePath(self.tun_if.remote_addr[p.addr_type], 0xFFFFFFFF, proto=d)],
887         ).add_vpp_config()
888
889     def tearDown(self):
890         super(TemplateIpsecEspUdp, self).tearDown()
891
892     def show_commands_at_teardown(self):
893         self.logger.info(self.vapi.cli("show hardware"))
894
895
896 class TestIpsecEspUdp(TemplateIpsecEspUdp, IpsecTra4Tests):
897     """Ipsec NAT-T ESP UDP tests"""
898
899     pass
900
901
902 class MyParameters:
903     def __init__(self):
904         saf = VppEnum.vl_api_ipsec_sad_flags_t
905         flag_esn = saf.IPSEC_API_SAD_FLAG_USE_ESN
906         flag_ar = saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
907         self.flags = [0, flag_esn, flag_ar]
908         # foreach crypto algorithm
909         self.algos = {
910             "AES-GCM-128/NONE": {
911                 "vpp-crypto": (
912                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_128
913                 ),
914                 "vpp-integ": (
915                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
916                 ),
917                 "scapy-crypto": "AES-GCM",
918                 "scapy-integ": "NULL",
919                 "key": b"JPjyOWBeVEQiMe7h",
920                 "salt": 0,
921             },
922             "AES-GCM-192/NONE": {
923                 "vpp-crypto": (
924                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_192
925                 ),
926                 "vpp-integ": (
927                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
928                 ),
929                 "scapy-crypto": "AES-GCM",
930                 "scapy-integ": "NULL",
931                 "key": b"JPjyOWBeVEQiMe7h01234567",
932                 "salt": 1010,
933             },
934             "AES-GCM-256/NONE": {
935                 "vpp-crypto": (
936                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_256
937                 ),
938                 "vpp-integ": (
939                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
940                 ),
941                 "scapy-crypto": "AES-GCM",
942                 "scapy-integ": "NULL",
943                 "key": b"JPjyOWBeVEQiMe7h0123456787654321",
944                 "salt": 2020,
945             },
946             "AES-CBC-128/MD5-96": {
947                 "vpp-crypto": (
948                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_128
949                 ),
950                 "vpp-integ": (
951                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_MD5_96
952                 ),
953                 "scapy-crypto": "AES-CBC",
954                 "scapy-integ": "HMAC-MD5-96",
955                 "salt": 0,
956                 "key": b"JPjyOWBeVEQiMe7h",
957             },
958             "AES-CBC-192/SHA1-96": {
959                 "vpp-crypto": (
960                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_192
961                 ),
962                 "vpp-integ": (
963                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
964                 ),
965                 "scapy-crypto": "AES-CBC",
966                 "scapy-integ": "HMAC-SHA1-96",
967                 "salt": 0,
968                 "key": b"JPjyOWBeVEQiMe7hJPjyOWBe",
969             },
970             "AES-CBC-256/SHA1-96": {
971                 "vpp-crypto": (
972                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_256
973                 ),
974                 "vpp-integ": (
975                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
976                 ),
977                 "scapy-crypto": "AES-CBC",
978                 "scapy-integ": "HMAC-SHA1-96",
979                 "salt": 0,
980                 "key": b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h",
981             },
982             "3DES-CBC/SHA1-96": {
983                 "vpp-crypto": (
984                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_3DES_CBC
985                 ),
986                 "vpp-integ": (
987                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
988                 ),
989                 "scapy-crypto": "3DES",
990                 "scapy-integ": "HMAC-SHA1-96",
991                 "salt": 0,
992                 "key": b"JPjyOWBeVEQiMe7h00112233",
993             },
994             "NONE/SHA1-96": {
995                 "vpp-crypto": (
996                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_NONE
997                 ),
998                 "vpp-integ": (
999                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1000                 ),
1001                 "scapy-crypto": "NULL",
1002                 "scapy-integ": "HMAC-SHA1-96",
1003                 "salt": 0,
1004                 "key": b"JPjyOWBeVEQiMe7h00112233",
1005             },
1006             "AES-CTR-128/SHA1-96": {
1007                 "vpp-crypto": (
1008                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_128
1009                 ),
1010                 "vpp-integ": (
1011                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1012                 ),
1013                 "scapy-crypto": "AES-CTR",
1014                 "scapy-integ": "HMAC-SHA1-96",
1015                 "salt": 0,
1016                 "key": b"JPjyOWBeVEQiMe7h",
1017             },
1018             "AES-CTR-192/SHA1-96": {
1019                 "vpp-crypto": (
1020                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_192
1021                 ),
1022                 "vpp-integ": (
1023                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1024                 ),
1025                 "scapy-crypto": "AES-CTR",
1026                 "scapy-integ": "HMAC-SHA1-96",
1027                 "salt": 1010,
1028                 "key": b"JPjyOWBeVEQiMe7hJPjyOWBe",
1029             },
1030             "AES-CTR-256/SHA1-96": {
1031                 "vpp-crypto": (
1032                     VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_256
1033                 ),
1034                 "vpp-integ": (
1035                     VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1036                 ),
1037                 "scapy-crypto": "AES-CTR",
1038                 "scapy-integ": "HMAC-SHA1-96",
1039                 "salt": 2020,
1040                 "key": b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h",
1041             },
1042         }
1043
1044
1045 class RunTestIpsecEspAll(ConfigIpsecESP, IpsecTra4, IpsecTra6, IpsecTun4, IpsecTun6):
1046     """Ipsec ESP all Algos"""
1047
1048     @classmethod
1049     def setUpConstants(cls):
1050         test_args = str.split(cls.__doc__, " ")
1051         engine = test_args[0]
1052         if engine == "async":
1053             cls.vpp_worker_count = 2
1054         super(RunTestIpsecEspAll, cls).setUpConstants()
1055
1056     def setUp(self):
1057         super(RunTestIpsecEspAll, self).setUp()
1058         test_args = str.split(self.__doc__, " ")
1059
1060         params = MyParameters()
1061         self.engine = test_args[0]
1062         self.flag = params.flags[0]
1063         if test_args[1] == "ESNon":
1064             self.flag |= params.flags[1]
1065         if test_args[2] == "ARon":
1066             self.flag |= params.flags[2]
1067
1068         self.algo = params.algos[test_args[3]]
1069         self.async_mode = False
1070         if self.engine == "async":
1071             self.async_mode = True
1072
1073     def tearDown(self):
1074         super(RunTestIpsecEspAll, self).tearDown()
1075
1076     def run_test(self):
1077         self.run_a_test(self.engine, self.flag, self.algo)
1078
1079     def run_a_test(self, engine, flag, algo, payload_size=None):
1080         if self.async_mode:
1081             self.vapi.cli("set ipsec async mode on")
1082         else:
1083             self.vapi.cli("set crypto handler all %s" % engine)
1084
1085         self.logger.info(self.vapi.cli("show crypto async status"))
1086         self.ipv4_params = IPsecIPv4Params()
1087         self.ipv6_params = IPsecIPv6Params()
1088
1089         self.params = {
1090             self.ipv4_params.addr_type: self.ipv4_params,
1091             self.ipv6_params.addr_type: self.ipv6_params,
1092         }
1093
1094         for _, p in self.params.items():
1095             p.auth_algo_vpp_id = algo["vpp-integ"]
1096             p.crypt_algo_vpp_id = algo["vpp-crypto"]
1097             p.crypt_algo = algo["scapy-crypto"]
1098             p.auth_algo = algo["scapy-integ"]
1099             p.crypt_key = algo["key"]
1100             p.salt = algo["salt"]
1101             p.flags = flag
1102             p.outer_flow_label = 243224
1103             p.async_mode = self.async_mode
1104
1105         self.reporter.send_keep_alive(self)
1106
1107         #
1108         # configure the SPDs. SAs, etc
1109         #
1110         self.config_network(self.params.values())
1111
1112         #
1113         # run some traffic.
1114         #  An exhautsive 4o6, 6o4 is not necessary
1115         #  for each algo
1116         #
1117         self.verify_tra_basic6(count=NUM_PKTS)
1118         self.verify_tra_basic4(count=NUM_PKTS)
1119         self.verify_tun_66(self.params[socket.AF_INET6], count=NUM_PKTS)
1120         #
1121         # Use an odd-byte payload size to check for correct padding.
1122         #
1123         # 49 + 2 == 51 which should pad +1 to 52 for 4 byte alignment, +5
1124         # to 56 for 8 byte alignment, and +13 to 64 for 64 byte alignment.
1125         # This should catch bugs where the code is incorrectly over-padding
1126         # for algorithms that don't require it
1127         psz = 49 - len(IP() / ICMP()) if payload_size is None else payload_size
1128         self.verify_tun_44(
1129             self.params[socket.AF_INET], count=NUM_PKTS, payload_size=psz
1130         )
1131
1132         LARGE_PKT_SZ = [
1133             1970,  # results in 2 chained buffers entering decrypt node
1134             # but leaving as simple buffer due to ICV removal (tra4)
1135             2004,  # footer+ICV will be added to 2nd buffer (tun4)
1136             4010,  # ICV ends up splitted across 2 buffers in esp_decrypt
1137             # for transport4; transport6 takes normal path
1138             4020,  # same as above but tra4 and tra6 are switched
1139         ]
1140         if self.engine in engines_supporting_chain_bufs:
1141             for sz in LARGE_PKT_SZ:
1142                 self.verify_tra_basic4(count=NUM_PKTS, payload_size=sz)
1143                 self.verify_tra_basic6(count=NUM_PKTS, payload_size=sz)
1144                 self.verify_tun_66(
1145                     self.params[socket.AF_INET6], count=NUM_PKTS, payload_size=sz
1146                 )
1147                 self.verify_tun_44(
1148                     self.params[socket.AF_INET], count=NUM_PKTS, payload_size=sz
1149                 )
1150
1151         #
1152         # reconfigure the network and SA to run the
1153         # anti replay tests
1154         #
1155         saf = VppEnum.vl_api_ipsec_sad_flags_t
1156         if flag & saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY:
1157             self.unconfig_network()
1158             self.config_network(self.params.values())
1159             self.verify_tra_anti_replay()
1160
1161         self.unconfig_network()
1162         self.config_network(self.params.values())
1163         self.verify_hi_seq_num()
1164         self.unconfig_network()
1165         self.config_network(self.params.values())
1166         self.verify_tra_lost()
1167
1168         #
1169         # swap the handlers while SAs are up
1170         #
1171         self.unconfig_network()
1172         self.config_network(self.params.values())
1173         for e in engines:
1174             if e != engine:
1175                 self.vapi.cli("set crypto handler all %s" % e)
1176                 self.verify_tra_basic4(count=NUM_PKTS)
1177
1178         self.unconfig_network()
1179
1180
1181 #
1182 # To generate test classes, do:
1183 #   grep '# GEN' test_ipsec_esp.py | sed -e 's/# GEN //g' | bash
1184 #
1185 # GEN for ENG in native ipsecmb openssl; do \
1186 # GEN   for ESN in ESNon ESNoff; do for AR in ARon ARoff; do \
1187 # GEN   for ALG in AES-GCM-128/NONE \
1188 # GEN     AES-GCM-192/NONE AES-GCM-256/NONE AES-CBC-128/MD5-96 \
1189 # GEN     AES-CBC-192/SHA1-96 AES-CBC-256/SHA1-96 \
1190 # GEN     3DES-CBC/SHA1-96 NONE/SHA1-96 \
1191 # GEN     AES-CTR-128/SHA1-96 AES-CTR-192/SHA1-96 AES-CTR-256/SHA1-96; do \
1192 # GEN      echo -en "\n\nclass "
1193 # GEN      echo -e "Test_${ENG}_${ESN}_${AR}_${ALG}(RunTestIpsecEspAll):" |
1194 # GEN             sed -e 's/-/_/g' -e 's#/#_#g' ;
1195 # GEN      echo '    """'$ENG $ESN $AR $ALG IPSec test'"""' ;
1196 # GEN      echo "    def test_ipsec(self):";
1197 # GEN      echo '        """'$ENG $ESN $AR $ALG IPSec test'"""' ;
1198 # GEN      echo "        self.run_test()";
1199 # GEN done; done; done; done
1200 #
1201 # GEN   for ESN in ESNon ESNoff; do for AR in ARon ARoff; do \
1202 # GEN   for ALG in \
1203 # GEN     AES-GCM-128/NONE AES-GCM-192/NONE AES-GCM-256/NONE \
1204 # GEN     AES-CBC-192/SHA1-96 AES-CBC-256/SHA1-96; do \
1205 # GEN      echo -en "\n\nclass "
1206 # GEN      echo -e "Test_async_${ESN}_${AR}_${ALG}(RunTestIpsecEspAll):" |
1207 # GEN             sed -e 's/-/_/g' -e 's#/#_#g' ;
1208 # GEN      echo '    """'async $ESN $AR $ALG IPSec test'"""' ;
1209 # GEN      echo "    def test_ipsec(self):";
1210 # GEN      echo '        """'async $ESN $AR $ALG IPSec test'"""' ;
1211 # GEN      echo "        self.run_test()";
1212 # GEN done; done; done;
1213
1214
1215 class Test_native_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1216     """native ESNon ARon AES-GCM-128/NONE IPSec test"""
1217
1218     def test_ipsec(self):
1219         """native ESNon ARon AES-GCM-128/NONE IPSec test"""
1220         self.run_test()
1221
1222
1223 class Test_native_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1224     """native ESNon ARon AES-GCM-192/NONE IPSec test"""
1225
1226     def test_ipsec(self):
1227         """native ESNon ARon AES-GCM-192/NONE IPSec test"""
1228         self.run_test()
1229
1230
1231 class Test_native_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1232     """native ESNon ARon AES-GCM-256/NONE IPSec test"""
1233
1234     def test_ipsec(self):
1235         """native ESNon ARon AES-GCM-256/NONE IPSec test"""
1236         self.run_test()
1237
1238
1239 @tag_fixme_ubuntu2204
1240 class Test_native_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1241     """native ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1242
1243     def test_ipsec(self):
1244         """native ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1245         self.run_test()
1246
1247
1248 @tag_fixme_ubuntu2204
1249 class Test_native_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1250     """native ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1251
1252     def test_ipsec(self):
1253         """native ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1254         self.run_test()
1255
1256
1257 @tag_fixme_ubuntu2204
1258 class Test_native_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1259     """native ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1260
1261     def test_ipsec(self):
1262         """native ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1263         self.run_test()
1264
1265
1266 @tag_fixme_ubuntu2204
1267 class Test_native_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1268     """native ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1269
1270     def test_ipsec(self):
1271         """native ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1272         self.run_test()
1273
1274
1275 class Test_native_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1276     """native ESNon ARon NONE/SHA1-96 IPSec test"""
1277
1278     def test_ipsec(self):
1279         """native ESNon ARon NONE/SHA1-96 IPSec test"""
1280         self.run_test()
1281
1282
1283 class Test_native_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1284     """native ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1285
1286     def test_ipsec(self):
1287         """native ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1288         self.run_test()
1289
1290
1291 class Test_native_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1292     """native ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1293
1294     def test_ipsec(self):
1295         """native ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1296         self.run_test()
1297
1298
1299 class Test_native_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1300     """native ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1301
1302     def test_ipsec(self):
1303         """native ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1304         self.run_test()
1305
1306
1307 class Test_native_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1308     """native ESNon ARoff AES-GCM-128/NONE IPSec test"""
1309
1310     def test_ipsec(self):
1311         """native ESNon ARoff AES-GCM-128/NONE IPSec test"""
1312         self.run_test()
1313
1314
1315 class Test_native_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1316     """native ESNon ARoff AES-GCM-192/NONE IPSec test"""
1317
1318     def test_ipsec(self):
1319         """native ESNon ARoff AES-GCM-192/NONE IPSec test"""
1320         self.run_test()
1321
1322
1323 class Test_native_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1324     """native ESNon ARoff AES-GCM-256/NONE IPSec test"""
1325
1326     def test_ipsec(self):
1327         """native ESNon ARoff AES-GCM-256/NONE IPSec test"""
1328         self.run_test()
1329
1330
1331 @tag_fixme_ubuntu2204
1332 class Test_native_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1333     """native ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1334
1335     def test_ipsec(self):
1336         """native ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1337         self.run_test()
1338
1339
1340 @tag_fixme_ubuntu2204
1341 class Test_native_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1342     """native ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1343
1344     def test_ipsec(self):
1345         """native ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1346         self.run_test()
1347
1348
1349 @tag_fixme_ubuntu2204
1350 class Test_native_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1351     """native ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1352
1353     def test_ipsec(self):
1354         """native ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1355         self.run_test()
1356
1357
1358 @tag_fixme_ubuntu2204
1359 class Test_native_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1360     """native ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1361
1362     def test_ipsec(self):
1363         """native ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1364         self.run_test()
1365
1366
1367 class Test_native_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1368     """native ESNon ARoff NONE/SHA1-96 IPSec test"""
1369
1370     def test_ipsec(self):
1371         """native ESNon ARoff NONE/SHA1-96 IPSec test"""
1372         self.run_test()
1373
1374
1375 class Test_native_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1376     """native ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1377
1378     def test_ipsec(self):
1379         """native ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1380         self.run_test()
1381
1382
1383 class Test_native_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1384     """native ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1385
1386     def test_ipsec(self):
1387         """native ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1388         self.run_test()
1389
1390
1391 class Test_native_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1392     """native ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1393
1394     def test_ipsec(self):
1395         """native ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1396         self.run_test()
1397
1398
1399 class Test_native_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1400     """native ESNoff ARon AES-GCM-128/NONE IPSec test"""
1401
1402     def test_ipsec(self):
1403         """native ESNoff ARon AES-GCM-128/NONE IPSec test"""
1404         self.run_test()
1405
1406
1407 class Test_native_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1408     """native ESNoff ARon AES-GCM-192/NONE IPSec test"""
1409
1410     def test_ipsec(self):
1411         """native ESNoff ARon AES-GCM-192/NONE IPSec test"""
1412         self.run_test()
1413
1414
1415 class Test_native_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1416     """native ESNoff ARon AES-GCM-256/NONE IPSec test"""
1417
1418     def test_ipsec(self):
1419         """native ESNoff ARon AES-GCM-256/NONE IPSec test"""
1420         self.run_test()
1421
1422
1423 @tag_fixme_ubuntu2204
1424 class Test_native_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1425     """native ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1426
1427     def test_ipsec(self):
1428         """native ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1429         self.run_test()
1430
1431
1432 @tag_fixme_ubuntu2204
1433 class Test_native_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1434     """native ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1435
1436     def test_ipsec(self):
1437         """native ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1438         self.run_test()
1439
1440
1441 @tag_fixme_ubuntu2204
1442 class Test_native_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1443     """native ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1444
1445     def test_ipsec(self):
1446         """native ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1447         self.run_test()
1448
1449
1450 @tag_fixme_ubuntu2204
1451 class Test_native_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1452     """native ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1453
1454     def test_ipsec(self):
1455         """native ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1456         self.run_test()
1457
1458
1459 class Test_native_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1460     """native ESNoff ARon NONE/SHA1-96 IPSec test"""
1461
1462     def test_ipsec(self):
1463         """native ESNoff ARon NONE/SHA1-96 IPSec test"""
1464         self.run_test()
1465
1466
1467 class Test_native_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1468     """native ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1469
1470     def test_ipsec(self):
1471         """native ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1472         self.run_test()
1473
1474
1475 class Test_native_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1476     """native ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1477
1478     def test_ipsec(self):
1479         """native ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1480         self.run_test()
1481
1482
1483 class Test_native_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1484     """native ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1485
1486     def test_ipsec(self):
1487         """native ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1488         self.run_test()
1489
1490
1491 class Test_native_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1492     """native ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1493
1494     def test_ipsec(self):
1495         """native ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1496         self.run_test()
1497
1498
1499 class Test_native_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1500     """native ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1501
1502     def test_ipsec(self):
1503         """native ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1504         self.run_test()
1505
1506
1507 class Test_native_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1508     """native ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1509
1510     def test_ipsec(self):
1511         """native ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1512         self.run_test()
1513
1514
1515 @tag_fixme_ubuntu2204
1516 class Test_native_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1517     """native ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1518
1519     def test_ipsec(self):
1520         """native ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1521         self.run_test()
1522
1523
1524 @tag_fixme_ubuntu2204
1525 class Test_native_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1526     """native ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1527
1528     def test_ipsec(self):
1529         """native ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1530         self.run_test()
1531
1532
1533 @tag_fixme_ubuntu2204
1534 class Test_native_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1535     """native ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1536
1537     def test_ipsec(self):
1538         """native ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1539         self.run_test()
1540
1541
1542 @tag_fixme_ubuntu2204
1543 class Test_native_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1544     """native ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1545
1546     def test_ipsec(self):
1547         """native ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1548         self.run_test()
1549
1550
1551 class Test_native_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1552     """native ESNoff ARoff NONE/SHA1-96 IPSec test"""
1553
1554     def test_ipsec(self):
1555         """native ESNoff ARoff NONE/SHA1-96 IPSec test"""
1556         self.run_test()
1557
1558
1559 class Test_native_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1560     """native ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1561
1562     def test_ipsec(self):
1563         """native ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1564         self.run_test()
1565
1566
1567 class Test_native_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1568     """native ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1569
1570     def test_ipsec(self):
1571         """native ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1572         self.run_test()
1573
1574
1575 class Test_native_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1576     """native ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1577
1578     def test_ipsec(self):
1579         """native ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1580         self.run_test()
1581
1582
1583 class Test_ipsecmb_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1584     """ipsecmb ESNon ARon AES-GCM-128/NONE IPSec test"""
1585
1586     def test_ipsec(self):
1587         """ipsecmb ESNon ARon AES-GCM-128/NONE IPSec test"""
1588         self.run_test()
1589
1590
1591 class Test_ipsecmb_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1592     """ipsecmb ESNon ARon AES-GCM-192/NONE IPSec test"""
1593
1594     def test_ipsec(self):
1595         """ipsecmb ESNon ARon AES-GCM-192/NONE IPSec test"""
1596         self.run_test()
1597
1598
1599 class Test_ipsecmb_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1600     """ipsecmb ESNon ARon AES-GCM-256/NONE IPSec test"""
1601
1602     def test_ipsec(self):
1603         """ipsecmb ESNon ARon AES-GCM-256/NONE IPSec test"""
1604         self.run_test()
1605
1606
1607 @tag_fixme_ubuntu2204
1608 class Test_ipsecmb_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1609     """ipsecmb ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1610
1611     def test_ipsec(self):
1612         """ipsecmb ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1613         self.run_test()
1614
1615
1616 @tag_fixme_ubuntu2204
1617 class Test_ipsecmb_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1618     """ipsecmb ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1619
1620     def test_ipsec(self):
1621         """ipsecmb ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1622         self.run_test()
1623
1624
1625 @tag_fixme_ubuntu2204
1626 class Test_ipsecmb_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1627     """ipsecmb ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1628
1629     def test_ipsec(self):
1630         """ipsecmb ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1631         self.run_test()
1632
1633
1634 @tag_fixme_ubuntu2204
1635 class Test_ipsecmb_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1636     """ipsecmb ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1637
1638     def test_ipsec(self):
1639         """ipsecmb ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1640         self.run_test()
1641
1642
1643 class Test_ipsecmb_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1644     """ipsecmb ESNon ARon NONE/SHA1-96 IPSec test"""
1645
1646     def test_ipsec(self):
1647         """ipsecmb ESNon ARon NONE/SHA1-96 IPSec test"""
1648         self.run_test()
1649
1650
1651 class Test_ipsecmb_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1652     """ipsecmb ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1653
1654     def test_ipsec(self):
1655         """ipsecmb ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1656         self.run_test()
1657
1658
1659 class Test_ipsecmb_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1660     """ipsecmb ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1661
1662     def test_ipsec(self):
1663         """ipsecmb ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1664         self.run_test()
1665
1666
1667 class Test_ipsecmb_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1668     """ipsecmb ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1669
1670     def test_ipsec(self):
1671         """ipsecmb ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1672         self.run_test()
1673
1674
1675 class Test_ipsecmb_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1676     """ipsecmb ESNon ARoff AES-GCM-128/NONE IPSec test"""
1677
1678     def test_ipsec(self):
1679         """ipsecmb ESNon ARoff AES-GCM-128/NONE IPSec test"""
1680         self.run_test()
1681
1682
1683 class Test_ipsecmb_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1684     """ipsecmb ESNon ARoff AES-GCM-192/NONE IPSec test"""
1685
1686     def test_ipsec(self):
1687         """ipsecmb ESNon ARoff AES-GCM-192/NONE IPSec test"""
1688         self.run_test()
1689
1690
1691 class Test_ipsecmb_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1692     """ipsecmb ESNon ARoff AES-GCM-256/NONE IPSec test"""
1693
1694     def test_ipsec(self):
1695         """ipsecmb ESNon ARoff AES-GCM-256/NONE IPSec test"""
1696         self.run_test()
1697
1698
1699 @tag_fixme_ubuntu2204
1700 class Test_ipsecmb_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1701     """ipsecmb ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1702
1703     def test_ipsec(self):
1704         """ipsecmb ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1705         self.run_test()
1706
1707
1708 @tag_fixme_ubuntu2204
1709 class Test_ipsecmb_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1710     """ipsecmb ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1711
1712     def test_ipsec(self):
1713         """ipsecmb ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1714         self.run_test()
1715
1716
1717 @tag_fixme_ubuntu2204
1718 class Test_ipsecmb_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1719     """ipsecmb ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1720
1721     def test_ipsec(self):
1722         """ipsecmb ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1723         self.run_test()
1724
1725
1726 @tag_fixme_ubuntu2204
1727 class Test_ipsecmb_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1728     """ipsecmb ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1729
1730     def test_ipsec(self):
1731         """ipsecmb ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1732         self.run_test()
1733
1734
1735 class Test_ipsecmb_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1736     """ipsecmb ESNon ARoff NONE/SHA1-96 IPSec test"""
1737
1738     def test_ipsec(self):
1739         """ipsecmb ESNon ARoff NONE/SHA1-96 IPSec test"""
1740         self.run_test()
1741
1742
1743 class Test_ipsecmb_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1744     """ipsecmb ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1745
1746     def test_ipsec(self):
1747         """ipsecmb ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1748         self.run_test()
1749
1750
1751 class Test_ipsecmb_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1752     """ipsecmb ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1753
1754     def test_ipsec(self):
1755         """ipsecmb ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1756         self.run_test()
1757
1758
1759 class Test_ipsecmb_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1760     """ipsecmb ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1761
1762     def test_ipsec(self):
1763         """ipsecmb ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1764         self.run_test()
1765
1766
1767 class Test_ipsecmb_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1768     """ipsecmb ESNoff ARon AES-GCM-128/NONE IPSec test"""
1769
1770     def test_ipsec(self):
1771         """ipsecmb ESNoff ARon AES-GCM-128/NONE IPSec test"""
1772         self.run_test()
1773
1774
1775 class Test_ipsecmb_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1776     """ipsecmb ESNoff ARon AES-GCM-192/NONE IPSec test"""
1777
1778     def test_ipsec(self):
1779         """ipsecmb ESNoff ARon AES-GCM-192/NONE IPSec test"""
1780         self.run_test()
1781
1782
1783 class Test_ipsecmb_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1784     """ipsecmb ESNoff ARon AES-GCM-256/NONE IPSec test"""
1785
1786     def test_ipsec(self):
1787         """ipsecmb ESNoff ARon AES-GCM-256/NONE IPSec test"""
1788         self.run_test()
1789
1790
1791 @tag_fixme_ubuntu2204
1792 class Test_ipsecmb_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1793     """ipsecmb ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1794
1795     def test_ipsec(self):
1796         """ipsecmb ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1797         self.run_test()
1798
1799
1800 @tag_fixme_ubuntu2204
1801 class Test_ipsecmb_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1802     """ipsecmb ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1803
1804     def test_ipsec(self):
1805         """ipsecmb ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1806         self.run_test()
1807
1808
1809 @tag_fixme_ubuntu2204
1810 class Test_ipsecmb_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1811     """ipsecmb ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1812
1813     def test_ipsec(self):
1814         """ipsecmb ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1815         self.run_test()
1816
1817
1818 @tag_fixme_ubuntu2204
1819 class Test_ipsecmb_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1820     """ipsecmb ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1821
1822     def test_ipsec(self):
1823         """ipsecmb ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1824         self.run_test()
1825
1826
1827 class Test_ipsecmb_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1828     """ipsecmb ESNoff ARon NONE/SHA1-96 IPSec test"""
1829
1830     def test_ipsec(self):
1831         """ipsecmb ESNoff ARon NONE/SHA1-96 IPSec test"""
1832         self.run_test()
1833
1834
1835 class Test_ipsecmb_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1836     """ipsecmb ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1837
1838     def test_ipsec(self):
1839         """ipsecmb ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1840         self.run_test()
1841
1842
1843 class Test_ipsecmb_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1844     """ipsecmb ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1845
1846     def test_ipsec(self):
1847         """ipsecmb ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1848         self.run_test()
1849
1850
1851 class Test_ipsecmb_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1852     """ipsecmb ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1853
1854     def test_ipsec(self):
1855         """ipsecmb ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1856         self.run_test()
1857
1858
1859 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1860     """ipsecmb ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1861
1862     def test_ipsec(self):
1863         """ipsecmb ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1864         self.run_test()
1865
1866
1867 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1868     """ipsecmb ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1869
1870     def test_ipsec(self):
1871         """ipsecmb ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1872         self.run_test()
1873
1874
1875 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1876     """ipsecmb ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1877
1878     def test_ipsec(self):
1879         """ipsecmb ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1880         self.run_test()
1881
1882
1883 @tag_fixme_ubuntu2204
1884 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1885     """ipsecmb ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1886
1887     def test_ipsec(self):
1888         """ipsecmb ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1889         self.run_test()
1890
1891
1892 @tag_fixme_ubuntu2204
1893 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1894     """ipsecmb ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1895
1896     def test_ipsec(self):
1897         """ipsecmb ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1898         self.run_test()
1899
1900
1901 @tag_fixme_ubuntu2204
1902 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1903     """ipsecmb ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1904
1905     def test_ipsec(self):
1906         """ipsecmb ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1907         self.run_test()
1908
1909
1910 @tag_fixme_ubuntu2204
1911 class Test_ipsecmb_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1912     """ipsecmb ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1913
1914     def test_ipsec(self):
1915         """ipsecmb ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1916         self.run_test()
1917
1918
1919 class Test_ipsecmb_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1920     """ipsecmb ESNoff ARoff NONE/SHA1-96 IPSec test"""
1921
1922     def test_ipsec(self):
1923         """ipsecmb ESNoff ARoff NONE/SHA1-96 IPSec test"""
1924         self.run_test()
1925
1926
1927 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1928     """ipsecmb ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1929
1930     def test_ipsec(self):
1931         """ipsecmb ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1932         self.run_test()
1933
1934
1935 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1936     """ipsecmb ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1937
1938     def test_ipsec(self):
1939         """ipsecmb ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1940         self.run_test()
1941
1942
1943 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1944     """ipsecmb ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1945
1946     def test_ipsec(self):
1947         """ipsecmb ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1948         self.run_test()
1949
1950
1951 class Test_openssl_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1952     """openssl ESNon ARon AES-GCM-128/NONE IPSec test"""
1953
1954     def test_ipsec(self):
1955         """openssl ESNon ARon AES-GCM-128/NONE IPSec test"""
1956         self.run_test()
1957
1958
1959 class Test_openssl_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1960     """openssl ESNon ARon AES-GCM-192/NONE IPSec test"""
1961
1962     def test_ipsec(self):
1963         """openssl ESNon ARon AES-GCM-192/NONE IPSec test"""
1964         self.run_test()
1965
1966
1967 class Test_openssl_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1968     """openssl ESNon ARon AES-GCM-256/NONE IPSec test"""
1969
1970     def test_ipsec(self):
1971         """openssl ESNon ARon AES-GCM-256/NONE IPSec test"""
1972         self.run_test()
1973
1974
1975 @tag_fixme_ubuntu2204
1976 class Test_openssl_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1977     """openssl ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1978
1979     def test_ipsec(self):
1980         """openssl ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1981         self.run_test()
1982
1983
1984 @tag_fixme_ubuntu2204
1985 class Test_openssl_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1986     """openssl ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1987
1988     def test_ipsec(self):
1989         """openssl ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1990         self.run_test()
1991
1992
1993 @tag_fixme_ubuntu2204
1994 class Test_openssl_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1995     """openssl ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1996
1997     def test_ipsec(self):
1998         """openssl ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1999         self.run_test()
2000
2001
2002 @tag_fixme_ubuntu2204
2003 class Test_openssl_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2004     """openssl ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
2005
2006     def test_ipsec(self):
2007         """openssl ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
2008         self.run_test()
2009
2010
2011 class Test_openssl_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
2012     """openssl ESNon ARon NONE/SHA1-96 IPSec test"""
2013
2014     def test_ipsec(self):
2015         """openssl ESNon ARon NONE/SHA1-96 IPSec test"""
2016         self.run_test()
2017
2018
2019 class Test_openssl_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2020     """openssl ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
2021
2022     def test_ipsec(self):
2023         """openssl ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
2024         self.run_test()
2025
2026
2027 class Test_openssl_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2028     """openssl ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
2029
2030     def test_ipsec(self):
2031         """openssl ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
2032         self.run_test()
2033
2034
2035 class Test_openssl_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2036     """openssl ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
2037
2038     def test_ipsec(self):
2039         """openssl ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
2040         self.run_test()
2041
2042
2043 class Test_openssl_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2044     """openssl ESNon ARoff AES-GCM-128/NONE IPSec test"""
2045
2046     def test_ipsec(self):
2047         """openssl ESNon ARoff AES-GCM-128/NONE IPSec test"""
2048         self.run_test()
2049
2050
2051 class Test_openssl_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2052     """openssl ESNon ARoff AES-GCM-192/NONE IPSec test"""
2053
2054     def test_ipsec(self):
2055         """openssl ESNon ARoff AES-GCM-192/NONE IPSec test"""
2056         self.run_test()
2057
2058
2059 class Test_openssl_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2060     """openssl ESNon ARoff AES-GCM-256/NONE IPSec test"""
2061
2062     def test_ipsec(self):
2063         """openssl ESNon ARoff AES-GCM-256/NONE IPSec test"""
2064         self.run_test()
2065
2066
2067 @tag_fixme_ubuntu2204
2068 class Test_openssl_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2069     """openssl ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
2070
2071     def test_ipsec(self):
2072         """openssl ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
2073         self.run_test()
2074
2075
2076 @tag_fixme_ubuntu2204
2077 class Test_openssl_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2078     """openssl ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2079
2080     def test_ipsec(self):
2081         """openssl ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2082         self.run_test()
2083
2084
2085 @tag_fixme_ubuntu2204
2086 class Test_openssl_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2087     """openssl ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2088
2089     def test_ipsec(self):
2090         """openssl ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2091         self.run_test()
2092
2093
2094 @tag_fixme_ubuntu2204
2095 class Test_openssl_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2096     """openssl ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
2097
2098     def test_ipsec(self):
2099         """openssl ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
2100         self.run_test()
2101
2102
2103 class Test_openssl_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
2104     """openssl ESNon ARoff NONE/SHA1-96 IPSec test"""
2105
2106     def test_ipsec(self):
2107         """openssl ESNon ARoff NONE/SHA1-96 IPSec test"""
2108         self.run_test()
2109
2110
2111 class Test_openssl_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2112     """openssl ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
2113
2114     def test_ipsec(self):
2115         """openssl ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
2116         self.run_test()
2117
2118
2119 class Test_openssl_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2120     """openssl ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
2121
2122     def test_ipsec(self):
2123         """openssl ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
2124         self.run_test()
2125
2126
2127 class Test_openssl_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2128     """openssl ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
2129
2130     def test_ipsec(self):
2131         """openssl ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
2132         self.run_test()
2133
2134
2135 class Test_openssl_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2136     """openssl ESNoff ARon AES-GCM-128/NONE IPSec test"""
2137
2138     def test_ipsec(self):
2139         """openssl ESNoff ARon AES-GCM-128/NONE IPSec test"""
2140         self.run_test()
2141
2142
2143 class Test_openssl_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2144     """openssl ESNoff ARon AES-GCM-192/NONE IPSec test"""
2145
2146     def test_ipsec(self):
2147         """openssl ESNoff ARon AES-GCM-192/NONE IPSec test"""
2148         self.run_test()
2149
2150
2151 class Test_openssl_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2152     """openssl ESNoff ARon AES-GCM-256/NONE IPSec test"""
2153
2154     def test_ipsec(self):
2155         """openssl ESNoff ARon AES-GCM-256/NONE IPSec test"""
2156         self.run_test()
2157
2158
2159 @tag_fixme_ubuntu2204
2160 class Test_openssl_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2161     """openssl ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
2162
2163     def test_ipsec(self):
2164         """openssl ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
2165         self.run_test()
2166
2167
2168 @tag_fixme_ubuntu2204
2169 class Test_openssl_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2170     """openssl ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2171
2172     def test_ipsec(self):
2173         """openssl ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2174         self.run_test()
2175
2176
2177 @tag_fixme_ubuntu2204
2178 class Test_openssl_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2179     """openssl ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2180
2181     def test_ipsec(self):
2182         """openssl ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2183         self.run_test()
2184
2185
2186 @tag_fixme_ubuntu2204
2187 class Test_openssl_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2188     """openssl ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
2189
2190     def test_ipsec(self):
2191         """openssl ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
2192         self.run_test()
2193
2194
2195 class Test_openssl_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
2196     """openssl ESNoff ARon NONE/SHA1-96 IPSec test"""
2197
2198     def test_ipsec(self):
2199         """openssl ESNoff ARon NONE/SHA1-96 IPSec test"""
2200         self.run_test()
2201
2202
2203 class Test_openssl_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2204     """openssl ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
2205
2206     def test_ipsec(self):
2207         """openssl ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
2208         self.run_test()
2209
2210
2211 class Test_openssl_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2212     """openssl ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
2213
2214     def test_ipsec(self):
2215         """openssl ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
2216         self.run_test()
2217
2218
2219 class Test_openssl_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2220     """openssl ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
2221
2222     def test_ipsec(self):
2223         """openssl ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
2224         self.run_test()
2225
2226
2227 class Test_openssl_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2228     """openssl ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2229
2230     def test_ipsec(self):
2231         """openssl ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2232         self.run_test()
2233
2234
2235 class Test_openssl_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2236     """openssl ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2237
2238     def test_ipsec(self):
2239         """openssl ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2240         self.run_test()
2241
2242
2243 class Test_openssl_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2244     """openssl ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2245
2246     def test_ipsec(self):
2247         """openssl ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2248         self.run_test()
2249
2250
2251 @tag_fixme_ubuntu2204
2252 class Test_openssl_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2253     """openssl ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
2254
2255     def test_ipsec(self):
2256         """openssl ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
2257         self.run_test()
2258
2259
2260 @tag_fixme_ubuntu2204
2261 class Test_openssl_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2262     """openssl ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2263
2264     def test_ipsec(self):
2265         """openssl ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2266         self.run_test()
2267
2268
2269 @tag_fixme_ubuntu2204
2270 class Test_openssl_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2271     """openssl ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2272
2273     def test_ipsec(self):
2274         """openssl ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2275         self.run_test()
2276
2277
2278 @tag_fixme_ubuntu2204
2279 class Test_openssl_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2280     """openssl ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
2281
2282     def test_ipsec(self):
2283         """openssl ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
2284         self.run_test()
2285
2286
2287 class Test_openssl_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
2288     """openssl ESNoff ARoff NONE/SHA1-96 IPSec test"""
2289
2290     def test_ipsec(self):
2291         """openssl ESNoff ARoff NONE/SHA1-96 IPSec test"""
2292         self.run_test()
2293
2294
2295 class Test_openssl_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2296     """openssl ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
2297
2298     def test_ipsec(self):
2299         """openssl ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
2300         self.run_test()
2301
2302
2303 class Test_openssl_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2304     """openssl ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
2305
2306     def test_ipsec(self):
2307         """openssl ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
2308         self.run_test()
2309
2310
2311 class Test_openssl_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2312     """openssl ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
2313
2314     def test_ipsec(self):
2315         """openssl ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
2316         self.run_test()
2317
2318
2319 class Test_async_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2320     """async ESNon ARon AES-GCM-128/NONE IPSec test"""
2321
2322     def test_ipsec(self):
2323         """async ESNon ARon AES-GCM-128/NONE IPSec test"""
2324         self.run_test()
2325
2326
2327 class Test_async_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2328     """async ESNon ARon AES-GCM-192/NONE IPSec test"""
2329
2330     def test_ipsec(self):
2331         """async ESNon ARon AES-GCM-192/NONE IPSec test"""
2332         self.run_test()
2333
2334
2335 class Test_async_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2336     """async ESNon ARon AES-GCM-256/NONE IPSec test"""
2337
2338     def test_ipsec(self):
2339         """async ESNon ARon AES-GCM-256/NONE IPSec test"""
2340         self.run_test()
2341
2342
2343 @tag_fixme_ubuntu2204
2344 class Test_async_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2345     """async ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
2346
2347     def test_ipsec(self):
2348         """async ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
2349         self.run_test()
2350
2351
2352 @tag_fixme_ubuntu2204
2353 class Test_async_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2354     """async ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
2355
2356     def test_ipsec(self):
2357         """async ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
2358         self.run_test()
2359
2360
2361 class Test_async_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2362     """async ESNon ARoff AES-GCM-128/NONE IPSec test"""
2363
2364     def test_ipsec(self):
2365         """async ESNon ARoff AES-GCM-128/NONE IPSec test"""
2366         self.run_test()
2367
2368
2369 class Test_async_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2370     """async ESNon ARoff AES-GCM-192/NONE IPSec test"""
2371
2372     def test_ipsec(self):
2373         """async ESNon ARoff AES-GCM-192/NONE IPSec test"""
2374         self.run_test()
2375
2376
2377 class Test_async_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2378     """async ESNon ARoff AES-GCM-256/NONE IPSec test"""
2379
2380     def test_ipsec(self):
2381         """async ESNon ARoff AES-GCM-256/NONE IPSec test"""
2382         self.run_test()
2383
2384
2385 @tag_fixme_ubuntu2204
2386 class Test_async_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2387     """async ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2388
2389     def test_ipsec(self):
2390         """async ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2391         self.run_test()
2392
2393
2394 @tag_fixme_ubuntu2204
2395 class Test_async_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2396     """async ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2397
2398     def test_ipsec(self):
2399         """async ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2400         self.run_test()
2401
2402
2403 class Test_async_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2404     """async ESNoff ARon AES-GCM-128/NONE IPSec test"""
2405
2406     def test_ipsec(self):
2407         """async ESNoff ARon AES-GCM-128/NONE IPSec test"""
2408         self.run_test()
2409
2410
2411 class Test_async_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2412     """async ESNoff ARon AES-GCM-192/NONE IPSec test"""
2413
2414     def test_ipsec(self):
2415         """async ESNoff ARon AES-GCM-192/NONE IPSec test"""
2416         self.run_test()
2417
2418
2419 class Test_async_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2420     """async ESNoff ARon AES-GCM-256/NONE IPSec test"""
2421
2422     def test_ipsec(self):
2423         """async ESNoff ARon AES-GCM-256/NONE IPSec test"""
2424         self.run_test()
2425
2426
2427 @tag_fixme_ubuntu2204
2428 class Test_async_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2429     """async ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2430
2431     def test_ipsec(self):
2432         """async ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2433         self.run_test()
2434
2435
2436 @tag_fixme_ubuntu2204
2437 class Test_async_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2438     """async ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2439
2440     def test_ipsec(self):
2441         """async ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2442         self.run_test()
2443
2444
2445 class Test_async_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2446     """async ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2447
2448     def test_ipsec(self):
2449         """async ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2450         self.run_test()
2451
2452
2453 class Test_async_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2454     """async ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2455
2456     def test_ipsec(self):
2457         """async ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2458         self.run_test()
2459
2460
2461 class Test_async_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2462     """async ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2463
2464     def test_ipsec(self):
2465         """async ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2466         self.run_test()
2467
2468
2469 @tag_fixme_ubuntu2204
2470 class Test_async_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2471     """async ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2472
2473     def test_ipsec(self):
2474         """async ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2475         self.run_test()
2476
2477
2478 @tag_fixme_ubuntu2204
2479 class Test_async_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2480     """async ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2481
2482     def test_ipsec(self):
2483         """async ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2484         self.run_test()