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