xref: /freebsd/tools/regression/ipsec/ipsec6.t (revision ab393e9548f8cc0ee28499c411963b798ebb38a5)
1#!/bin/sh
2#
3# IPv6 IPsec test based on ipsec.t, in this same directory, which tests
4# IPsec by setting up a set of tunnels and then sending ICMPv6 packets,
5# aka those generated with ping6(8), across the tunnel.
6#
7# This test should ONLY be used as a smoke test to verify that nothing
8# drastic has been broken, it is insufficient for true protocol conformance
9# testing.
10#
11# Expected Output: No failures.
12
13netif="lo0"
14spi="10000"
15
16echo "1..414"
17
18#sysctl net.inet.ipsec.crypto_support=1 >/dev/null 2>&1
19
20ifconfig $netif inet6 alias 1::1
21ifconfig $netif inet6 alias 2::1
22
23i=1
24
25for ecipher in \
26    des-cbc:12345678 \
27    3des-cbc:012345678901234567890123 \
28    blowfish-cbc:0123456789012345 \
29    blowfish-cbc:01234567890123456789 \
30    blowfish-cbc:012345678901234567890123 \
31    blowfish-cbc:0123456789012345678901234567 \
32    blowfish-cbc:01234567890123456789012345678901 \
33    blowfish-cbc:012345678901234567890123456789012345 \
34    blowfish-cbc:0123456789012345678901234567890123456789 \
35    blowfish-cbc:01234567890123456789012345678901234567890123 \
36    blowfish-cbc:012345678901234567890123456789012345678901234567 \
37    blowfish-cbc:0123456789012345678901234567890123456789012345678901 \
38    blowfish-cbc:01234567890123456789012345678901234567890123456789012345 \
39    cast128-cbc:0123456789012345 \
40    aes-ctr:01234567890123456789\
41    aes-ctr:0123456789012345678901234567\
42    aes-ctr:012345678901234567890123456789012345\
43    camellia-cbc:0123456789012345\
44    camellia-cbc:012345678901234567890123\
45    camellia-cbc:01234567890123456789012345678901\
46    rijndael-cbc:0123456789012345 \
47    rijndael-cbc:012345678901234567890123 \
48    rijndael-cbc:01234567890123456789012345678901; do
49
50	ealgo=${ecipher%%:*}
51	ekey=${ecipher##*:}
52
53	for acipher in \
54	    hmac-md5:0123456789012345 \
55	    hmac-sha1:01234567890123456789 \
56	    hmac-ripemd160:01234567890123456789 \
57	    hmac-sha2-256:01234567890123456789012345678901 \
58	    hmac-sha2-384:012345678901234567890123456789012345678901234567 \
59	    hmac-sha2-512:0123456789012345678901234567890123456789012345678901234567890123; do
60
61		aalgo=${acipher%%:*}
62		akey=${acipher##*:}
63
64		setkey -F
65		setkey -FP
66
67		(echo "add -6 1::1 2::1 esp $spi            -m transport -E $ealgo \"${ekey}\" -A $aalgo \"${akey}\" ;"
68		 echo "add -6 2::1 1::1 esp `expr $spi + 1` -m transport -E $ealgo \"${ekey}\" -A $aalgo \"${akey}\" ;"
69
70		 echo "spdadd -6 1::1 2::1 any -P out ipsec esp/transport//require;"
71		 echo "spdadd -6 2::1 1::1 any -P in  ipsec esp/transport//require;"
72		 echo "spdadd -6 1::1 2::1 any -P in  ipsec esp/transport//require;"
73		 echo "spdadd -6 2::1 1::1 any -P out ipsec esp/transport//require;"
74		) | setkey -c >/dev/null 2>&1
75		if [ $? -eq 0 ]; then
76			echo "ok $i - setkey ${ealgo} ${ekey} ${aalgo} ${akey}"
77		else
78			echo "not ok $i - setkey ${ealgo} ${ekey} ${aalgo} ${akey}"
79		fi
80		i=$((i+1))
81
82		ping6 -c 1 -i 1 -S 1::1 2::1 >/dev/null
83		if [ $? -eq 0 ]; then
84			echo "ok $i - test 1 ${ealgo} ${ekey} ${aalgo} ${akey}"
85		else
86			echo "not ok $i - test 1 ${ealgo} ${ekey} ${aalgo} ${akey}"
87		fi
88		i=$((i+1))
89		ping6 -c 1 -i 1 -S 2::1 1::1 >/dev/null
90		if [ $? -eq 0 ]; then
91			echo "ok $i - test 2 ${ealgo} ${ekey} ${aalgo} ${akey}"
92		else
93			echo "not ok $i - test 2 ${ealgo} ${ekey} ${aalgo} ${akey}"
94		fi
95		i=$((i+1))
96	done
97done
98
99setkey -F
100setkey -FP
101
102ifconfig $netif inet6 1::1 delete
103ifconfig $netif inet6 2::1 delete
104