testcompat: added interop tests with polarssl
[gnutls:gnutls.git] / tests / suite / testcompat-polarssl
1 #!/bin/sh
2
3 # Copyright (C) 2014 Red Hat, Inc.
4 #
5 # Author: Nikos Mavrogiannopoulos
6 #
7 # This file is part of GnuTLS.
8 #
9 # GnuTLS is free software; you can redistribute it and/or modify it
10 # under the terms of the GNU General Public License as published by the
11 # Free Software Foundation; either version 3 of the License, or (at
12 # your option) any later version.
13 #
14 # GnuTLS is distributed in the hope that it will be useful, but
15 # WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # General Public License for more details.
18 #
19 # You should have received a copy of the GNU General Public License
20 # along with GnuTLS; if not, write to the Free Software Foundation,
21 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
22
23 srcdir="${srcdir:-.}"
24 CLI="${CLI:-../../src/gnutls-cli$EXEEXT}"
25 LOGFILE=polarssl.log
26 unset RETCODE
27 if ! test -z "${VALGRIND}";then
28 VALGRIND="${LIBTOOL:-libtool} --mode=execute ${VALGRIND}"
29 fi
30
31 if test "${WINDIR}" != "";then
32   exit 77
33 fi 
34
35 . $srcdir/../scripts/common.sh
36
37 PORT="${PORT:-$RPORT}"
38 POLARSSL_CLI="/usr/libexec/polarssl/ssl_client2"
39
40 TXT=`$CLI --priority NORMAL --list|grep SECP224`
41 if test -z $TEXT;then
42         ALL_CURVES=0
43 else
44         ALL_CURVES=1
45 fi
46
47 VERSION=`grep released /usr/share/doc/polarssl/ChangeLog|head -1|cut -d ' ' -f 3`
48
49 echo "Compatibility checks using polarssl "$VERSION
50 echo $VERSION|grep -e 1\.3\. >/dev/null 2>&1
51 SV=$?
52 if test $SV != 0;then
53   echo "PolarSSL 1.3.x is required for the tests to run"
54   exit 77
55 fi
56
57 . ./testcompat-common
58
59 echo ""
60 echo "##################################################"
61 echo "# Server mode tests (gnutls server-polarssl cli) #"
62 echo "##################################################"
63 SERV="../../src/gnutls-serv$EXEEXT -q"
64
65 rm -f $LOGFILE
66
67 echo "Check SSL 3.0 with RSA ciphersuite"
68 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-SSL3.0:+RSA" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT --dhparams params.dh  & PID=$!
69 wait_server $PID
70
71 $POLARSSL_CLI server_port=$PORT server_name=localhost max_version=ssl3 crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
72   fail $PID "Failed"
73
74 kill $PID
75 wait
76
77 echo "Check SSL 3.0 with DHE-RSA ciphersuite"
78 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-SSL3.0:+DHE-RSA" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT --dhparams params.dh  & PID=$!
79 wait_server $PID
80
81 $POLARSSL_CLI server_name=localhost server_port=$PORT max_version=ssl3 crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
82   fail $PID "Failed"
83
84 kill $PID
85 wait
86
87 # No DSS for polarssl
88 #echo "Check SSL 3.0 with DHE-DSS ciphersuite"
89 #launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-SSL3.0:+DHE-DSS" --x509certfile $SERV_DSA_CERT --x509keyfile $SERV_DSA_KEY --dhparams params.dh  & PID=$!
90 #wait_server $PID
91
92 #$POLARSSL_CLI server_name=localhost server_port=$PORT max_version=ssl3 crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
93 #  fail $PID "Failed"
94 #
95 #kill $PID
96 #wait
97
98 #TLS 1.0
99
100 echo "Check TLS 1.0 with DHE-RSA ciphersuite"
101 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+DHE-RSA" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT --dhparams params.dh  & PID=$!
102 wait_server $PID
103
104 $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
105   fail $PID "Failed"
106
107 kill $PID
108 wait
109
110 #echo "Check TLS 1.0 with DHE-DSS ciphersuite"
111 #launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+DHE-DSS" --x509certfile $SERV_DSA_CERT --x509keyfile $SERV_DSA_KEY --dhparams params.dh  & PID=$!
112 #wait_server $PID
113
114 #$POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
115 #  fail $PID "Failed"
116
117 #kill $PID
118 #wait
119
120 echo "Check TLS 1.0 with ECDHE-RSA ciphersuite"
121 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-RSA:+CURVE-ALL" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
122 wait_server $PID
123
124 #-cipher ECDHE-RSA-AES128-SHA 
125 $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
126   fail $PID "Failed"
127
128 kill $PID
129 wait
130
131 if test $ALL_CURVES = 1;then
132         echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP224R1)"
133         launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC224_CERT --x509keyfile $ECC224_KEY --x509cafile $CA_ECC_CERT & PID=$!
134         wait_server $PID
135
136         #-cipher ECDHE-ECDSA-AES128-SHA 
137         $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$ECC224_CERT key_file=$ECC224_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
138           fail $PID "Failed"
139
140           kill $PID
141           wait
142 fi
143
144 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP256R1)"
145 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC256_CERT --x509keyfile $ECC256_KEY --x509cafile $CA_ECC_CERT & PID=$!
146 wait_server $PID
147
148 #-cipher ECDHE-ECDSA-AES128-SHA 
149 $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$ECC256_CERT key_file=$ECC256_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
150   fail $PID "Failed"
151
152 kill $PID
153 wait
154
155 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP384R1)"
156 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC384_CERT --x509keyfile $ECC384_KEY --x509cafile $CA_ECC_CERT & PID=$!
157 wait_server $PID
158
159 #-cipher ECDHE-ECDSA-AES128-SHA 
160 $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$ECC384_CERT key_file=$ECC384_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
161   fail $PID "Failed"
162
163 kill $PID
164 wait
165
166 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP521R1)"
167 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC521_CERT --x509keyfile $ECC521_KEY --x509cafile $CA_ECC_CERT & PID=$!
168 wait_server $PID
169
170 #-cipher ECDHE-ECDSA-AES128-SHA 
171 $POLARSSL_CLI  server_name=localhost min_version=tls1 max_version=tls1 server_port=$PORT crt_file=$ECC521_CERT key_file=$ECC521_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
172   fail $PID "Failed"
173
174 kill $PID
175 wait
176
177 echo "Check TLS 1.2 with DHE-RSA ciphersuite"
178 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+DHE-RSA" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT --dhparams params.dh  & PID=$!
179 wait_server $PID
180
181 $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
182   fail $PID "Failed"
183
184 kill $PID
185 wait
186
187 #echo "Check TLS 1.2 with DHE-DSS ciphersuite"
188 #launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+DHE-DSS" --x509certfile $SERV_DSA_CERT --x509keyfile $SERV_DSA_KEY --dhparams params.dh  & PID=$!
189 #wait_server $PID
190 #
191 #$POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
192 #  fail $PID "Failed"
193 #
194 #kill $PID
195 #wait
196
197 echo "Check TLS 1.2 with ECDHE-RSA ciphersuite"
198 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-RSA:+CURVE-ALL" --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
199 wait_server $PID
200
201 #-cipher ECDHE-RSA-AES128-SHA 
202 $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$CLI_CERT key_file=$CLI_KEY ca_file=$CA_CERT </dev/null >>$LOGFILE 2>&1 || \
203   fail $PID "Failed"
204
205 kill $PID
206 wait
207
208 if test $ALL_CURVES = 1;then
209         echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP224R1)"
210         launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC224_CERT --x509keyfile $ECC224_KEY --x509cafile $CA_ECC_CERT & PID=$!
211         wait_server $PID
212
213         #-cipher ECDHE-ECDSA-AES128-SHA 
214         $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$ECC224_CERT key_file=$ECC224_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
215           fail $PID "Failed"
216
217           kill $PID
218           wait
219 fi
220
221 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP256R1)"
222 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC256_CERT --x509keyfile $ECC256_KEY --x509cafile $CA_ECC_CERT & PID=$!
223 wait_server $PID
224
225 #-cipher ECDHE-ECDSA-AES128-SHA 
226 $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$ECC256_CERT key_file=$ECC256_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
227   fail $PID "Failed"
228
229 kill $PID
230 wait
231
232 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP384R1)"
233 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC384_CERT --x509keyfile $ECC384_KEY --x509cafile $CA_ECC_CERT & PID=$!
234 wait_server $PID
235
236 #-cipher ECDHE-ECDSA-AES128-SHA 
237 $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$ECC384_CERT key_file=$ECC384_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
238   fail $PID "Failed"
239
240 kill $PID
241 wait
242
243 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP521R1)"
244 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-ECDSA:+CURVE-ALL" --x509certfile $ECC521_CERT --x509keyfile $ECC521_KEY --x509cafile $CA_ECC_CERT & PID=$!
245 wait_server $PID
246
247 #-cipher ECDHE-ECDSA-AES128-SHA 
248 $POLARSSL_CLI  server_name=localhost min_version=tls1_2 max_version=tls1_2 server_port=$PORT crt_file=$ECC521_CERT key_file=$ECC521_KEY ca_file=$CA_ECC_CERT </dev/null >>$LOGFILE 2>&1 || \
249   fail $PID "Failed"
250
251 kill $PID
252 wait
253
254 rm -f $LOGFILE
255
256 exit 0