sample.sh (12938B)
1 # Test that SSL sample programs can interoperate with each other 2 # and with OpenSSL and GnuTLS. 3 4 # Copyright The Mbed TLS Contributors 5 # SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6 7 : ${PROGRAMS_DIR:=../programs/ssl} 8 9 run_test "Sample: ssl_client1, ssl_server2" \ 10 -P 4433 \ 11 "$PROGRAMS_DIR/ssl_server2" \ 12 "$PROGRAMS_DIR/ssl_client1" \ 13 0 \ 14 -s "[1-9][0-9]* bytes read" \ 15 -s "[1-9][0-9]* bytes written" \ 16 -c "[1-9][0-9]* bytes read" \ 17 -c "[1-9][0-9]* bytes written" \ 18 -S "error" \ 19 -C "error" 20 21 requires_protocol_version tls12 22 run_test "Sample: ssl_client1, openssl server, TLS 1.2" \ 23 -P 4433 \ 24 "$O_SRV -tls1_2" \ 25 "$PROGRAMS_DIR/ssl_client1" \ 26 0 \ 27 -c "Protocol.*TLSv1.2" \ 28 -S "ERROR" \ 29 -C "error" 30 31 requires_protocol_version tls12 32 run_test "Sample: ssl_client1, gnutls server, TLS 1.2" \ 33 -P 4433 \ 34 "$G_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \ 35 "$PROGRAMS_DIR/ssl_client1" \ 36 0 \ 37 -s "Version: TLS1.2" \ 38 -c "<TD>Protocol version:</TD><TD>TLS1.2</TD>" \ 39 -S "Error" \ 40 -C "error" 41 42 requires_protocol_version tls13 43 requires_openssl_tls1_3 44 run_test "Sample: ssl_client1, openssl server, TLS 1.3" \ 45 -P 4433 \ 46 "$O_NEXT_SRV -tls1_3" \ 47 "$PROGRAMS_DIR/ssl_client1" \ 48 0 \ 49 -c "New, TLSv1.3, Cipher is" \ 50 -S "ERROR" \ 51 -C "error" 52 53 requires_protocol_version tls13 54 requires_gnutls_tls1_3 55 run_test "Sample: ssl_client1, gnutls server, TLS 1.3" \ 56 -P 4433 \ 57 "$G_NEXT_SRV --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3" \ 58 "$PROGRAMS_DIR/ssl_client1" \ 59 0 \ 60 -s "Version: TLS1.3" \ 61 -c "<TD>Protocol version:</TD><TD>TLS1.3</TD>" \ 62 -S "Error" \ 63 -C "error" 64 65 # The server complains of extra data after it closes the connection 66 # because the client keeps sending data, so the server receives 67 # more application data when it expects a new handshake. We consider 68 # the test a success if both sides have sent and received application 69 # data, no matter what happens afterwards. 70 run_test "Sample: dtls_client, ssl_server2" \ 71 -P 4433 \ 72 "$PROGRAMS_DIR/ssl_server2 dtls=1 server_addr=localhost" \ 73 "$PROGRAMS_DIR/dtls_client" \ 74 0 \ 75 -s "[1-9][0-9]* bytes read" \ 76 -s "[1-9][0-9]* bytes written" \ 77 -c "[1-9][0-9]* bytes read" \ 78 -c "[1-9][0-9]* bytes written" \ 79 -C "error" 80 81 # The dtls_client program connects to localhost. This test case fails on 82 # systems where the name "localhost" resolves to an IPv6 address, but 83 # the IPv6 connection is not possible. Possible reasons include: 84 # * OpenSSL is too old (IPv6 support was added in 1.1.0). 85 # * OpenSSL was built without IPv6 support. 86 # * A firewall blocks IPv6. 87 # 88 # To facilitate working with this test case, have it run with $OPENSSL_NEXT 89 # which is at least 1.1.1a. At the time it was introduced, this test case 90 # passed with OpenSSL 1.0.2g on an environment where IPv6 is disabled. 91 requires_protocol_version dtls12 92 run_test "Sample: dtls_client, openssl server, DTLS 1.2" \ 93 -P 4433 \ 94 "$O_NEXT_SRV -dtls1_2" \ 95 "$PROGRAMS_DIR/dtls_client" \ 96 0 \ 97 -s "Echo this" \ 98 -c "Echo this" \ 99 -c "[1-9][0-9]* bytes written" \ 100 -c "[1-9][0-9]* bytes read" \ 101 -S "ERROR" \ 102 -C "error" 103 104 requires_protocol_version dtls12 105 run_test "Sample: dtls_client, gnutls server, DTLS 1.2" \ 106 -P 4433 \ 107 "$G_SRV -u --echo --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2" \ 108 "$PROGRAMS_DIR/dtls_client" \ 109 0 \ 110 -s "Server listening" \ 111 -s "[1-9][0-9]* bytes command:" \ 112 -c "Echo this" \ 113 -c "[1-9][0-9]* bytes written" \ 114 -c "[1-9][0-9]* bytes read" \ 115 -S "Error" \ 116 -C "error" 117 118 run_test "Sample: ssl_server, ssl_client2" \ 119 -P 4433 \ 120 "$PROGRAMS_DIR/ssl_server" \ 121 "$PROGRAMS_DIR/ssl_client2" \ 122 0 \ 123 -s "[1-9][0-9]* bytes read" \ 124 -s "[1-9][0-9]* bytes written" \ 125 -c "[1-9][0-9]* bytes read" \ 126 -c "[1-9][0-9]* bytes written" \ 127 -S "error" \ 128 -C "error" 129 130 run_test "Sample: ssl_client1 with ssl_server" \ 131 -P 4433 \ 132 "$PROGRAMS_DIR/ssl_server" \ 133 "$PROGRAMS_DIR/ssl_client1" \ 134 0 \ 135 -s "[1-9][0-9]* bytes read" \ 136 -s "[1-9][0-9]* bytes written" \ 137 -c "[1-9][0-9]* bytes read" \ 138 -c "[1-9][0-9]* bytes written" \ 139 -S "error" \ 140 -C "error" 141 142 requires_protocol_version tls12 143 run_test "Sample: ssl_server, openssl client, TLS 1.2" \ 144 -P 4433 \ 145 "$PROGRAMS_DIR/ssl_server" \ 146 "$O_CLI -tls1_2" \ 147 0 \ 148 -s "Successful connection using: TLS-" \ 149 -c "Protocol.*TLSv1.2" \ 150 -S "error" \ 151 -C "ERROR" 152 153 requires_protocol_version tls12 154 run_test "Sample: ssl_server, gnutls client, TLS 1.2" \ 155 -P 4433 \ 156 "$PROGRAMS_DIR/ssl_server" \ 157 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \ 158 0 \ 159 -s "Successful connection using: TLS-" \ 160 -c "Description:.*TLS1.2" \ 161 -S "error" \ 162 -C "ERROR" 163 164 requires_protocol_version tls13 165 requires_openssl_tls1_3 166 run_test "Sample: ssl_server, openssl client, TLS 1.3" \ 167 -P 4433 \ 168 "$PROGRAMS_DIR/ssl_server" \ 169 "$O_NEXT_CLI -tls1_3" \ 170 0 \ 171 -s "Successful connection using: TLS1-3-" \ 172 -c "New, TLSv1.3, Cipher is" \ 173 -S "error" \ 174 -C "ERROR" 175 176 requires_protocol_version tls13 177 requires_gnutls_tls1_3 178 run_test "Sample: ssl_server, gnutls client, TLS 1.3" \ 179 -P 4433 \ 180 "$PROGRAMS_DIR/ssl_server" \ 181 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \ 182 0 \ 183 -s "Successful connection using: TLS1-3-" \ 184 -c "Description:.*TLS1.3" \ 185 -S "error" \ 186 -C "ERROR" 187 188 run_test "Sample: ssl_fork_server, ssl_client2" \ 189 -P 4433 \ 190 "$PROGRAMS_DIR/ssl_fork_server" \ 191 "$PROGRAMS_DIR/ssl_client2" \ 192 0 \ 193 -s "[1-9][0-9]* bytes read" \ 194 -s "[1-9][0-9]* bytes written" \ 195 -c "[1-9][0-9]* bytes read" \ 196 -c "[1-9][0-9]* bytes written" \ 197 -S "error" \ 198 -C "error" 199 200 run_test "Sample: ssl_client1 with ssl_fork_server" \ 201 -P 4433 \ 202 "$PROGRAMS_DIR/ssl_fork_server" \ 203 "$PROGRAMS_DIR/ssl_client1" \ 204 0 \ 205 -s "[1-9][0-9]* bytes read" \ 206 -s "[1-9][0-9]* bytes written" \ 207 -c "[1-9][0-9]* bytes read" \ 208 -c "[1-9][0-9]* bytes written" \ 209 -S "error" \ 210 -C "error" 211 212 requires_protocol_version tls12 213 run_test "Sample: ssl_fork_server, openssl client, TLS 1.2" \ 214 -P 4433 \ 215 "$PROGRAMS_DIR/ssl_fork_server" \ 216 "$O_CLI -tls1_2" \ 217 0 \ 218 -s "Successful connection using: TLS-" \ 219 -c "Protocol.*TLSv1.2" \ 220 -S "error" \ 221 -C "ERROR" 222 223 requires_protocol_version tls12 224 run_test "Sample: ssl_fork_server, gnutls client, TLS 1.2" \ 225 -P 4433 \ 226 "$PROGRAMS_DIR/ssl_fork_server" \ 227 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \ 228 0 \ 229 -s "Successful connection using: TLS-" \ 230 -c "Description:.*TLS1.2" \ 231 -S "error" \ 232 -C "ERROR" 233 234 requires_protocol_version tls13 235 requires_openssl_tls1_3 236 run_test "Sample: ssl_fork_server, openssl client, TLS 1.3" \ 237 -P 4433 \ 238 "$PROGRAMS_DIR/ssl_fork_server" \ 239 "$O_NEXT_CLI -tls1_3" \ 240 0 \ 241 -s "Successful connection using: TLS1-3-" \ 242 -c "New, TLSv1.3, Cipher is" \ 243 -S "error" \ 244 -C "ERROR" 245 246 requires_protocol_version tls13 247 requires_gnutls_tls1_3 248 run_test "Sample: ssl_fork_server, gnutls client, TLS 1.3" \ 249 -P 4433 \ 250 "$PROGRAMS_DIR/ssl_fork_server" \ 251 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \ 252 0 \ 253 -s "Successful connection using: TLS1-3-" \ 254 -c "Description:.*TLS1.3" \ 255 -S "error" \ 256 -C "ERROR" 257 258 run_test "Sample: ssl_pthread_server, ssl_client2" \ 259 -P 4433 \ 260 "$PROGRAMS_DIR/ssl_pthread_server" \ 261 "$PROGRAMS_DIR/ssl_client2" \ 262 0 \ 263 -s "[1-9][0-9]* bytes read" \ 264 -s "[1-9][0-9]* bytes written" \ 265 -c "[1-9][0-9]* bytes read" \ 266 -c "[1-9][0-9]* bytes written" \ 267 -S "error" \ 268 -C "error" 269 270 run_test "Sample: ssl_client1 with ssl_pthread_server" \ 271 -P 4433 \ 272 "$PROGRAMS_DIR/ssl_pthread_server" \ 273 "$PROGRAMS_DIR/ssl_client1" \ 274 0 \ 275 -s "[1-9][0-9]* bytes read" \ 276 -s "[1-9][0-9]* bytes written" \ 277 -c "[1-9][0-9]* bytes read" \ 278 -c "[1-9][0-9]* bytes written" \ 279 -S "error" \ 280 -C "error" 281 282 requires_protocol_version tls12 283 run_test "Sample: ssl_pthread_server, openssl client, TLS 1.2" \ 284 -P 4433 \ 285 "$PROGRAMS_DIR/ssl_pthread_server" \ 286 "$O_CLI -tls1_2" \ 287 0 \ 288 -s "Successful connection using: TLS-" \ 289 -c "Protocol.*TLSv1.2" \ 290 -S "error" \ 291 -C "ERROR" 292 293 requires_protocol_version tls12 294 run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.2" \ 295 -P 4433 \ 296 "$PROGRAMS_DIR/ssl_pthread_server" \ 297 "$G_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \ 298 0 \ 299 -s "Successful connection using: TLS-" \ 300 -c "Description:.*TLS1.2" \ 301 -S "error" \ 302 -C "ERROR" 303 304 requires_protocol_version tls13 305 requires_openssl_tls1_3 306 run_test "Sample: ssl_pthread_server, openssl client, TLS 1.3" \ 307 -P 4433 \ 308 "$PROGRAMS_DIR/ssl_pthread_server" \ 309 "$O_NEXT_CLI -tls1_3" \ 310 0 \ 311 -s "Successful connection using: TLS1-3-" \ 312 -c "New, TLSv1.3, Cipher is" \ 313 -S "error" \ 314 -C "ERROR" 315 316 requires_protocol_version tls13 317 requires_gnutls_tls1_3 318 run_test "Sample: ssl_pthread_server, gnutls client, TLS 1.3" \ 319 -P 4433 \ 320 "$PROGRAMS_DIR/ssl_pthread_server" \ 321 "$G_NEXT_CLI --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.3 localhost" \ 322 0 \ 323 -s "Successful connection using: TLS1-3-" \ 324 -c "Description:.*TLS1.3" \ 325 -S "error" \ 326 -C "ERROR" 327 328 run_test "Sample: dtls_client with dtls_server" \ 329 -P 4433 \ 330 "$PROGRAMS_DIR/dtls_server" \ 331 "$PROGRAMS_DIR/dtls_client" \ 332 0 \ 333 -s "[1-9][0-9]* bytes read" \ 334 -s "[1-9][0-9]* bytes written" \ 335 -c "[1-9][0-9]* bytes read" \ 336 -c "[1-9][0-9]* bytes written" \ 337 -S "error" \ 338 -C "error" 339 340 run_test "Sample: ssl_client2, dtls_server" \ 341 -P 4433 \ 342 "$PROGRAMS_DIR/dtls_server" \ 343 "$PROGRAMS_DIR/ssl_client2 dtls=1" \ 344 0 \ 345 -s "[1-9][0-9]* bytes read" \ 346 -s "[1-9][0-9]* bytes written" \ 347 -c "[1-9][0-9]* bytes read" \ 348 -c "[1-9][0-9]* bytes written" \ 349 -S "error" \ 350 -C "error" 351 352 requires_protocol_version dtls12 353 run_test "Sample: dtls_server, openssl client, DTLS 1.2" \ 354 -P 4433 \ 355 "$PROGRAMS_DIR/dtls_server" \ 356 "$O_CLI -dtls1_2" \ 357 0 \ 358 -s "[1-9][0-9]* bytes read" \ 359 -s "[1-9][0-9]* bytes written" \ 360 -c "Protocol.*TLSv1.2" \ 361 -S "error" \ 362 -C "ERROR" 363 364 requires_protocol_version dtls12 365 run_test "Sample: dtls_server, gnutls client, DTLS 1.2" \ 366 -P 4433 \ 367 "$PROGRAMS_DIR/dtls_server" \ 368 "$G_CLI -u --priority=NORMAL:-VERS-TLS-ALL:+VERS-TLS1.2 localhost" \ 369 0 \ 370 -s "[1-9][0-9]* bytes read" \ 371 -s "[1-9][0-9]* bytes written" \ 372 -c "Description:.*DTLS1.2" \ 373 -S "error" \ 374 -C "ERROR"