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