testcompat-polarssl: try to run the test only if polarssl binaries are available
[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 if ! test -x $POLARSSL;then
58   echo "PolarSSL is required for this test to run"
59   exit 77
60 fi
61
62 . ./testcompat-common
63
64 echo ""
65 echo "##################################################"
66 echo "# Server mode tests (gnutls server-polarssl cli) #"
67 echo "##################################################"
68 SERV="../../src/gnutls-serv$EXEEXT -q"
69
70 rm -f $LOGFILE
71
72 echo "Check SSL 3.0 with RSA ciphersuite"
73 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=$!
74 wait_server $PID
75
76 $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 || \
77   fail $PID "Failed"
78
79 kill $PID
80 wait
81
82 echo "Check SSL 3.0 with DHE-RSA ciphersuite"
83 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=$!
84 wait_server $PID
85
86 $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 || \
87   fail $PID "Failed"
88
89 kill $PID
90 wait
91
92 # No DSS for polarssl
93 #echo "Check SSL 3.0 with DHE-DSS ciphersuite"
94 #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=$!
95 #wait_server $PID
96
97 #$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 || \
98 #  fail $PID "Failed"
99 #
100 #kill $PID
101 #wait
102
103 #TLS 1.0
104
105 echo "Check TLS 1.0 with DHE-RSA ciphersuite"
106 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=$!
107 wait_server $PID
108
109 $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 || \
110   fail $PID "Failed"
111
112 kill $PID
113 wait
114
115 #echo "Check TLS 1.0 with DHE-DSS ciphersuite"
116 #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=$!
117 #wait_server $PID
118
119 #$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 || \
120 #  fail $PID "Failed"
121
122 #kill $PID
123 #wait
124
125 echo "Check TLS 1.0 with ECDHE-RSA ciphersuite"
126 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=$!
127 wait_server $PID
128
129 #-cipher ECDHE-RSA-AES128-SHA 
130 $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 || \
131   fail $PID "Failed"
132
133 kill $PID
134 wait
135
136 echo "Check TLS 1.0 with PSK ciphersuite"
137 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
138 wait_server $PID
139
140 #-cipher PSK-AES128-SHA 
141 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
142   fail $PID "Failed"
143
144 kill $PID
145 wait
146
147 echo "Check TLS 1.0 with DHE-PSK ciphersuite"
148 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+DHE-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
149 wait_server $PID
150
151 #-cipher PSK-AES128-SHA 
152 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
153   fail $PID "Failed"
154
155 kill $PID
156 wait
157
158 echo "Check TLS 1.0 with ECDHE-PSK ciphersuite"
159 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+ECDHE-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
160 wait_server $PID
161
162 #-cipher PSK-AES128-SHA 
163 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
164   fail $PID "Failed"
165
166 kill $PID
167 wait
168
169 echo "Check TLS 1.0 with RSA-PSK ciphersuite"
170 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.0:+RSA-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
171 wait_server $PID
172
173 #-cipher RSA-PSK-AES128-SHA 
174 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
175   fail $PID "Failed"
176
177 kill $PID
178 wait
179
180 if test $ALL_CURVES = 1;then
181         echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP224R1)"
182         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=$!
183         wait_server $PID
184
185         #-cipher ECDHE-ECDSA-AES128-SHA 
186         $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 || \
187           fail $PID "Failed"
188
189           kill $PID
190           wait
191 fi
192
193 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP256R1)"
194 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=$!
195 wait_server $PID
196
197 #-cipher ECDHE-ECDSA-AES128-SHA 
198 $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 || \
199   fail $PID "Failed"
200
201 kill $PID
202 wait
203
204 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP384R1)"
205 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=$!
206 wait_server $PID
207
208 #-cipher ECDHE-ECDSA-AES128-SHA 
209 $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 || \
210   fail $PID "Failed"
211
212 kill $PID
213 wait
214
215 echo "Check TLS 1.0 with ECDHE-ECDSA ciphersuite (SECP521R1)"
216 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=$!
217 wait_server $PID
218
219 #-cipher ECDHE-ECDSA-AES128-SHA 
220 $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 || \
221   fail $PID "Failed"
222
223 kill $PID
224 wait
225
226 echo "Check TLS 1.2 with DHE-RSA ciphersuite"
227 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=$!
228 wait_server $PID
229
230 $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 || \
231   fail $PID "Failed"
232
233 kill $PID
234 wait
235
236 #echo "Check TLS 1.2 with DHE-DSS ciphersuite"
237 #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=$!
238 #wait_server $PID
239 #
240 #$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 || \
241 #  fail $PID "Failed"
242 #
243 #kill $PID
244 #wait
245
246 echo "Check TLS 1.2 with ECDHE-RSA ciphersuite"
247 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=$!
248 wait_server $PID
249
250 #-cipher ECDHE-RSA-AES128-SHA 
251 $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 || \
252   fail $PID "Failed"
253
254 kill $PID
255 wait
256
257 if test $ALL_CURVES = 1;then
258         echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP224R1)"
259         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=$!
260         wait_server $PID
261
262         #-cipher ECDHE-ECDSA-AES128-SHA 
263         $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 || \
264           fail $PID "Failed"
265
266           kill $PID
267           wait
268 fi
269
270 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP256R1)"
271 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=$!
272 wait_server $PID
273
274 #-cipher ECDHE-ECDSA-AES128-SHA 
275 $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 || \
276   fail $PID "Failed"
277
278 kill $PID
279 wait
280
281 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP384R1)"
282 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=$!
283 wait_server $PID
284
285 #-cipher ECDHE-ECDSA-AES128-SHA 
286 $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 || \
287   fail $PID "Failed"
288
289 kill $PID
290 wait
291
292 echo "Check TLS 1.2 with ECDHE-ECDSA ciphersuite (SECP521R1)"
293 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=$!
294 wait_server $PID
295
296 #-cipher ECDHE-ECDSA-AES128-SHA 
297 $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 || \
298   fail $PID "Failed"
299
300 kill $PID
301 wait
302
303 echo "Check TLS 1.2 with PSK ciphersuite"
304 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
305 wait_server $PID
306
307 #-cipher PSK-AES128-SHA 
308 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
309   fail $PID "Failed"
310
311 kill $PID
312 wait
313
314 echo "Check TLS 1.2 with DHE-PSK ciphersuite"
315 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+DHE-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
316 wait_server $PID
317
318 #-cipher PSK-AES128-SHA 
319 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
320   fail $PID "Failed"
321
322 kill $PID
323 wait
324
325 echo "Check TLS 1.2 with ECDHE-PSK ciphersuite"
326 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+ECDHE-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
327 wait_server $PID
328
329 #-cipher PSK-AES128-SHA 
330 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
331   fail $PID "Failed"
332
333 kill $PID
334 wait
335
336 echo "Check TLS 1.2 with RSA-PSK ciphersuite"
337 launch_server $$  --priority "NONE:+CIPHER-ALL:+SIGN-ALL:+COMP-NULL:+MAC-ALL:+VERS-TLS1.2:+RSA-PSK:+CURVE-ALL" --pskpasswd $SERV_PSK --x509certfile $SERV_CERT --x509keyfile $SERV_KEY --x509cafile $CA_CERT & PID=$!
338 wait_server $PID
339
340 #-cipher RSA-PSK-AES128-SHA 
341 $POLARSSL_CLI  server_name=localhost psk_identity=jas psk=9e32cf7786321a828ef7668f09fb35db 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 || \
342   fail $PID "Failed"
343
344 kill $PID
345 wait
346
347
348 rm -f $LOGFILE
349
350 exit 0