blob: c85cd5b5d9c0f4cfad3d30356bef24b7e0950652 [file] [log] [blame]
Gilles Peskine478f6062024-09-04 16:04:42 +02001# Test that SSL sample programs can interoperate with OpenSSL and GnuTLS.
2
3# Copyright The Mbed TLS Contributors
4# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
5
6: ${PROGRAMS_DIR:=../programs/ssl}
Gilles Peskinee6b82502024-09-04 16:06:10 +02007
8requires_protocol_version tls12
9run_test "Sample: ssl_client1, openssl server, TLS 1.2" \
10 -P 4433 \
11 "$O_SRV -tls1_2" \
12 "$PROGRAMS_DIR/ssl_client1" \
13 0 \
Gilles Peskine8d64fe12024-09-04 23:33:36 +020014 -c "Protocol.*TLSv1.2" \
Gilles Peskinee6b82502024-09-04 16:06:10 +020015 -S "ERROR" \
16 -C "error"
17
18requires_protocol_version tls12
19run_test "Sample: ssl_client1, gnutls server, TLS 1.2" \
20 -P 4433 \
21 "$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
22 "$PROGRAMS_DIR/ssl_client1" \
23 0 \
24 -s "Version: TLS1.2" \
25 -c "<TD>Protocol version:</TD><TD>TLS1.2</TD>" \
26 -S "Error" \
27 -C "error"
28
29requires_protocol_version tls13
Gilles Peskine6117a0c2024-09-04 23:32:42 +020030requires_openssl_tls1_3
Gilles Peskinee6b82502024-09-04 16:06:10 +020031run_test "Sample: ssl_client1, openssl server, TLS 1.3" \
32 -P 4433 \
Gilles Peskine6117a0c2024-09-04 23:32:42 +020033 "$O_NEXT_SRV -tls1_3" \
Gilles Peskinee6b82502024-09-04 16:06:10 +020034 "$PROGRAMS_DIR/ssl_client1" \
35 0 \
36 -c "New, TLSv1.3, Cipher is" \
37 -S "ERROR" \
38 -C "error"
39
40requires_protocol_version tls13
Gilles Peskine33aa2022024-09-05 13:05:49 +020041requires_gnutls_tls1_3
Gilles Peskinee6b82502024-09-04 16:06:10 +020042run_test "Sample: ssl_client1, gnutls server, TLS 1.3" \
43 -P 4433 \
Gilles Peskine33aa2022024-09-05 13:05:49 +020044 "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3" \
Gilles Peskinee6b82502024-09-04 16:06:10 +020045 "$PROGRAMS_DIR/ssl_client1" \
46 0 \
47 -s "Version: TLS1.3" \
48 -c "<TD>Protocol version:</TD><TD>TLS1.3</TD>" \
49 -S "Error" \
50 -C "error"
Gilles Peskinef8b373e2024-09-04 16:07:56 +020051
52requires_protocol_version dtls12
53run_test "Sample: dtls_client, openssl server, DTLS 1.2" \
54 -P 4433 \
55 "$O_SRV -dtls1_2" \
56 "$PROGRAMS_DIR/dtls_client" \
57 0 \
58 -s "Echo this" \
Gilles Peskinef8b373e2024-09-04 16:07:56 +020059 -c "Echo this" \
60 -c "[1-9][0-9]* bytes written" \
61 -c "[1-9][0-9]* bytes read" \
62 -S "ERROR" \
63 -C "error"
64
65requires_protocol_version dtls12
66run_test "Sample: dtls_client, gnutls server, DTLS 1.2" \
67 -P 4433 \
68 "$G_SRV -u --echo --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \
69 "$PROGRAMS_DIR/dtls_client" \
70 0 \
71 -s "Server listening" \
72 -s "[1-9][0-9]* bytes command:" \
73 -c "Echo this" \
74 -c "[1-9][0-9]* bytes written" \
75 -c "[1-9][0-9]* bytes read" \
76 -S "Error" \
77 -C "error"
Gilles Peskine37c37492024-09-04 16:30:32 +020078
79requires_protocol_version tls12
80run_test "Sample: ssl_server, openssl client, TLS 1.2" \
81 -P 4433 \
82 "$PROGRAMS_DIR/ssl_server" \
83 "$O_CLI -tls1_2" \
84 0 \
85 -s "Successful connection using: TLS-" \
Gilles Peskine8d64fe12024-09-04 23:33:36 +020086 -c "Protocol.*TLSv1.2" \
Gilles Peskine37c37492024-09-04 16:30:32 +020087 -S "error" \
88 -C "ERROR"
89
90requires_protocol_version tls12
91run_test "Sample: ssl_server, gnutls client, TLS 1.2" \
92 -P 4433 \
93 "$PROGRAMS_DIR/ssl_server" \
94 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
95 0 \
96 -s "Successful connection using: TLS-" \
97 -c "Description:.*TLS1.2" \
98 -S "error" \
99 -C "ERROR"
100
101requires_protocol_version tls13
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200102requires_openssl_tls1_3
Gilles Peskine37c37492024-09-04 16:30:32 +0200103run_test "Sample: ssl_server, openssl client, TLS 1.3" \
104 -P 4433 \
105 "$PROGRAMS_DIR/ssl_server" \
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200106 "$O_NEXT_CLI -tls1_3" \
Gilles Peskine37c37492024-09-04 16:30:32 +0200107 0 \
108 -s "Successful connection using: TLS1-3-" \
109 -c "New, TLSv1.3, Cipher is" \
110 -S "error" \
111 -C "ERROR"
112
113requires_protocol_version tls13
Gilles Peskine33aa2022024-09-05 13:05:49 +0200114requires_gnutls_tls1_3
Gilles Peskine37c37492024-09-04 16:30:32 +0200115run_test "Sample: ssl_server, gnutls client, TLS 1.3" \
116 -P 4433 \
117 "$PROGRAMS_DIR/ssl_server" \
Gilles Peskine33aa2022024-09-05 13:05:49 +0200118 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
Gilles Peskine37c37492024-09-04 16:30:32 +0200119 0 \
120 -s "Successful connection using: TLS1-3-" \
121 -c "Description:.*TLS1.3" \
122 -S "error" \
123 -C "ERROR"
Gilles Peskinefab60992024-09-04 16:31:06 +0200124
125requires_protocol_version tls12
Gilles Peskine2a0af352024-09-04 17:47:14 +0200126run_test "Sample: ssl_fork_server, openssl client, TLS 1.2" \
127 -P 4433 \
128 "$PROGRAMS_DIR/ssl_fork_server" \
129 "$O_CLI -tls1_2" \
130 0 \
131 -s "Successful connection using: TLS-" \
Gilles Peskine8d64fe12024-09-04 23:33:36 +0200132 -c "Protocol.*TLSv1.2" \
Gilles Peskine2a0af352024-09-04 17:47:14 +0200133 -S "error" \
134 -C "ERROR"
135
136requires_protocol_version tls12
137run_test "Sample: ssl_fork_server, gnutls client, TLS 1.2" \
138 -P 4433 \
139 "$PROGRAMS_DIR/ssl_fork_server" \
140 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
141 0 \
142 -s "Successful connection using: TLS-" \
143 -c "Description:.*TLS1.2" \
144 -S "error" \
145 -C "ERROR"
146
147requires_protocol_version tls13
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200148requires_openssl_tls1_3
Gilles Peskine2a0af352024-09-04 17:47:14 +0200149run_test "Sample: ssl_fork_server, openssl client, TLS 1.3" \
150 -P 4433 \
151 "$PROGRAMS_DIR/ssl_fork_server" \
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200152 "$O_NEXT_CLI -tls1_3" \
Gilles Peskine2a0af352024-09-04 17:47:14 +0200153 0 \
154 -s "Successful connection using: TLS1-3-" \
155 -c "New, TLSv1.3, Cipher is" \
156 -S "error" \
157 -C "ERROR"
158
159requires_protocol_version tls13
Gilles Peskine33aa2022024-09-05 13:05:49 +0200160requires_gnutls_tls1_3
Gilles Peskine2a0af352024-09-04 17:47:14 +0200161run_test "Sample: ssl_fork_server, gnutls client, TLS 1.3" \
162 -P 4433 \
163 "$PROGRAMS_DIR/ssl_fork_server" \
Gilles Peskine33aa2022024-09-05 13:05:49 +0200164 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
Gilles Peskine2a0af352024-09-04 17:47:14 +0200165 0 \
166 -s "Successful connection using: TLS1-3-" \
167 -c "Description:.*TLS1.3" \
168 -S "error" \
169 -C "ERROR"
170
171requires_protocol_version tls12
Gilles Peskinefab60992024-09-04 16:31:06 +0200172run_test "Sample: ssl_pthread_server, openssl client, TLS 1.2" \
173 -P 4433 \
174 "$PROGRAMS_DIR/ssl_pthread_server" \
175 "$O_CLI -tls1_2" \
176 0 \
177 -s "Successful connection using: TLS-" \
Gilles Peskine8d64fe12024-09-04 23:33:36 +0200178 -c "Protocol.*TLSv1.2" \
Gilles Peskinefab60992024-09-04 16:31:06 +0200179 -S "error" \
180 -C "ERROR"
181
182requires_protocol_version tls12
183run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.2" \
184 -P 4433 \
185 "$PROGRAMS_DIR/ssl_pthread_server" \
186 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
187 0 \
188 -s "Successful connection using: TLS-" \
189 -c "Description:.*TLS1.2" \
190 -S "error" \
191 -C "ERROR"
192
193requires_protocol_version tls13
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200194requires_openssl_tls1_3
Gilles Peskinefab60992024-09-04 16:31:06 +0200195run_test "Sample: ssl_pthread_server, openssl client, TLS 1.3" \
196 -P 4433 \
197 "$PROGRAMS_DIR/ssl_pthread_server" \
Gilles Peskine6117a0c2024-09-04 23:32:42 +0200198 "$O_NEXT_CLI -tls1_3" \
Gilles Peskinefab60992024-09-04 16:31:06 +0200199 0 \
200 -s "Successful connection using: TLS1-3-" \
201 -c "New, TLSv1.3, Cipher is" \
202 -S "error" \
203 -C "ERROR"
204
205requires_protocol_version tls13
Gilles Peskine33aa2022024-09-05 13:05:49 +0200206requires_gnutls_tls1_3
Gilles Peskinefab60992024-09-04 16:31:06 +0200207run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.3" \
208 -P 4433 \
209 "$PROGRAMS_DIR/ssl_pthread_server" \
Gilles Peskine33aa2022024-09-05 13:05:49 +0200210 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \
Gilles Peskinefab60992024-09-04 16:31:06 +0200211 0 \
212 -s "Successful connection using: TLS1-3-" \
213 -c "Description:.*TLS1.3" \
214 -S "error" \
215 -C "ERROR"
Gilles Peskine9d104e92024-09-04 16:51:50 +0200216
217requires_protocol_version dtls12
218run_test "Sample: dtls_server, openssl client, DTLS 1.2" \
219 -P 4433 \
220 "$PROGRAMS_DIR/dtls_server" \
221 "$O_CLI -dtls1_2" \
222 0 \
223 -s "[1-9][0-9]* bytes read" \
224 -s "[1-9][0-9]* bytes written" \
Gilles Peskine8d64fe12024-09-04 23:33:36 +0200225 -c "Protocol.*TLSv1.2" \
Gilles Peskine9d104e92024-09-04 16:51:50 +0200226 -S "error" \
227 -C "ERROR"
228
229requires_protocol_version dtls12
230run_test "Sample: dtls_server, gnutls client, DTLS 1.2" \
231 -P 4433 \
232 "$PROGRAMS_DIR/dtls_server" \
233 "$G_CLI -u --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \
234 0 \
235 -s "[1-9][0-9]* bytes read" \
236 -s "[1-9][0-9]* bytes written" \
237 -c "Description:.*DTLS1.2" \
238 -S "error" \
239 -C "ERROR"