summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s23_srvr.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/s23_srvr.c')
-rw-r--r--src/lib/libssl/s23_srvr.c52
1 files changed, 4 insertions, 48 deletions
diff --git a/src/lib/libssl/s23_srvr.c b/src/lib/libssl/s23_srvr.c
index 4877849013..836dd1f1cf 100644
--- a/src/lib/libssl/s23_srvr.c
+++ b/src/lib/libssl/s23_srvr.c
@@ -115,9 +115,6 @@
115#include <openssl/rand.h> 115#include <openssl/rand.h>
116#include <openssl/objects.h> 116#include <openssl/objects.h>
117#include <openssl/evp.h> 117#include <openssl/evp.h>
118#ifdef OPENSSL_FIPS
119#include <openssl/fips.h>
120#endif
121 118
122static const SSL_METHOD *ssl23_get_server_method(int ver); 119static const SSL_METHOD *ssl23_get_server_method(int ver);
123int ssl23_get_client_hello(SSL *s); 120int ssl23_get_client_hello(SSL *s);
@@ -131,10 +128,6 @@ static const SSL_METHOD *ssl23_get_server_method(int ver)
131 return(SSLv3_server_method()); 128 return(SSLv3_server_method());
132 else if (ver == TLS1_VERSION) 129 else if (ver == TLS1_VERSION)
133 return(TLSv1_server_method()); 130 return(TLSv1_server_method());
134 else if (ver == TLS1_1_VERSION)
135 return(TLSv1_1_server_method());
136 else if (ver == TLS1_2_VERSION)
137 return(TLSv1_2_server_method());
138 else 131 else
139 return(NULL); 132 return(NULL);
140 } 133 }
@@ -290,20 +283,7 @@ int ssl23_get_client_hello(SSL *s)
290 /* SSLv3/TLSv1 */ 283 /* SSLv3/TLSv1 */
291 if (p[4] >= TLS1_VERSION_MINOR) 284 if (p[4] >= TLS1_VERSION_MINOR)
292 { 285 {
293 if (p[4] >= TLS1_2_VERSION_MINOR && 286 if (!(s->options & SSL_OP_NO_TLSv1))
294 !(s->options & SSL_OP_NO_TLSv1_2))
295 {
296 s->version=TLS1_2_VERSION;
297 s->state=SSL23_ST_SR_CLNT_HELLO_B;
298 }
299 else if (p[4] >= TLS1_1_VERSION_MINOR &&
300 !(s->options & SSL_OP_NO_TLSv1_1))
301 {
302 s->version=TLS1_1_VERSION;
303 /* type=2; */ /* done later to survive restarts */
304 s->state=SSL23_ST_SR_CLNT_HELLO_B;
305 }
306 else if (!(s->options & SSL_OP_NO_TLSv1))
307 { 287 {
308 s->version=TLS1_VERSION; 288 s->version=TLS1_VERSION;
309 /* type=2; */ /* done later to survive restarts */ 289 /* type=2; */ /* done later to survive restarts */
@@ -370,19 +350,7 @@ int ssl23_get_client_hello(SSL *s)
370 v[1]=p[10]; /* minor version according to client_version */ 350 v[1]=p[10]; /* minor version according to client_version */
371 if (v[1] >= TLS1_VERSION_MINOR) 351 if (v[1] >= TLS1_VERSION_MINOR)
372 { 352 {
373 if (v[1] >= TLS1_2_VERSION_MINOR && 353 if (!(s->options & SSL_OP_NO_TLSv1))
374 !(s->options & SSL_OP_NO_TLSv1_2))
375 {
376 s->version=TLS1_2_VERSION;
377 type=3;
378 }
379 else if (v[1] >= TLS1_1_VERSION_MINOR &&
380 !(s->options & SSL_OP_NO_TLSv1_1))
381 {
382 s->version=TLS1_1_VERSION;
383 type=3;
384 }
385 else if (!(s->options & SSL_OP_NO_TLSv1))
386 { 354 {
387 s->version=TLS1_VERSION; 355 s->version=TLS1_VERSION;
388 type=3; 356 type=3;
@@ -425,15 +393,6 @@ int ssl23_get_client_hello(SSL *s)
425 } 393 }
426 } 394 }
427 395
428#ifdef OPENSSL_FIPS
429 if (FIPS_mode() && (s->version < TLS1_VERSION))
430 {
431 SSLerr(SSL_F_SSL23_GET_CLIENT_HELLO,
432 SSL_R_ONLY_TLS_ALLOWED_IN_FIPS_MODE);
433 goto err;
434 }
435#endif
436
437 if (s->state == SSL23_ST_SR_CLNT_HELLO_B) 396 if (s->state == SSL23_ST_SR_CLNT_HELLO_B)
438 { 397 {
439 /* we have SSLv3/TLSv1 in an SSLv2 header 398 /* we have SSLv3/TLSv1 in an SSLv2 header
@@ -608,11 +567,8 @@ int ssl23_get_client_hello(SSL *s)
608 s->s3->rbuf.left=0; 567 s->s3->rbuf.left=0;
609 s->s3->rbuf.offset=0; 568 s->s3->rbuf.offset=0;
610 } 569 }
611 if (s->version == TLS1_2_VERSION) 570
612 s->method = TLSv1_2_server_method(); 571 if (s->version == TLS1_VERSION)
613 else if (s->version == TLS1_1_VERSION)
614 s->method = TLSv1_1_server_method();
615 else if (s->version == TLS1_VERSION)
616 s->method = TLSv1_server_method(); 572 s->method = TLSv1_server_method();
617 else 573 else
618 s->method = SSLv3_server_method(); 574 s->method = SSLv3_server_method();