blob: ef6b0e0d337c82539dd4ad572753f545ae2daee4 [file] [log] [blame]
Paul Bakkeraccd4eb2013-07-19 13:41:51 +02001#!/bin/bash
2
Paul Bakker645ce3a2012-10-31 12:32:41 +00003killall -q openssl ssl_server ssl_server2
Paul Bakkerfab5c822012-02-06 16:45:10 +00004
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +02005let "tests = 0"
6let "failed = 0"
7let "skipped = 0"
8
Paul Bakker10cd2252012-04-12 21:26:34 +00009MODES="ssl3 tls1 tls1_1 tls1_2"
Paul Bakker1eeceae2012-11-23 14:25:34 +010010VERIFIES="NO YES"
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +020011TYPES="ECDSA RSA PSK"
Paul Bakker0c93d122012-09-13 14:26:09 +000012OPENSSL=openssl
Paul Bakkeraccd4eb2013-07-19 13:41:51 +020013FILTER=""
14VERBOSE=""
15
16# Parse arguments
17#
18until [ -z "$1" ]
19do
20 case "$1" in
21 -f|--filter)
22 # Filter ciphersuites
23 shift
24 FILTER=$1
25 ;;
Paul Bakker524691c2013-07-25 17:01:20 +020026 -m|--modes)
27 # Perform modes
28 shift
29 MODES=$1
30 ;;
Manuel Pégourié-Gonnarddfc8d5a2013-08-27 20:48:40 +020031 -t|--types)
32 # Key exchange types
33 shift
34 TYPES=$1
35 ;;
36 -V|--verify)
37 # Verifiction modes
38 shift
39 VERIFIES=$1
40 ;;
Paul Bakkeraccd4eb2013-07-19 13:41:51 +020041 -v|--verbose)
42 # Set verbosity
43 shift
44 VERBOSE=1
45 ;;
46 -h|--help)
47 # print help
48 echo "Usage: $0"
Paul Bakker524691c2013-07-25 17:01:20 +020049 echo -e " -f|--filter\tFilter ciphersuites to test (Default: all)"
Paul Bakkeraccd4eb2013-07-19 13:41:51 +020050 echo -e " -h|--help\t\tPrint this help."
Paul Bakker524691c2013-07-25 17:01:20 +020051 echo -e " -m|--modes\tWhich modes to perform (Default: \"ssl3 tls1 tls1_1 tls1_2\")"
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +020052 echo -e " -t|--types\tWhich key exchange type to perform (Default: \"ECDSA RSA PSK\")"
Manuel Pégourié-Gonnarddfc8d5a2013-08-27 20:48:40 +020053 echo -e " -V|--verify\tWhich verification modes to perform (Default: \"NO YES\")"
Paul Bakkeraccd4eb2013-07-19 13:41:51 +020054 echo -e " -v|--verbose\t\tSet verbose output."
55 exit 1
56 ;;
57 *)
58 # print error
59 echo "Unknown argument: '$1'"
60 exit 1
61 ;;
62 esac
63 shift
64done
65
66log () {
67 if [ "X" != "X$VERBOSE" ]; then
68 echo "$@"
69 fi
70}
Paul Bakker10cd2252012-04-12 21:26:34 +000071
Manuel Pégourié-Gonnarddfc8d5a2013-08-27 20:48:40 +020072filter()
73{
74 LIST=$1
75 FILTER=$2
76
77 NEW_LIST=""
78
79 for i in $LIST;
80 do
81 NEW_LIST="$NEW_LIST $( echo "$i" | grep "$FILTER" )"
82 done
83
84 echo "$NEW_LIST"
85}
86
Paul Bakker1eeceae2012-11-23 14:25:34 +010087for VERIFY in $VERIFIES;
88do
Paul Bakker7e5e7ca2013-04-17 19:27:58 +020089
Paul Bakker10cd2252012-04-12 21:26:34 +000090if [ "X$VERIFY" = "XYES" ];
91then
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +020092 P_SERVER_ARGS="ca_file=data_files/test-ca_cat12.crt auth_mode=required"
93 P_CLIENT_ARGS="ca_file=data_files/test-ca_cat12.crt"
94 O_SERVER_ARGS="-CAfile data_files/test-ca_cat12.crt -Verify 10"
95 O_CLIENT_ARGS="-CAfile data_files/test-ca_cat12.crt"
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +020096else
97 P_SERVER_ARGS=""
98 P_CLIENT_ARGS=""
99 O_SERVER_ARGS=""
100 O_CLIENT_ARGS=""
Paul Bakker10cd2252012-04-12 21:26:34 +0000101fi
Paul Bakker398cb512012-04-10 08:22:31 +0000102
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200103
Paul Bakker398cb512012-04-10 08:22:31 +0000104for MODE in $MODES;
105do
Manuel Pégourié-Gonnarddfc8d5a2013-08-27 20:48:40 +0200106echo "-----------"
Paul Bakker1eeceae2012-11-23 14:25:34 +0100107echo "Running for $MODE (Verify: $VERIFY)"
Paul Bakker398cb512012-04-10 08:22:31 +0000108echo "-----------"
109
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200110for TYPE in $TYPES;
111do
Paul Bakkerfab5c822012-02-06 16:45:10 +0000112
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200113case $TYPE in
Paul Bakker10cd2252012-04-12 21:26:34 +0000114
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +0200115 "ECDSA")
116
117 P_SERVER_ARGS="$P_SERVER_ARGS crt_file=data_files/server5.crt key_file=data_files/server5.key"
118 P_CLIENT_ARGS="$P_CLIENT_ARGS crt_file=data_files/server6.crt key_file=data_files/server6.key"
119 O_SERVER_ARGS="$O_SERVER_ARGS -cert data_files/server5.crt -key data_files/server5.key"
120 O_CLIENT_ARGS="$O_CLIENT_ARGS -cert data_files/server6.crt -key data_files/server6.key"
121
122 P_CIPHERS=" \
123 TLS-ECDHE-ECDSA-WITH-NULL-SHA \
124 TLS-ECDHE-ECDSA-WITH-RC4-128-SHA \
125 TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA \
126 TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA \
127 TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA \
128 "
129
130 O_CIPHERS=" \
131 ECDHE-ECDSA-NULL-SHA \
132 ECDHE-ECDSA-RC4-SHA \
133 ECDHE-ECDSA-DES-CBC3-SHA \
134 ECDHE-ECDSA-AES128-SHA \
135 ECDHE-ECDSA-AES256-SHA \
136 "
137
138 if [ "$MODE" = "tls1_2" ];
139 then
140 P_CIPHERS="$P_CIPHERS \
141 TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256 \
142 TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384 \
143 TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256 \
144 TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384 \
145 "
146
147 O_CIPHERS=" \
148 ECDHE-ECDSA-AES128-SHA256 \
149 ECDHE-ECDSA-AES256-SHA384 \
150 ECDHE-ECDSA-AES128-GCM-SHA256 \
151 ECDHE-ECDSA-AES256-GCM-SHA384 \
152 "
153 fi
154
155 ;;
156
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200157 "RSA")
Paul Bakker1eeceae2012-11-23 14:25:34 +0100158
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200159 P_SERVER_ARGS="$P_SERVER_ARGS crt_file=data_files/server1.crt key_file=data_files/server1.key"
160 P_CLIENT_ARGS="$P_CLIENT_ARGS crt_file=data_files/server2.crt key_file=data_files/server2.key"
161 O_SERVER_ARGS="$O_SERVER_ARGS -cert data_files/server1.crt -key data_files/server1.key"
162 O_CLIENT_ARGS="$O_CLIENT_ARGS -cert data_files/server2.crt -key data_files/server2.key"
Paul Bakker1eeceae2012-11-23 14:25:34 +0100163
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200164 P_CIPHERS=" \
165 TLS-DHE-RSA-WITH-AES-128-CBC-SHA \
166 TLS-DHE-RSA-WITH-AES-256-CBC-SHA \
167 TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA \
168 TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA \
169 TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA \
170 TLS-RSA-WITH-AES-256-CBC-SHA \
171 TLS-RSA-WITH-CAMELLIA-256-CBC-SHA \
172 TLS-RSA-WITH-AES-128-CBC-SHA \
173 TLS-RSA-WITH-CAMELLIA-128-CBC-SHA \
174 TLS-RSA-WITH-3DES-EDE-CBC-SHA \
175 TLS-RSA-WITH-RC4-128-SHA \
176 TLS-RSA-WITH-RC4-128-MD5 \
177 TLS-RSA-EXPORT-WITH-RC4-40-MD5 \
178 TLS-RSA-WITH-NULL-MD5 \
179 TLS-RSA-WITH-NULL-SHA \
180 TLS-RSA-WITH-DES-CBC-SHA \
181 TLS-DHE-RSA-WITH-DES-CBC-SHA \
182 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA \
183 TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA \
184 TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA \
185 TLS-ECDHE-RSA-WITH-RC4-128-SHA \
186 TLS-ECDHE-RSA-WITH-NULL-SHA \
187 "
Paul Bakker10cd2252012-04-12 21:26:34 +0000188
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200189 O_CIPHERS=" \
190 DHE-RSA-AES128-SHA \
191 DHE-RSA-AES256-SHA \
192 DHE-RSA-CAMELLIA128-SHA \
193 DHE-RSA-CAMELLIA256-SHA \
194 EDH-RSA-DES-CBC3-SHA \
195 AES256-SHA \
196 CAMELLIA256-SHA \
197 AES128-SHA \
198 CAMELLIA128-SHA \
199 DES-CBC3-SHA \
200 RC4-SHA \
201 RC4-MD5 \
202 EXP-RC4-MD5 \
203 NULL-MD5 \
204 NULL-SHA \
205 DES-CBC-SHA \
206 EDH-RSA-DES-CBC-SHA \
207 ECDHE-RSA-AES256-SHA \
208 ECDHE-RSA-AES128-SHA \
209 ECDHE-RSA-DES-CBC3-SHA \
210 ECDHE-RSA-RC4-SHA \
211 ECDHE-RSA-NULL-SHA \
212 "
213
214 if [ "$MODE" = "tls1_2" ];
215 then
216 P_CIPHERS="$P_CIPHERS \
217 TLS-RSA-WITH-NULL-SHA256 \
218 TLS-RSA-WITH-AES-128-CBC-SHA256 \
219 TLS-DHE-RSA-WITH-AES-128-CBC-SHA256 \
220 TLS-RSA-WITH-AES-256-CBC-SHA256 \
221 TLS-DHE-RSA-WITH-AES-256-CBC-SHA256 \
222 TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256 \
223 TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384 \
224 TLS-RSA-WITH-AES-128-GCM-SHA256 \
225 TLS-RSA-WITH-AES-256-GCM-SHA384 \
226 TLS-DHE-RSA-WITH-AES-128-GCM-SHA256 \
227 TLS-DHE-RSA-WITH-AES-256-GCM-SHA384 \
228 TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256 \
229 TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384 \
230 "
231
232 O_CIPHERS="$O_CIPHERS \
233 NULL-SHA256 \
234 AES128-SHA256 \
235 DHE-RSA-AES128-SHA256 \
236 AES256-SHA256 \
237 DHE-RSA-AES256-SHA256 \
238 ECDHE-RSA-AES128-SHA256 \
239 ECDHE-RSA-AES256-SHA384 \
240 AES128-GCM-SHA256 \
241 DHE-RSA-AES128-GCM-SHA256 \
242 AES256-GCM-SHA384 \
243 DHE-RSA-AES256-GCM-SHA384 \
244 ECDHE-RSA-AES128-GCM-SHA256 \
245 ECDHE-RSA-AES256-GCM-SHA384 \
246 "
247 fi
248
249 ;;
250
251 "PSK")
252
253 P_SERVER_ARGS="$P_SERVER_ARGS psk=6162636465666768696a6b6c6d6e6f70"
254 P_CLIENT_ARGS="$P_CLIENT_ARGS psk=6162636465666768696a6b6c6d6e6f70"
255 O_SERVER_ARGS="$O_SERVER_ARGS -psk 6162636465666768696a6b6c6d6e6f70"
256 O_CLIENT_ARGS="$O_CLIENT_ARGS -psk 6162636465666768696a6b6c6d6e6f70"
257
258 P_CIPHERS=" \
259 TLS-PSK-WITH-RC4-128-SHA \
260 TLS-PSK-WITH-3DES-EDE-CBC-SHA \
261 TLS-PSK-WITH-AES-128-CBC-SHA \
262 TLS-PSK-WITH-AES-256-CBC-SHA \
263 "
264
265 O_CIPHERS=" \
266 PSK-RC4-SHA \
267 PSK-3DES-EDE-CBC-SHA \
268 PSK-AES128-CBC-SHA \
269 PSK-AES256-CBC-SHA \
270 "
271
272 ;;
273
274esac
Paul Bakker10cd2252012-04-12 21:26:34 +0000275
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200276# Filter ciphersuites
277if [ "X" != "X$FILTER" ];
278then
279 O_CIPHERS=$( filter "$O_CIPHERS" "$FILTER" )
280 P_CIPHERS=$( filter "$P_CIPHERS" "$FILTER" )
281fi
282
283
284log "$OPENSSL s_server -cert data_files/server2.crt -key data_files/server2.key -www -quiet -cipher NULL,ALL $O_SERVER_ARGS -$MODE"
Manuel Pégourié-Gonnarddfc8d5a2013-08-27 20:48:40 +0200285$OPENSSL s_server -cert data_files/server2.crt -key data_files/server2.key -www -quiet -cipher NULL,ALL $O_SERVER_ARGS -$MODE >/dev/null 2>&1 &
Paul Bakker10cd2252012-04-12 21:26:34 +0000286PROCESS_ID=$!
287
288sleep 1
289
290for i in $P_CIPHERS;
Paul Bakkerfab5c822012-02-06 16:45:10 +0000291do
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200292 let "tests++"
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200293 log "../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i force_version=$MODE"
Paul Bakker89fe7f42013-06-29 16:18:10 +0200294 RESULT="$( ../programs/ssl/ssl_client2 $P_CLIENT_ARGS force_ciphersuite=$i force_version=$MODE )"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000295 EXIT=$?
296 echo -n "OpenSSL Server - PolarSSL Client - $i : $EXIT - "
297 if [ "$EXIT" = "2" ];
298 then
299 echo Ciphersuite not supported in client
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200300 let "skipped++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000301 elif [ "$EXIT" != "0" ];
302 then
303 echo Failed
304 echo $RESULT
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200305 let "failed++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000306 else
307 echo Success
308 fi
309done
310kill $PROCESS_ID
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200311wait $PROCESS_ID 2>/dev/null
Paul Bakkerfab5c822012-02-06 16:45:10 +0000312
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200313log "../programs/ssl/ssl_server2 $P_SERVER_ARGS force_version=$MODE > /dev/null"
Paul Bakker89fe7f42013-06-29 16:18:10 +0200314../programs/ssl/ssl_server2 $P_SERVER_ARGS force_version=$MODE > /dev/null &
Paul Bakkerfab5c822012-02-06 16:45:10 +0000315PROCESS_ID=$!
316
317sleep 1
318
Paul Bakker10cd2252012-04-12 21:26:34 +0000319for i in $O_CIPHERS;
Paul Bakkerfab5c822012-02-06 16:45:10 +0000320do
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200321 let "tests++"
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200322 log "$OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS"
Paul Bakker1eeceae2012-11-23 14:25:34 +0100323 RESULT="$( ( echo -e 'GET HTTP/1.0'; echo; sleep 1 ) | $OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS 2>&1 )"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000324 EXIT=$?
325 echo -n "PolarSSL Server - OpenSSL Client - $i : $EXIT - "
326
327 if [ "$EXIT" != "0" ];
328 then
329 SUPPORTED="$( echo $RESULT | grep 'Cipher is (NONE)' )"
330 if [ "X$SUPPORTED" != "X" ]
331 then
332 echo "Ciphersuite not supported in server"
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200333 let "skipped++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000334 else
335 echo Failed
Paul Bakker1eeceae2012-11-23 14:25:34 +0100336 echo ../programs/ssl/ssl_server2 $P_SERVER_ARGS
337 echo $OPENSSL s_client -$MODE -cipher $i $O_CLIENT_ARGS
Paul Bakkerfab5c822012-02-06 16:45:10 +0000338 echo $RESULT
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200339 let "failed++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000340 fi
341 else
342 echo Success
343 fi
344done
345
346kill $PROCESS_ID
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200347wait $PROCESS_ID 2>/dev/null
Paul Bakkerfab5c822012-02-06 16:45:10 +0000348
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200349log "../programs/ssl/ssl_server2 $P_SERVER_ARGS force_version=$MODE"
Paul Bakker89fe7f42013-06-29 16:18:10 +0200350../programs/ssl/ssl_server2 $P_SERVER_ARGS force_version=$MODE > /dev/null &
Paul Bakkerfab5c822012-02-06 16:45:10 +0000351PROCESS_ID=$!
352
353sleep 1
354
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200355# Add ciphersuites supported by PolarSSL only
Paul Bakkerfab5c822012-02-06 16:45:10 +0000356
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200357case $TYPE in
358
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +0200359 "ECDSA")
360
361 if [ "$MODE" = "tls1_2" ];
362 then
363 P_CIPHERS="$P_CIPHERS \
364 TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256 \
365 TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384 \
366 "
367 fi
368
369 ;;
370
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200371 "RSA")
372
373 if [ "$MODE" = "tls1_2" ];
374 then
Manuel Pégourié-Gonnard7ebaf372013-08-27 21:03:33 +0200375 P_CIPHERS="$P_CIPHERS \
376 TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256 \
377 TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256 \
378 TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256 \
379 TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256 \
380 TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256 \
381 TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384 \
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200382 "
383 fi
384
385 ;;
386
387 "PSK")
388
389 P_CIPHERS="$P_CIPHERS \
390 TLS-DHE-PSK-WITH-RC4-128-SHA \
391 TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA \
392 TLS-DHE-PSK-WITH-AES-128-CBC-SHA \
393 TLS-DHE-PSK-WITH-AES-256-CBC-SHA \
394 TLS-PSK-WITH-NULL-SHA \
395 TLS-DHE-PSK-WITH-NULL-SHA \
396 "
397
398 if [ "$MODE" = "tls1_2" ];
399 then
400 P_CIPHERS="$P_CIPHERS \
401 TLS-PSK-WITH-AES-128-CBC-SHA256 \
402 TLS-PSK-WITH-AES-256-CBC-SHA384 \
403 TLS-DHE-PSK-WITH-AES-128-CBC-SHA256 \
404 TLS-DHE-PSK-WITH-AES-256-CBC-SHA384 \
405 TLS-PSK-WITH-AES-128-GCM-SHA256 \
406 TLS-PSK-WITH-AES-256-GCM-SHA384 \
407 TLS-DHE-PSK-WITH-AES-128-GCM-SHA256 \
408 TLS-DHE-PSK-WITH-AES-256-GCM-SHA384 \
409 TLS-PSK-WITH-NULL-SHA256 \
410 TLS-PSK-WITH-NULL-SHA384 \
411 TLS-DHE-PSK-WITH-NULL-SHA256 \
412 TLS-DHE-PSK-WITH-NULL-SHA384 \
413 TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256 \
414 TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384 \
415 TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256 \
416 TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384 \
417 "
418 fi
419
420esac
Paul Bakker48f7a5d2013-04-19 14:30:58 +0200421
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200422# Filter ciphersuites
423if [ "X" != "X$FILTER" ];
424then
425 O_CIPHERS=$( filter "$O_CIPHERS" "$FILTER" )
426 P_CIPHERS=$( filter "$P_CIPHERS" "$FILTER" )
427fi
428
Paul Bakker10cd2252012-04-12 21:26:34 +0000429for i in $P_CIPHERS;
Paul Bakkerfab5c822012-02-06 16:45:10 +0000430do
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200431 let "tests++"
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200432 log "../programs/ssl/ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS"
Paul Bakker89fe7f42013-06-29 16:18:10 +0200433 RESULT="$( ../programs/ssl/ssl_client2 force_ciphersuite=$i force_version=$MODE $P_CLIENT_ARGS )"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000434 EXIT=$?
435 echo -n "PolarSSL Server - PolarSSL Client - $i : $EXIT - "
436 if [ "$EXIT" = "2" ];
437 then
438 echo Ciphersuite not supported in client
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200439 let "skipped++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000440 elif [ "$EXIT" != "0" ];
441 then
442 echo Failed
443 echo $RESULT
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200444 let "failed++"
Paul Bakkerfab5c822012-02-06 16:45:10 +0000445 else
446 echo Success
447 fi
448done
449kill $PROCESS_ID
Paul Bakkeraccd4eb2013-07-19 13:41:51 +0200450wait $PROCESS_ID 2>/dev/null
Paul Bakkerfab5c822012-02-06 16:45:10 +0000451
Paul Bakker398cb512012-04-10 08:22:31 +0000452done
Paul Bakker1eeceae2012-11-23 14:25:34 +0100453done
Manuel Pégourié-Gonnard9791a402013-08-27 19:57:15 +0200454done
Manuel Pégourié-Gonnard70064fd2013-08-27 22:00:47 +0200455
456echo ""
457echo "-------------------------------------------------------------------------"
458echo ""
459
460if (( failed != 0 ));
461then
462 echo -n "FAILED"
463else
464 echo -n "PASSED"
465fi
466
467let "passed = tests - failed"
468echo " ($passed / $tests tests ($skipped skipped))"
469
470exit $failed