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
9 from parameterized import parameterized
10 from framework import VppTestRunner
11 from template_ipsec import (
26 IpsecTun6HandoffTests,
27 IpsecTun4HandoffTests,
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
36 engines_supporting_chain_bufs = ["openssl", "async"]
37 engines = ["ia32", "ipsecmb", "openssl"]
40 class ConfigIpsecESP(TemplateIpsec):
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"]
53 super(ConfigIpsecESP, cls).setUpClass()
56 def tearDownClass(cls):
57 super(ConfigIpsecESP, cls).tearDownClass()
60 super(ConfigIpsecESP, self).setUp()
63 super(ConfigIpsecESP, self).tearDown()
65 def config_anti_replay(self, params):
66 saf = VppEnum.vl_api_ipsec_sad_flags_t
68 p.flags |= saf.IPSEC_API_SAD_FLAG_USE_ANTI_REPLAY
70 def config_network(self, params):
72 self.tun_if = self.pg0
73 self.tra_if = self.pg2
74 self.logger.info(self.vapi.ppcli("show int addr"))
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)
83 b = VppIpsecSpdItfBinding(self, self.tun_spd, self.tun_if)
85 self.net_objs.append(b)
87 b = VppIpsecSpdItfBinding(self, self.tra_spd, self.tra_if)
89 self.net_objs.append(b)
92 self.config_esp_tra(p)
93 config_tra_params(p, self.encryption_type)
95 self.config_esp_tun(p)
96 config_tun_params(p, self.encryption_type, self.tun_if)
99 d = DpoProto.DPO_PROTO_IP6 if p.is_ipv6 else DpoProto.DPO_PROTO_IP4
102 p.remote_tun_if_host,
106 self.tun_if.remote_addr[p.addr_type], 0xFFFFFFFF, proto=d
111 self.net_objs.append(r)
113 self.logger.info(self.vapi.ppcli("show ipsec all"))
115 def unconfig_network(self):
116 for o in reversed(self.net_objs):
117 o.remove_vpp_config()
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
135 tun_flags = params.tun_flags
139 params.tun_sa_in = VppIpsecSA(
147 self.vpp_esp_protocol,
148 self.tun_if.remote_addr[addr_type],
149 self.tun_if.local_addr[addr_type],
154 hop_limit=params.outer_hop_limit,
156 params.tun_sa_out = VppIpsecSA(
164 self.vpp_esp_protocol,
165 self.tun_if.local_addr[addr_type],
166 self.tun_if.remote_addr[addr_type],
171 hop_limit=params.outer_hop_limit,
173 objs.append(params.tun_sa_in)
174 objs.append(params.tun_sa_out)
176 params.spd_policy_in_any = VppIpsecSpdEntry(
186 params.spd_policy_out_any = VppIpsecSpdEntry(
197 objs.append(params.spd_policy_out_any)
198 objs.append(params.spd_policy_in_any)
207 self.pg1.remote_addr[addr_type],
208 self.pg1.remote_addr[addr_type],
211 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
220 self.pg1.remote_addr[addr_type],
221 self.pg1.remote_addr[addr_type],
225 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
236 self.pg0.local_addr[addr_type],
237 self.pg0.local_addr[addr_type],
240 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
249 self.pg0.local_addr[addr_type],
250 self.pg0.local_addr[addr_type],
254 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
260 self.net_objs = self.net_objs + objs
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
279 params.tra_sa_in = VppIpsecSA(
287 self.vpp_esp_protocol,
291 params.tra_sa_out = VppIpsecSA(
299 self.vpp_esp_protocol,
303 objs.append(params.tra_sa_in)
304 objs.append(params.tra_sa_out)
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],
342 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
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],
356 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
362 self.net_objs = self.net_objs + objs
365 class TemplateIpsecEsp(ConfigIpsecESP):
367 Basic test for ipsec esp sanity - tunnel and transport modes.
369 Below 4 cases are covered as part of this test
371 #. ipsec esp v4 transport basic test - IPv4 Transport mode
372 scenario using HMAC-SHA1-96 integrity algo
374 #. ipsec esp v4 transport burst test
375 Above test for 257 pkts
377 #. ipsec esp 4o4 tunnel basic test - IPv4 Tunnel mode
378 scenario using HMAC-SHA1-96 integrity algo
380 #. ipsec esp 4o4 tunnel burst test
381 Above test for 257 pkts
386 |pg2| <-------> |VPP|
391 --- encrypt --- plain ---
392 |pg0| <------- |VPP| <------ |pg1|
395 --- decrypt --- plain ---
396 |pg0| -------> |VPP| ------> |pg1|
403 super(TemplateIpsecEsp, cls).setUpClass()
406 def tearDownClass(cls):
407 super(TemplateIpsecEsp, cls).tearDownClass()
410 super(TemplateIpsecEsp, self).setUp()
411 self.config_anti_replay(self.params.values())
412 self.config_network(self.params.values())
415 self.unconfig_network()
416 super(TemplateIpsecEsp, self).tearDown()
420 TemplateIpsecEsp, IpsecTra46Tests, IpsecTun46Tests, IpsecTra6ExtTests
422 """Ipsec ESP - TUN & TRA tests"""
426 super(TestIpsecEsp1, cls).setUpClass()
429 def tearDownClass(cls):
430 super(TestIpsecEsp1, cls).tearDownClass()
433 super(TestIpsecEsp1, self).setUp()
436 super(TestIpsecEsp1, self).tearDown()
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
444 p6.remote_tun_if_host4 = "2.2.2.2"
445 e = VppEnum.vl_api_ipsec_spd_action_t
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,
457 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
462 p6.remote_tun_if_host4,
464 [VppRoutePath(self.tun_if.remote_addr[p4.addr_type], 0xFFFFFFFF)],
467 old_name = self.tun6_encrypt_node_name
468 self.tun6_encrypt_node_name = "esp4-encrypt"
470 self.verify_tun_46(p6, count=63)
471 self.tun6_encrypt_node_name = old_name
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
479 p4.remote_tun_if_host6 = "4444::4"
480 e = VppEnum.vl_api_ipsec_spd_action_t
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,
492 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
495 d = DpoProto.DPO_PROTO_IP6
498 p4.remote_tun_if_host6,
500 [VppRoutePath(self.tun_if.remote_addr[p6.addr_type], 0xFFFFFFFF, proto=d)],
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
509 class TestIpsecEspTun(TemplateIpsecEsp, IpsecTun46Tests):
510 """Ipsec ESP - TUN encap tests"""
513 self.ipv4_params = IPsecIPv4Params()
514 self.ipv6_params = IPsecIPv6Params()
517 VppEnum.vl_api_tunnel_encap_decap_flags_t.TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_DSCP
520 VppEnum.vl_api_tunnel_encap_decap_flags_t.TUNNEL_API_ENCAP_DECAP_FLAG_ENCAP_COPY_ECN
523 self.ipv4_params.tun_flags = c
524 self.ipv6_params.tun_flags = c1
526 super(TestIpsecEspTun, self).setUp()
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
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)
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
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)
548 def verify_encrypted(self, p, sa, rxs):
549 # just check that only the DSCP is copied
551 self.assertEqual(rx[IP].tos, 4)
553 def verify_encrypted6(self, p, sa, rxs):
554 # just check that the DSCP & ECN are copied
556 self.assertEqual(rx[IPv6].tc, 5)
559 class TestIpsecEspTun2(TemplateIpsecEsp, IpsecTun46Tests):
560 """Ipsec ESP - TUN DSCP tests"""
563 self.ipv4_params = IPsecIPv4Params()
564 self.ipv6_params = IPsecIPv6Params()
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
569 super(TestIpsecEspTun2, self).setUp()
571 def gen_pkts(self, sw_intf, src, dst, count=1, payload_size=54):
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)
580 def gen_pkts6(self, p, sw_intf, src, dst, count=1, payload_size=54):
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)
589 def verify_encrypted(self, p, sa, rxs):
590 # just check that only the DSCP is set
592 self.assertEqual(rx[IP].tos, VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_EF << 2)
594 def verify_encrypted6(self, p, sa, rxs):
595 # just check that the DSCP is set
598 rx[IPv6].tc, VppEnum.vl_api_ip_dscp_t.IP_API_DSCP_AF11 << 2
602 class TestIpsecEsp2(TemplateIpsecEsp, IpsecTcpTests):
603 """Ipsec ESP - TCP tests"""
608 class TestIpsecEspAsync(TemplateIpsecEsp):
609 """Ipsec ESP - Aysnc tests"""
614 super(TestIpsecEspAsync, self).setUp()
616 self.p_sync = IPsecIPv4Params()
618 self.p_sync.crypt_algo_vpp_id = (
619 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_256
621 self.p_sync.crypt_algo = "AES-CBC" # scapy name
622 self.p_sync.crypt_key = b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h"
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
631 self.p_sync.sa = VppIpsecSA(
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],
643 self.p_sync.spd = VppIpsecSpdEntry(
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,
653 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
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)],
662 config_tun_params(self.p_sync, self.encryption_type, self.tun_if)
664 self.p_async = IPsecIPv4Params()
666 self.p_async.crypt_algo_vpp_id = (
667 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_256
669 self.p_async.auth_algo_vpp_id = (
670 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
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"
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"
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
689 self.p_async.sa = VppIpsecSA(
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,
702 self.p_async.spd = VppIpsecSpdEntry(
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,
712 policy=e.IPSEC_API_SPD_ACTION_PROTECT,
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)],
721 config_tun_params(self.p_async, self.encryption_type, self.tun_if)
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)
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)
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)
744 rxs = self.send_and_expect(self.pg1, pkts, self.pg0)
746 self.assertEqual(len(rxs), len(pkts))
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])
755 self.assertTrue(False)
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)
763 def test_sync_async_noop_stream(self):
764 """Alternating SAs sync/async/noop"""
765 p = self.params[self.p_sync.addr_type]
767 # first pin the default/noop SA to worker 0
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)
776 rxs = self.send_and_expect(self.pg1, pkts, self.pg0, worker=0)
778 self.logger.info(self.vapi.cli("sh ipsec sa"))
779 self.logger.info(self.vapi.cli("sh crypto async status"))
781 # then use all the other SAs on worker 1.
782 # some will handoff, other take the sync and async paths
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)
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)
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)
805 rxs = self.send_and_expect(self.pg1, pkts, self.pg0, worker=1)
807 self.assertEqual(len(rxs), len(pkts))
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])
818 self.assertTrue(False)
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()
826 class TestIpsecEspHandoff(
827 TemplateIpsecEsp, IpsecTun6HandoffTests, IpsecTun4HandoffTests
829 """Ipsec ESP - handoff tests"""
834 class TemplateIpsecEspUdp(ConfigIpsecESP):
841 super(TemplateIpsecEspUdp, cls).setUpClass()
844 def tearDownClass(cls):
845 super(TemplateIpsecEspUdp, cls).tearDownClass()
848 super(TemplateIpsecEspUdp, self).setUp()
850 self.tun_if = self.pg0
851 self.tra_if = self.pg2
852 self.logger.info(self.vapi.ppcli("show int addr"))
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
859 p.nat_header = UDP(sport=5454, dport=4500)
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()
865 self.config_esp_tra(p)
866 config_tra_params(p, self.encryption_type)
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()
872 self.config_esp_tun(p)
873 self.logger.info(self.vapi.ppcli("show ipsec all"))
875 d = DpoProto.DPO_PROTO_IP4
878 p.remote_tun_if_host,
880 [VppRoutePath(self.tun_if.remote_addr[p.addr_type], 0xFFFFFFFF, proto=d)],
884 super(TemplateIpsecEspUdp, self).tearDown()
886 def show_commands_at_teardown(self):
887 self.logger.info(self.vapi.cli("show hardware"))
890 class TestIpsecEspUdp(TemplateIpsecEspUdp, IpsecTra4Tests):
891 """Ipsec NAT-T ESP UDP tests"""
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
904 "AES-GCM-128/NONE": {
906 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_128
909 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
911 "scapy-crypto": "AES-GCM",
912 "scapy-integ": "NULL",
913 "key": b"JPjyOWBeVEQiMe7h",
916 "AES-GCM-192/NONE": {
918 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_192
921 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
923 "scapy-crypto": "AES-GCM",
924 "scapy-integ": "NULL",
925 "key": b"JPjyOWBeVEQiMe7h01234567",
928 "AES-GCM-256/NONE": {
930 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_GCM_256
933 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_NONE
935 "scapy-crypto": "AES-GCM",
936 "scapy-integ": "NULL",
937 "key": b"JPjyOWBeVEQiMe7h0123456787654321",
940 "AES-CBC-128/MD5-96": {
942 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_128
945 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_MD5_96
947 "scapy-crypto": "AES-CBC",
948 "scapy-integ": "HMAC-MD5-96",
950 "key": b"JPjyOWBeVEQiMe7h",
952 "AES-CBC-192/SHA1-96": {
954 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_192
957 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
959 "scapy-crypto": "AES-CBC",
960 "scapy-integ": "HMAC-SHA1-96",
962 "key": b"JPjyOWBeVEQiMe7hJPjyOWBe",
964 "AES-CBC-256/SHA1-96": {
966 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CBC_256
969 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
971 "scapy-crypto": "AES-CBC",
972 "scapy-integ": "HMAC-SHA1-96",
974 "key": b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h",
976 "3DES-CBC/SHA1-96": {
978 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_3DES_CBC
981 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
983 "scapy-crypto": "3DES",
984 "scapy-integ": "HMAC-SHA1-96",
986 "key": b"JPjyOWBeVEQiMe7h00112233",
990 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_NONE
993 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
995 "scapy-crypto": "NULL",
996 "scapy-integ": "HMAC-SHA1-96",
998 "key": b"JPjyOWBeVEQiMe7h00112233",
1000 "AES-CTR-128/SHA1-96": {
1002 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_128
1005 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1007 "scapy-crypto": "AES-CTR",
1008 "scapy-integ": "HMAC-SHA1-96",
1010 "key": b"JPjyOWBeVEQiMe7h",
1012 "AES-CTR-192/SHA1-96": {
1014 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_192
1017 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1019 "scapy-crypto": "AES-CTR",
1020 "scapy-integ": "HMAC-SHA1-96",
1022 "key": b"JPjyOWBeVEQiMe7hJPjyOWBe",
1024 "AES-CTR-256/SHA1-96": {
1026 VppEnum.vl_api_ipsec_crypto_alg_t.IPSEC_API_CRYPTO_ALG_AES_CTR_256
1029 VppEnum.vl_api_ipsec_integ_alg_t.IPSEC_API_INTEG_ALG_SHA1_96
1031 "scapy-crypto": "AES-CTR",
1032 "scapy-integ": "HMAC-SHA1-96",
1034 "key": b"JPjyOWBeVEQiMe7hJPjyOWBeVEQiMe7h",
1039 class RunTestIpsecEspAll(ConfigIpsecESP, IpsecTra4, IpsecTra6, IpsecTun4, IpsecTun6):
1040 """Ipsec ESP all Algos"""
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()
1051 super(RunTestIpsecEspAll, self).setUp()
1052 test_args = str.split(self.__doc__, " ")
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]
1062 self.algo = params.algos[test_args[3]]
1063 self.async_mode = False
1064 if self.engine == "async":
1065 self.async_mode = True
1068 super(RunTestIpsecEspAll, self).tearDown()
1071 self.run_a_test(self.engine, self.flag, self.algo)
1073 def run_a_test(self, engine, flag, algo, payload_size=None):
1075 self.vapi.cli("set ipsec async mode on")
1077 self.vapi.cli("set crypto handler all %s" % engine)
1079 self.logger.info(self.vapi.cli("show crypto async status"))
1080 self.ipv4_params = IPsecIPv4Params()
1081 self.ipv6_params = IPsecIPv6Params()
1084 self.ipv4_params.addr_type: self.ipv4_params,
1085 self.ipv6_params.addr_type: self.ipv6_params,
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"]
1096 p.outer_flow_label = 243224
1097 p.async_mode = self.async_mode
1099 self.reporter.send_keep_alive(self)
1102 # configure the SPDs. SAs, etc
1104 self.config_network(self.params.values())
1108 # An exhautsive 4o6, 6o4 is not necessary
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)
1115 # Use an odd-byte payload size to check for correct padding.
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
1123 self.params[socket.AF_INET], count=NUM_PKTS, payload_size=psz
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
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)
1139 self.params[socket.AF_INET6], count=NUM_PKTS, payload_size=sz
1142 self.params[socket.AF_INET], count=NUM_PKTS, payload_size=sz
1146 # reconfigure the network and SA to run the
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()
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()
1163 # swap the handlers while SAs are up
1165 self.unconfig_network()
1166 self.config_network(self.params.values())
1169 self.vapi.cli("set crypto handler all %s" % e)
1170 self.verify_tra_basic4(count=NUM_PKTS)
1172 self.unconfig_network()
1176 # To generate test classes, do:
1177 # grep '# GEN' test_ipsec_esp.py | sed -e 's/# GEN //g' | bash
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
1195 # GEN for ESN in ESNon ESNoff; do for AR in ARon ARoff; do \
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;
1209 class Test_native_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1210 """native ESNon ARon AES-GCM-128/NONE IPSec test"""
1212 def test_ipsec(self):
1213 """native ESNon ARon AES-GCM-128/NONE IPSec test"""
1217 class Test_native_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1218 """native ESNon ARon AES-GCM-192/NONE IPSec test"""
1220 def test_ipsec(self):
1221 """native ESNon ARon AES-GCM-192/NONE IPSec test"""
1225 class Test_native_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1226 """native ESNon ARon AES-GCM-256/NONE IPSec test"""
1228 def test_ipsec(self):
1229 """native ESNon ARon AES-GCM-256/NONE IPSec test"""
1233 class Test_native_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1234 """native ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1236 def test_ipsec(self):
1237 """native ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1241 class Test_native_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1242 """native ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1244 def test_ipsec(self):
1245 """native ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1249 class Test_native_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1250 """native ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1252 def test_ipsec(self):
1253 """native ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1257 class Test_native_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1258 """native ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1260 def test_ipsec(self):
1261 """native ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1265 class Test_native_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1266 """native ESNon ARon NONE/SHA1-96 IPSec test"""
1268 def test_ipsec(self):
1269 """native ESNon ARon NONE/SHA1-96 IPSec test"""
1273 class Test_native_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1274 """native ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1276 def test_ipsec(self):
1277 """native ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1281 class Test_native_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1282 """native ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1284 def test_ipsec(self):
1285 """native ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1289 class Test_native_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1290 """native ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1292 def test_ipsec(self):
1293 """native ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1297 class Test_native_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1298 """native ESNon ARoff AES-GCM-128/NONE IPSec test"""
1300 def test_ipsec(self):
1301 """native ESNon ARoff AES-GCM-128/NONE IPSec test"""
1305 class Test_native_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1306 """native ESNon ARoff AES-GCM-192/NONE IPSec test"""
1308 def test_ipsec(self):
1309 """native ESNon ARoff AES-GCM-192/NONE IPSec test"""
1313 class Test_native_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1314 """native ESNon ARoff AES-GCM-256/NONE IPSec test"""
1316 def test_ipsec(self):
1317 """native ESNon ARoff AES-GCM-256/NONE IPSec test"""
1321 class Test_native_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1322 """native ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1324 def test_ipsec(self):
1325 """native ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1329 class Test_native_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1330 """native ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1332 def test_ipsec(self):
1333 """native ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1337 class Test_native_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1338 """native ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1340 def test_ipsec(self):
1341 """native ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1345 class Test_native_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1346 """native ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1348 def test_ipsec(self):
1349 """native ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1353 class Test_native_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1354 """native ESNon ARoff NONE/SHA1-96 IPSec test"""
1356 def test_ipsec(self):
1357 """native ESNon ARoff NONE/SHA1-96 IPSec test"""
1361 class Test_native_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1362 """native ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1364 def test_ipsec(self):
1365 """native ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1369 class Test_native_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1370 """native ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1372 def test_ipsec(self):
1373 """native ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1377 class Test_native_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1378 """native ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1380 def test_ipsec(self):
1381 """native ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1385 class Test_native_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1386 """native ESNoff ARon AES-GCM-128/NONE IPSec test"""
1388 def test_ipsec(self):
1389 """native ESNoff ARon AES-GCM-128/NONE IPSec test"""
1393 class Test_native_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1394 """native ESNoff ARon AES-GCM-192/NONE IPSec test"""
1396 def test_ipsec(self):
1397 """native ESNoff ARon AES-GCM-192/NONE IPSec test"""
1401 class Test_native_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1402 """native ESNoff ARon AES-GCM-256/NONE IPSec test"""
1404 def test_ipsec(self):
1405 """native ESNoff ARon AES-GCM-256/NONE IPSec test"""
1409 class Test_native_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1410 """native ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1412 def test_ipsec(self):
1413 """native ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1417 class Test_native_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1418 """native ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1420 def test_ipsec(self):
1421 """native ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1425 class Test_native_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1426 """native ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1428 def test_ipsec(self):
1429 """native ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1433 class Test_native_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1434 """native ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1436 def test_ipsec(self):
1437 """native ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1441 class Test_native_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1442 """native ESNoff ARon NONE/SHA1-96 IPSec test"""
1444 def test_ipsec(self):
1445 """native ESNoff ARon NONE/SHA1-96 IPSec test"""
1449 class Test_native_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1450 """native ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1452 def test_ipsec(self):
1453 """native ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1457 class Test_native_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1458 """native ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1460 def test_ipsec(self):
1461 """native ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1465 class Test_native_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1466 """native ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1468 def test_ipsec(self):
1469 """native ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1473 class Test_native_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1474 """native ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1476 def test_ipsec(self):
1477 """native ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1481 class Test_native_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1482 """native ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1484 def test_ipsec(self):
1485 """native ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1489 class Test_native_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1490 """native ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1492 def test_ipsec(self):
1493 """native ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1497 class Test_native_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1498 """native ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1500 def test_ipsec(self):
1501 """native ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1505 class Test_native_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1506 """native ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1508 def test_ipsec(self):
1509 """native ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1513 class Test_native_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1514 """native ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1516 def test_ipsec(self):
1517 """native ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1521 class Test_native_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1522 """native ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1524 def test_ipsec(self):
1525 """native ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1529 class Test_native_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1530 """native ESNoff ARoff NONE/SHA1-96 IPSec test"""
1532 def test_ipsec(self):
1533 """native ESNoff ARoff NONE/SHA1-96 IPSec test"""
1537 class Test_native_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1538 """native ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1540 def test_ipsec(self):
1541 """native ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1545 class Test_native_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1546 """native ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1548 def test_ipsec(self):
1549 """native ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1553 class Test_native_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1554 """native ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1556 def test_ipsec(self):
1557 """native ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1561 class Test_ipsecmb_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1562 """ipsecmb ESNon ARon AES-GCM-128/NONE IPSec test"""
1564 def test_ipsec(self):
1565 """ipsecmb ESNon ARon AES-GCM-128/NONE IPSec test"""
1569 class Test_ipsecmb_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1570 """ipsecmb ESNon ARon AES-GCM-192/NONE IPSec test"""
1572 def test_ipsec(self):
1573 """ipsecmb ESNon ARon AES-GCM-192/NONE IPSec test"""
1577 class Test_ipsecmb_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1578 """ipsecmb ESNon ARon AES-GCM-256/NONE IPSec test"""
1580 def test_ipsec(self):
1581 """ipsecmb ESNon ARon AES-GCM-256/NONE IPSec test"""
1585 class Test_ipsecmb_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1586 """ipsecmb ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1588 def test_ipsec(self):
1589 """ipsecmb ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1593 class Test_ipsecmb_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1594 """ipsecmb ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1596 def test_ipsec(self):
1597 """ipsecmb ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1601 class Test_ipsecmb_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1602 """ipsecmb ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1604 def test_ipsec(self):
1605 """ipsecmb ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1609 class Test_ipsecmb_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1610 """ipsecmb ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1612 def test_ipsec(self):
1613 """ipsecmb ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1617 class Test_ipsecmb_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1618 """ipsecmb ESNon ARon NONE/SHA1-96 IPSec test"""
1620 def test_ipsec(self):
1621 """ipsecmb ESNon ARon NONE/SHA1-96 IPSec test"""
1625 class Test_ipsecmb_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1626 """ipsecmb ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1628 def test_ipsec(self):
1629 """ipsecmb ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1633 class Test_ipsecmb_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1634 """ipsecmb ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1636 def test_ipsec(self):
1637 """ipsecmb ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1641 class Test_ipsecmb_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1642 """ipsecmb ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1644 def test_ipsec(self):
1645 """ipsecmb ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1649 class Test_ipsecmb_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1650 """ipsecmb ESNon ARoff AES-GCM-128/NONE IPSec test"""
1652 def test_ipsec(self):
1653 """ipsecmb ESNon ARoff AES-GCM-128/NONE IPSec test"""
1657 class Test_ipsecmb_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1658 """ipsecmb ESNon ARoff AES-GCM-192/NONE IPSec test"""
1660 def test_ipsec(self):
1661 """ipsecmb ESNon ARoff AES-GCM-192/NONE IPSec test"""
1665 class Test_ipsecmb_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1666 """ipsecmb ESNon ARoff AES-GCM-256/NONE IPSec test"""
1668 def test_ipsec(self):
1669 """ipsecmb ESNon ARoff AES-GCM-256/NONE IPSec test"""
1673 class Test_ipsecmb_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1674 """ipsecmb ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1676 def test_ipsec(self):
1677 """ipsecmb ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
1681 class Test_ipsecmb_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1682 """ipsecmb ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1684 def test_ipsec(self):
1685 """ipsecmb ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
1689 class Test_ipsecmb_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1690 """ipsecmb ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1692 def test_ipsec(self):
1693 """ipsecmb ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
1697 class Test_ipsecmb_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1698 """ipsecmb ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1700 def test_ipsec(self):
1701 """ipsecmb ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
1705 class Test_ipsecmb_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1706 """ipsecmb ESNon ARoff NONE/SHA1-96 IPSec test"""
1708 def test_ipsec(self):
1709 """ipsecmb ESNon ARoff NONE/SHA1-96 IPSec test"""
1713 class Test_ipsecmb_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1714 """ipsecmb ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1716 def test_ipsec(self):
1717 """ipsecmb ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
1721 class Test_ipsecmb_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1722 """ipsecmb ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1724 def test_ipsec(self):
1725 """ipsecmb ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
1729 class Test_ipsecmb_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1730 """ipsecmb ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1732 def test_ipsec(self):
1733 """ipsecmb ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
1737 class Test_ipsecmb_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1738 """ipsecmb ESNoff ARon AES-GCM-128/NONE IPSec test"""
1740 def test_ipsec(self):
1741 """ipsecmb ESNoff ARon AES-GCM-128/NONE IPSec test"""
1745 class Test_ipsecmb_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1746 """ipsecmb ESNoff ARon AES-GCM-192/NONE IPSec test"""
1748 def test_ipsec(self):
1749 """ipsecmb ESNoff ARon AES-GCM-192/NONE IPSec test"""
1753 class Test_ipsecmb_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1754 """ipsecmb ESNoff ARon AES-GCM-256/NONE IPSec test"""
1756 def test_ipsec(self):
1757 """ipsecmb ESNoff ARon AES-GCM-256/NONE IPSec test"""
1761 class Test_ipsecmb_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1762 """ipsecmb ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1764 def test_ipsec(self):
1765 """ipsecmb ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
1769 class Test_ipsecmb_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1770 """ipsecmb ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1772 def test_ipsec(self):
1773 """ipsecmb ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
1777 class Test_ipsecmb_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1778 """ipsecmb ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1780 def test_ipsec(self):
1781 """ipsecmb ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
1785 class Test_ipsecmb_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1786 """ipsecmb ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1788 def test_ipsec(self):
1789 """ipsecmb ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
1793 class Test_ipsecmb_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1794 """ipsecmb ESNoff ARon NONE/SHA1-96 IPSec test"""
1796 def test_ipsec(self):
1797 """ipsecmb ESNoff ARon NONE/SHA1-96 IPSec test"""
1801 class Test_ipsecmb_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1802 """ipsecmb ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1804 def test_ipsec(self):
1805 """ipsecmb ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
1809 class Test_ipsecmb_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1810 """ipsecmb ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1812 def test_ipsec(self):
1813 """ipsecmb ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
1817 class Test_ipsecmb_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1818 """ipsecmb ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1820 def test_ipsec(self):
1821 """ipsecmb ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
1825 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
1826 """ipsecmb ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1828 def test_ipsec(self):
1829 """ipsecmb ESNoff ARoff AES-GCM-128/NONE IPSec test"""
1833 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
1834 """ipsecmb ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1836 def test_ipsec(self):
1837 """ipsecmb ESNoff ARoff AES-GCM-192/NONE IPSec test"""
1841 class Test_ipsecmb_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
1842 """ipsecmb ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1844 def test_ipsec(self):
1845 """ipsecmb ESNoff ARoff AES-GCM-256/NONE IPSec test"""
1849 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1850 """ipsecmb ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1852 def test_ipsec(self):
1853 """ipsecmb ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
1857 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1858 """ipsecmb ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1860 def test_ipsec(self):
1861 """ipsecmb ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
1865 class Test_ipsecmb_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1866 """ipsecmb ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1868 def test_ipsec(self):
1869 """ipsecmb ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
1873 class Test_ipsecmb_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1874 """ipsecmb ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1876 def test_ipsec(self):
1877 """ipsecmb ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
1881 class Test_ipsecmb_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
1882 """ipsecmb ESNoff ARoff NONE/SHA1-96 IPSec test"""
1884 def test_ipsec(self):
1885 """ipsecmb ESNoff ARoff NONE/SHA1-96 IPSec test"""
1889 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1890 """ipsecmb ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1892 def test_ipsec(self):
1893 """ipsecmb ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
1897 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1898 """ipsecmb ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1900 def test_ipsec(self):
1901 """ipsecmb ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
1905 class Test_ipsecmb_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1906 """ipsecmb ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1908 def test_ipsec(self):
1909 """ipsecmb ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
1913 class Test_openssl_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
1914 """openssl ESNon ARon AES-GCM-128/NONE IPSec test"""
1916 def test_ipsec(self):
1917 """openssl ESNon ARon AES-GCM-128/NONE IPSec test"""
1921 class Test_openssl_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
1922 """openssl ESNon ARon AES-GCM-192/NONE IPSec test"""
1924 def test_ipsec(self):
1925 """openssl ESNon ARon AES-GCM-192/NONE IPSec test"""
1929 class Test_openssl_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
1930 """openssl ESNon ARon AES-GCM-256/NONE IPSec test"""
1932 def test_ipsec(self):
1933 """openssl ESNon ARon AES-GCM-256/NONE IPSec test"""
1937 class Test_openssl_ESNon_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
1938 """openssl ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1940 def test_ipsec(self):
1941 """openssl ESNon ARon AES-CBC-128/MD5-96 IPSec test"""
1945 class Test_openssl_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
1946 """openssl ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1948 def test_ipsec(self):
1949 """openssl ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
1953 class Test_openssl_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
1954 """openssl ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1956 def test_ipsec(self):
1957 """openssl ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
1961 class Test_openssl_ESNon_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
1962 """openssl ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1964 def test_ipsec(self):
1965 """openssl ESNon ARon 3DES-CBC/SHA1-96 IPSec test"""
1969 class Test_openssl_ESNon_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
1970 """openssl ESNon ARon NONE/SHA1-96 IPSec test"""
1972 def test_ipsec(self):
1973 """openssl ESNon ARon NONE/SHA1-96 IPSec test"""
1977 class Test_openssl_ESNon_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
1978 """openssl ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1980 def test_ipsec(self):
1981 """openssl ESNon ARon AES-CTR-128/SHA1-96 IPSec test"""
1985 class Test_openssl_ESNon_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
1986 """openssl ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1988 def test_ipsec(self):
1989 """openssl ESNon ARon AES-CTR-192/SHA1-96 IPSec test"""
1993 class Test_openssl_ESNon_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
1994 """openssl ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
1996 def test_ipsec(self):
1997 """openssl ESNon ARon AES-CTR-256/SHA1-96 IPSec test"""
2001 class Test_openssl_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2002 """openssl ESNon ARoff AES-GCM-128/NONE IPSec test"""
2004 def test_ipsec(self):
2005 """openssl ESNon ARoff AES-GCM-128/NONE IPSec test"""
2009 class Test_openssl_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2010 """openssl ESNon ARoff AES-GCM-192/NONE IPSec test"""
2012 def test_ipsec(self):
2013 """openssl ESNon ARoff AES-GCM-192/NONE IPSec test"""
2017 class Test_openssl_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2018 """openssl ESNon ARoff AES-GCM-256/NONE IPSec test"""
2020 def test_ipsec(self):
2021 """openssl ESNon ARoff AES-GCM-256/NONE IPSec test"""
2025 class Test_openssl_ESNon_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2026 """openssl ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
2028 def test_ipsec(self):
2029 """openssl ESNon ARoff AES-CBC-128/MD5-96 IPSec test"""
2033 class Test_openssl_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2034 """openssl ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2036 def test_ipsec(self):
2037 """openssl ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2041 class Test_openssl_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2042 """openssl ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2044 def test_ipsec(self):
2045 """openssl ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2049 class Test_openssl_ESNon_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2050 """openssl ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
2052 def test_ipsec(self):
2053 """openssl ESNon ARoff 3DES-CBC/SHA1-96 IPSec test"""
2057 class Test_openssl_ESNon_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
2058 """openssl ESNon ARoff NONE/SHA1-96 IPSec test"""
2060 def test_ipsec(self):
2061 """openssl ESNon ARoff NONE/SHA1-96 IPSec test"""
2065 class Test_openssl_ESNon_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2066 """openssl ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
2068 def test_ipsec(self):
2069 """openssl ESNon ARoff AES-CTR-128/SHA1-96 IPSec test"""
2073 class Test_openssl_ESNon_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2074 """openssl ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
2076 def test_ipsec(self):
2077 """openssl ESNon ARoff AES-CTR-192/SHA1-96 IPSec test"""
2081 class Test_openssl_ESNon_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2082 """openssl ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
2084 def test_ipsec(self):
2085 """openssl ESNon ARoff AES-CTR-256/SHA1-96 IPSec test"""
2089 class Test_openssl_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2090 """openssl ESNoff ARon AES-GCM-128/NONE IPSec test"""
2092 def test_ipsec(self):
2093 """openssl ESNoff ARon AES-GCM-128/NONE IPSec test"""
2097 class Test_openssl_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2098 """openssl ESNoff ARon AES-GCM-192/NONE IPSec test"""
2100 def test_ipsec(self):
2101 """openssl ESNoff ARon AES-GCM-192/NONE IPSec test"""
2105 class Test_openssl_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2106 """openssl ESNoff ARon AES-GCM-256/NONE IPSec test"""
2108 def test_ipsec(self):
2109 """openssl ESNoff ARon AES-GCM-256/NONE IPSec test"""
2113 class Test_openssl_ESNoff_ARon_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2114 """openssl ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
2116 def test_ipsec(self):
2117 """openssl ESNoff ARon AES-CBC-128/MD5-96 IPSec test"""
2121 class Test_openssl_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2122 """openssl ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2124 def test_ipsec(self):
2125 """openssl ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2129 class Test_openssl_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2130 """openssl ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2132 def test_ipsec(self):
2133 """openssl ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2137 class Test_openssl_ESNoff_ARon_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2138 """openssl ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
2140 def test_ipsec(self):
2141 """openssl ESNoff ARon 3DES-CBC/SHA1-96 IPSec test"""
2145 class Test_openssl_ESNoff_ARon_NONE_SHA1_96(RunTestIpsecEspAll):
2146 """openssl ESNoff ARon NONE/SHA1-96 IPSec test"""
2148 def test_ipsec(self):
2149 """openssl ESNoff ARon NONE/SHA1-96 IPSec test"""
2153 class Test_openssl_ESNoff_ARon_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2154 """openssl ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
2156 def test_ipsec(self):
2157 """openssl ESNoff ARon AES-CTR-128/SHA1-96 IPSec test"""
2161 class Test_openssl_ESNoff_ARon_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2162 """openssl ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
2164 def test_ipsec(self):
2165 """openssl ESNoff ARon AES-CTR-192/SHA1-96 IPSec test"""
2169 class Test_openssl_ESNoff_ARon_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2170 """openssl ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
2172 def test_ipsec(self):
2173 """openssl ESNoff ARon AES-CTR-256/SHA1-96 IPSec test"""
2177 class Test_openssl_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2178 """openssl ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2180 def test_ipsec(self):
2181 """openssl ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2185 class Test_openssl_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2186 """openssl ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2188 def test_ipsec(self):
2189 """openssl ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2193 class Test_openssl_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2194 """openssl ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2196 def test_ipsec(self):
2197 """openssl ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2201 class Test_openssl_ESNoff_ARoff_AES_CBC_128_MD5_96(RunTestIpsecEspAll):
2202 """openssl ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
2204 def test_ipsec(self):
2205 """openssl ESNoff ARoff AES-CBC-128/MD5-96 IPSec test"""
2209 class Test_openssl_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2210 """openssl ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2212 def test_ipsec(self):
2213 """openssl ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2217 class Test_openssl_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2218 """openssl ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2220 def test_ipsec(self):
2221 """openssl ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2225 class Test_openssl_ESNoff_ARoff_3DES_CBC_SHA1_96(RunTestIpsecEspAll):
2226 """openssl ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
2228 def test_ipsec(self):
2229 """openssl ESNoff ARoff 3DES-CBC/SHA1-96 IPSec test"""
2233 class Test_openssl_ESNoff_ARoff_NONE_SHA1_96(RunTestIpsecEspAll):
2234 """openssl ESNoff ARoff NONE/SHA1-96 IPSec test"""
2236 def test_ipsec(self):
2237 """openssl ESNoff ARoff NONE/SHA1-96 IPSec test"""
2241 class Test_openssl_ESNoff_ARoff_AES_CTR_128_SHA1_96(RunTestIpsecEspAll):
2242 """openssl ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
2244 def test_ipsec(self):
2245 """openssl ESNoff ARoff AES-CTR-128/SHA1-96 IPSec test"""
2249 class Test_openssl_ESNoff_ARoff_AES_CTR_192_SHA1_96(RunTestIpsecEspAll):
2250 """openssl ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
2252 def test_ipsec(self):
2253 """openssl ESNoff ARoff AES-CTR-192/SHA1-96 IPSec test"""
2257 class Test_openssl_ESNoff_ARoff_AES_CTR_256_SHA1_96(RunTestIpsecEspAll):
2258 """openssl ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
2260 def test_ipsec(self):
2261 """openssl ESNoff ARoff AES-CTR-256/SHA1-96 IPSec test"""
2265 class Test_async_ESNon_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2266 """async ESNon ARon AES-GCM-128/NONE IPSec test"""
2268 def test_ipsec(self):
2269 """async ESNon ARon AES-GCM-128/NONE IPSec test"""
2273 class Test_async_ESNon_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2274 """async ESNon ARon AES-GCM-192/NONE IPSec test"""
2276 def test_ipsec(self):
2277 """async ESNon ARon AES-GCM-192/NONE IPSec test"""
2281 class Test_async_ESNon_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2282 """async ESNon ARon AES-GCM-256/NONE IPSec test"""
2284 def test_ipsec(self):
2285 """async ESNon ARon AES-GCM-256/NONE IPSec test"""
2289 class Test_async_ESNon_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2290 """async ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
2292 def test_ipsec(self):
2293 """async ESNon ARon AES-CBC-192/SHA1-96 IPSec test"""
2297 class Test_async_ESNon_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2298 """async ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
2300 def test_ipsec(self):
2301 """async ESNon ARon AES-CBC-256/SHA1-96 IPSec test"""
2305 class Test_async_ESNon_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2306 """async ESNon ARoff AES-GCM-128/NONE IPSec test"""
2308 def test_ipsec(self):
2309 """async ESNon ARoff AES-GCM-128/NONE IPSec test"""
2313 class Test_async_ESNon_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2314 """async ESNon ARoff AES-GCM-192/NONE IPSec test"""
2316 def test_ipsec(self):
2317 """async ESNon ARoff AES-GCM-192/NONE IPSec test"""
2321 class Test_async_ESNon_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2322 """async ESNon ARoff AES-GCM-256/NONE IPSec test"""
2324 def test_ipsec(self):
2325 """async ESNon ARoff AES-GCM-256/NONE IPSec test"""
2329 class Test_async_ESNon_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2330 """async ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2332 def test_ipsec(self):
2333 """async ESNon ARoff AES-CBC-192/SHA1-96 IPSec test"""
2337 class Test_async_ESNon_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2338 """async ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2340 def test_ipsec(self):
2341 """async ESNon ARoff AES-CBC-256/SHA1-96 IPSec test"""
2345 class Test_async_ESNoff_ARon_AES_GCM_128_NONE(RunTestIpsecEspAll):
2346 """async ESNoff ARon AES-GCM-128/NONE IPSec test"""
2348 def test_ipsec(self):
2349 """async ESNoff ARon AES-GCM-128/NONE IPSec test"""
2353 class Test_async_ESNoff_ARon_AES_GCM_192_NONE(RunTestIpsecEspAll):
2354 """async ESNoff ARon AES-GCM-192/NONE IPSec test"""
2356 def test_ipsec(self):
2357 """async ESNoff ARon AES-GCM-192/NONE IPSec test"""
2361 class Test_async_ESNoff_ARon_AES_GCM_256_NONE(RunTestIpsecEspAll):
2362 """async ESNoff ARon AES-GCM-256/NONE IPSec test"""
2364 def test_ipsec(self):
2365 """async ESNoff ARon AES-GCM-256/NONE IPSec test"""
2369 class Test_async_ESNoff_ARon_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2370 """async ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2372 def test_ipsec(self):
2373 """async ESNoff ARon AES-CBC-192/SHA1-96 IPSec test"""
2377 class Test_async_ESNoff_ARon_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2378 """async ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2380 def test_ipsec(self):
2381 """async ESNoff ARon AES-CBC-256/SHA1-96 IPSec test"""
2385 class Test_async_ESNoff_ARoff_AES_GCM_128_NONE(RunTestIpsecEspAll):
2386 """async ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2388 def test_ipsec(self):
2389 """async ESNoff ARoff AES-GCM-128/NONE IPSec test"""
2393 class Test_async_ESNoff_ARoff_AES_GCM_192_NONE(RunTestIpsecEspAll):
2394 """async ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2396 def test_ipsec(self):
2397 """async ESNoff ARoff AES-GCM-192/NONE IPSec test"""
2401 class Test_async_ESNoff_ARoff_AES_GCM_256_NONE(RunTestIpsecEspAll):
2402 """async ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2404 def test_ipsec(self):
2405 """async ESNoff ARoff AES-GCM-256/NONE IPSec test"""
2409 class Test_async_ESNoff_ARoff_AES_CBC_192_SHA1_96(RunTestIpsecEspAll):
2410 """async ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2412 def test_ipsec(self):
2413 """async ESNoff ARoff AES-CBC-192/SHA1-96 IPSec test"""
2417 class Test_async_ESNoff_ARoff_AES_CBC_256_SHA1_96(RunTestIpsecEspAll):
2418 """async ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""
2420 def test_ipsec(self):
2421 """async ESNoff ARoff AES-CBC-256/SHA1-96 IPSec test"""