diff options
Diffstat (limited to '')
| -rw-r--r-- | src/usr.bin/openssl/openssl.1 | 14 | ||||
| -rw-r--r-- | src/usr.bin/openssl/s_client.c | 46 |
2 files changed, 37 insertions, 23 deletions
diff --git a/src/usr.bin/openssl/openssl.1 b/src/usr.bin/openssl/openssl.1 index 598de60a30..ffdddb7e73 100644 --- a/src/usr.bin/openssl/openssl.1 +++ b/src/usr.bin/openssl/openssl.1 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | .\" $OpenBSD: openssl.1,v 1.118 2019/12/18 12:38:15 sthen Exp $ | 1 | .\" $OpenBSD: openssl.1,v 1.119 2020/02/16 16:39:01 jsing Exp $ |
| 2 | .\" ==================================================================== | 2 | .\" ==================================================================== |
| 3 | .\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. | 3 | .\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. |
| 4 | .\" | 4 | .\" |
| @@ -110,7 +110,7 @@ | |||
| 110 | .\" copied and put under another distribution licence | 110 | .\" copied and put under another distribution licence |
| 111 | .\" [including the GNU Public Licence.] | 111 | .\" [including the GNU Public Licence.] |
| 112 | .\" | 112 | .\" |
| 113 | .Dd $Mdocdate: December 18 2019 $ | 113 | .Dd $Mdocdate: February 16 2020 $ |
| 114 | .Dt OPENSSL 1 | 114 | .Dt OPENSSL 1 |
| 115 | .Os | 115 | .Os |
| 116 | .Sh NAME | 116 | .Sh NAME |
| @@ -4213,6 +4213,7 @@ Verify the input data and output the recovered data. | |||
| 4213 | .Op Fl no_tls1 | 4213 | .Op Fl no_tls1 |
| 4214 | .Op Fl no_tls1_1 | 4214 | .Op Fl no_tls1_1 |
| 4215 | .Op Fl no_tls1_2 | 4215 | .Op Fl no_tls1_2 |
| 4216 | .Op Fl no_tls1_3 | ||
| 4216 | .Op Fl pass Ar arg | 4217 | .Op Fl pass Ar arg |
| 4217 | .Op Fl pause | 4218 | .Op Fl pause |
| 4218 | .Op Fl policy_check | 4219 | .Op Fl policy_check |
| @@ -4233,6 +4234,7 @@ Verify the input data and output the recovered data. | |||
| 4233 | .Op Fl tls1 | 4234 | .Op Fl tls1 |
| 4234 | .Op Fl tls1_1 | 4235 | .Op Fl tls1_1 |
| 4235 | .Op Fl tls1_2 | 4236 | .Op Fl tls1_2 |
| 4237 | .Op Fl tls1_3 | ||
| 4236 | .Op Fl tlsextdebug | 4238 | .Op Fl tlsextdebug |
| 4237 | .Op Fl use_srtp Ar profiles | 4239 | .Op Fl use_srtp Ar profiles |
| 4238 | .Op Fl verify Ar depth | 4240 | .Op Fl verify Ar depth |
| @@ -4370,8 +4372,8 @@ Can be used to override the implicit | |||
| 4370 | .Fl ign_eof | 4372 | .Fl ign_eof |
| 4371 | after | 4373 | after |
| 4372 | .Fl quiet . | 4374 | .Fl quiet . |
| 4373 | .It Fl no_tls1 | no_tls1_1 | no_tls1_2 | 4375 | .It Fl no_tls1 | no_tls1_1 | no_tls1_2 | no_tls1_3 |
| 4374 | Disable the use of TLS1.0, 1.1, and 1.2, respectively. | 4376 | Disable the use of TLS1.0, 1.1, 1.2 and 1.3 respectively. |
| 4375 | .It Fl no_ticket | 4377 | .It Fl no_ticket |
| 4376 | Disable RFC 4507 session ticket support. | 4378 | Disable RFC 4507 session ticket support. |
| 4377 | .It Fl pass Ar arg | 4379 | .It Fl pass Ar arg |
| @@ -4444,8 +4446,8 @@ Send a certificate status request to the server (OCSP stapling). | |||
| 4444 | The server response (if any) is printed out. | 4446 | The server response (if any) is printed out. |
| 4445 | .It Fl timeout | 4447 | .It Fl timeout |
| 4446 | Enable send/receive timeout on DTLS connections. | 4448 | Enable send/receive timeout on DTLS connections. |
| 4447 | .It Fl tls1 | tls1_1 | tls1_2 | 4449 | .It Fl tls1 | tls1_1 | tls1_2 | tls1_3 |
| 4448 | Permit only TLS1.0, 1.1, or 1.2, respectively. | 4450 | Permit only TLS1.0, 1.1, 1.2 or 1.3 respectively. |
| 4449 | .It Fl tlsextdebug | 4451 | .It Fl tlsextdebug |
| 4450 | Print a hex dump of any TLS extensions received from the server. | 4452 | Print a hex dump of any TLS extensions received from the server. |
| 4451 | .It Fl use_srtp Ar profiles | 4453 | .It Fl use_srtp Ar profiles |
diff --git a/src/usr.bin/openssl/s_client.c b/src/usr.bin/openssl/s_client.c index 1537ebcb26..443f00505e 100644 --- a/src/usr.bin/openssl/s_client.c +++ b/src/usr.bin/openssl/s_client.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s_client.c,v 1.41 2020/01/23 03:35:54 beck Exp $ */ | 1 | /* $OpenBSD: s_client.c,v 1.42 2020/02/16 16:39:01 jsing Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -222,12 +222,13 @@ sc_usage(void) | |||
| 222 | BIO_printf(bio_err, " -quiet - no s_client output\n"); | 222 | BIO_printf(bio_err, " -quiet - no s_client output\n"); |
| 223 | BIO_printf(bio_err, " -ign_eof - ignore input eof (default when -quiet)\n"); | 223 | BIO_printf(bio_err, " -ign_eof - ignore input eof (default when -quiet)\n"); |
| 224 | BIO_printf(bio_err, " -no_ign_eof - don't ignore input eof\n"); | 224 | BIO_printf(bio_err, " -no_ign_eof - don't ignore input eof\n"); |
| 225 | BIO_printf(bio_err, " -tls1_3 - just use TLSv1.3\n"); | ||
| 225 | BIO_printf(bio_err, " -tls1_2 - just use TLSv1.2\n"); | 226 | BIO_printf(bio_err, " -tls1_2 - just use TLSv1.2\n"); |
| 226 | BIO_printf(bio_err, " -tls1_1 - just use TLSv1.1\n"); | 227 | BIO_printf(bio_err, " -tls1_1 - just use TLSv1.1\n"); |
| 227 | BIO_printf(bio_err, " -tls1 - just use TLSv1\n"); | 228 | BIO_printf(bio_err, " -tls1 - just use TLSv1\n"); |
| 228 | BIO_printf(bio_err, " -dtls1 - just use DTLSv1\n"); | 229 | BIO_printf(bio_err, " -dtls1 - just use DTLSv1\n"); |
| 229 | BIO_printf(bio_err, " -mtu - set the link layer MTU\n"); | 230 | BIO_printf(bio_err, " -mtu - set the link layer MTU\n"); |
| 230 | BIO_printf(bio_err, " -no_tls1_2/-no_tls1_1/-no_tls1/-no_ssl3/-no_ssl2 - turn off that protocol\n"); | 231 | BIO_printf(bio_err, " -no_tls1_3/-no_tls1_2/-no_tls1_1/-no_tls1 - turn off that protocol\n"); |
| 231 | BIO_printf(bio_err, " -bugs - Switch on all SSL implementation bug workarounds\n"); | 232 | BIO_printf(bio_err, " -bugs - Switch on all SSL implementation bug workarounds\n"); |
| 232 | BIO_printf(bio_err, " -cipher - preferred cipher to use, use the 'openssl ciphers'\n"); | 233 | BIO_printf(bio_err, " -cipher - preferred cipher to use, use the 'openssl ciphers'\n"); |
| 233 | BIO_printf(bio_err, " command to see what is available\n"); | 234 | BIO_printf(bio_err, " command to see what is available\n"); |
| @@ -334,6 +335,7 @@ s_client_main(int argc, char **argv) | |||
| 334 | int peerlen = sizeof(peer); | 335 | int peerlen = sizeof(peer); |
| 335 | int enable_timeouts = 0; | 336 | int enable_timeouts = 0; |
| 336 | long socket_mtu = 0; | 337 | long socket_mtu = 0; |
| 338 | uint16_t min_version = 0, max_version = 0; | ||
| 337 | 339 | ||
| 338 | if (single_execution) { | 340 | if (single_execution) { |
| 339 | if (pledge("stdio cpath wpath rpath inet dns tty", NULL) == -1) { | 341 | if (pledge("stdio cpath wpath rpath inet dns tty", NULL) == -1) { |
| @@ -342,7 +344,7 @@ s_client_main(int argc, char **argv) | |||
| 342 | } | 344 | } |
| 343 | } | 345 | } |
| 344 | 346 | ||
| 345 | meth = SSLv23_client_method(); | 347 | meth = TLS_client_method(); |
| 346 | 348 | ||
| 347 | c_Pause = 0; | 349 | c_Pause = 0; |
| 348 | c_quiet = 0; | 350 | c_quiet = 0; |
| @@ -445,15 +447,21 @@ s_client_main(int argc, char **argv) | |||
| 445 | nbio_test = 1; | 447 | nbio_test = 1; |
| 446 | else if (strcmp(*argv, "-state") == 0) | 448 | else if (strcmp(*argv, "-state") == 0) |
| 447 | state = 1; | 449 | state = 1; |
| 448 | else if (strcmp(*argv, "-tls1_2") == 0) | 450 | else if (strcmp(*argv, "-tls1_3") == 0) { |
| 449 | meth = TLSv1_2_client_method(); | 451 | min_version = TLS1_3_VERSION; |
| 450 | else if (strcmp(*argv, "-tls1_1") == 0) | 452 | max_version = TLS1_3_VERSION; |
| 451 | meth = TLSv1_1_client_method(); | 453 | } else if (strcmp(*argv, "-tls1_2") == 0) { |
| 452 | else if (strcmp(*argv, "-tls1") == 0) | 454 | min_version = TLS1_2_VERSION; |
| 453 | meth = TLSv1_client_method(); | 455 | max_version = TLS1_2_VERSION; |
| 456 | } else if (strcmp(*argv, "-tls1_1") == 0) { | ||
| 457 | min_version = TLS1_1_VERSION; | ||
| 458 | max_version = TLS1_1_VERSION; | ||
| 459 | } else if (strcmp(*argv, "-tls1") == 0) { | ||
| 460 | min_version = TLS1_VERSION; | ||
| 461 | max_version = TLS1_VERSION; | ||
| 454 | #ifndef OPENSSL_NO_DTLS1 | 462 | #ifndef OPENSSL_NO_DTLS1 |
| 455 | else if (strcmp(*argv, "-dtls1") == 0) { | 463 | } else if (strcmp(*argv, "-dtls1") == 0) { |
| 456 | meth = DTLSv1_client_method(); | 464 | meth = DTLS_client_method(); |
| 457 | socket_type = SOCK_DGRAM; | 465 | socket_type = SOCK_DGRAM; |
| 458 | } else if (strcmp(*argv, "-timeout") == 0) | 466 | } else if (strcmp(*argv, "-timeout") == 0) |
| 459 | enable_timeouts = 1; | 467 | enable_timeouts = 1; |
| @@ -489,7 +497,9 @@ s_client_main(int argc, char **argv) | |||
| 489 | if (--argc < 1) | 497 | if (--argc < 1) |
| 490 | goto bad; | 498 | goto bad; |
| 491 | CAfile = *(++argv); | 499 | CAfile = *(++argv); |
| 492 | } else if (strcmp(*argv, "-no_tls1_2") == 0) | 500 | } else if (strcmp(*argv, "-no_tls1_3") == 0) |
| 501 | off |= SSL_OP_NO_TLSv1_3; | ||
| 502 | else if (strcmp(*argv, "-no_tls1_2") == 0) | ||
| 493 | off |= SSL_OP_NO_TLSv1_2; | 503 | off |= SSL_OP_NO_TLSv1_2; |
| 494 | else if (strcmp(*argv, "-no_tls1_1") == 0) | 504 | else if (strcmp(*argv, "-no_tls1_1") == 0) |
| 495 | off |= SSL_OP_NO_TLSv1_1; | 505 | off |= SSL_OP_NO_TLSv1_1; |
| @@ -550,17 +560,14 @@ s_client_main(int argc, char **argv) | |||
| 550 | starttls_proto = PROTO_XMPP; | 560 | starttls_proto = PROTO_XMPP; |
| 551 | else | 561 | else |
| 552 | goto bad; | 562 | goto bad; |
| 553 | } | 563 | } else if (strcmp(*argv, "-4") == 0) { |
| 554 | else if (strcmp(*argv, "-4") == 0) { | ||
| 555 | af = AF_INET; | 564 | af = AF_INET; |
| 556 | } else if (strcmp(*argv, "-6") == 0) { | 565 | } else if (strcmp(*argv, "-6") == 0) { |
| 557 | af = AF_INET6; | 566 | af = AF_INET6; |
| 558 | } | 567 | } else if (strcmp(*argv, "-servername") == 0) { |
| 559 | else if (strcmp(*argv, "-servername") == 0) { | ||
| 560 | if (--argc < 1) | 568 | if (--argc < 1) |
| 561 | goto bad; | 569 | goto bad; |
| 562 | servername = *(++argv); | 570 | servername = *(++argv); |
| 563 | /* meth=TLSv1_client_method(); */ | ||
| 564 | } | 571 | } |
| 565 | #ifndef OPENSSL_NO_SRTP | 572 | #ifndef OPENSSL_NO_SRTP |
| 566 | else if (strcmp(*argv, "-use_srtp") == 0) { | 573 | else if (strcmp(*argv, "-use_srtp") == 0) { |
| @@ -649,6 +656,11 @@ s_client_main(int argc, char **argv) | |||
| 649 | if (vpm) | 656 | if (vpm) |
| 650 | SSL_CTX_set1_param(ctx, vpm); | 657 | SSL_CTX_set1_param(ctx, vpm); |
| 651 | 658 | ||
| 659 | if (!SSL_CTX_set_min_proto_version(ctx, min_version)) | ||
| 660 | goto end; | ||
| 661 | if (!SSL_CTX_set_max_proto_version(ctx, max_version)) | ||
| 662 | goto end; | ||
| 663 | |||
| 652 | #ifndef OPENSSL_NO_SRTP | 664 | #ifndef OPENSSL_NO_SRTP |
| 653 | if (srtp_profiles != NULL) | 665 | if (srtp_profiles != NULL) |
| 654 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); | 666 | SSL_CTX_set_tlsext_use_srtp(ctx, srtp_profiles); |
