]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/regression/ipsec/ipsec6.t
libarchive: merge security fix from vendor branch
[FreeBSD/FreeBSD.git] / tools / regression / ipsec / ipsec6.t
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
13 netif="lo0"
14 spi="10000"
15
16 echo "1..414"
17
18 #sysctl net.inet.ipsec.crypto_support=1 >/dev/null 2>&1
19
20 ifconfig $netif inet6 alias 1::1
21 ifconfig $netif inet6 alias 2::1
22
23 i=1
24
25 for 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
97 done
98
99 setkey -F
100 setkey -FP
101
102 ifconfig $netif inet6 1::1 delete
103 ifconfig $netif inet6 2::1 delete