diff options
Diffstat (limited to 'src/lib/libssl/ssl_methods.c')
-rw-r--r-- | src/lib/libssl/ssl_methods.c | 48 |
1 files changed, 45 insertions, 3 deletions
diff --git a/src/lib/libssl/ssl_methods.c b/src/lib/libssl/ssl_methods.c index 8e544f6e93..30838f7407 100644 --- a/src/lib/libssl/ssl_methods.c +++ b/src/lib/libssl/ssl_methods.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_methods.c,v 1.7 2020/01/22 02:34:39 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_methods.c,v 1.8 2020/01/22 15:47:22 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 | * |
@@ -579,7 +579,39 @@ TLSv1_2_method(void) | |||
579 | return (&TLSv1_2_method_data); | 579 | return (&TLSv1_2_method_data); |
580 | } | 580 | } |
581 | 581 | ||
582 | #ifdef LIBRESSL_HAS_TLS1_3_SERVER | ||
582 | static const SSL_METHOD_INTERNAL TLS_server_method_internal_data = { | 583 | static const SSL_METHOD_INTERNAL TLS_server_method_internal_data = { |
584 | .version = TLS1_3_VERSION, | ||
585 | .min_version = TLS1_VERSION, | ||
586 | .max_version = TLS1_3_VERSION, | ||
587 | .ssl_new = tls1_new, | ||
588 | .ssl_clear = tls1_clear, | ||
589 | .ssl_free = tls1_free, | ||
590 | .ssl_accept = tls13_legacy_accept, | ||
591 | .ssl_connect = ssl_undefined_function, | ||
592 | .ssl_shutdown = tls13_legacy_shutdown, | ||
593 | .get_ssl_method = tls1_get_server_method, | ||
594 | .get_timeout = tls1_default_timeout, | ||
595 | .ssl_version = ssl_undefined_void_function, | ||
596 | .ssl_renegotiate = ssl_undefined_function, | ||
597 | .ssl_renegotiate_check = ssl_ok, | ||
598 | .ssl_get_message = ssl3_get_message, | ||
599 | .ssl_read_bytes = tls13_legacy_read_bytes, | ||
600 | .ssl_write_bytes = tls13_legacy_write_bytes, | ||
601 | .ssl3_enc = &TLSv1_2_enc_data, | ||
602 | }; | ||
603 | |||
604 | static const SSL_METHOD TLS_server_method_data = { | ||
605 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
606 | .num_ciphers = ssl3_num_ciphers, | ||
607 | .get_cipher = ssl3_get_cipher, | ||
608 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
609 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
610 | .internal = &TLS_server_method_internal_data, | ||
611 | }; | ||
612 | #endif | ||
613 | |||
614 | static const SSL_METHOD_INTERNAL TLS_legacy_server_method_internal_data = { | ||
583 | .version = TLS1_2_VERSION, | 615 | .version = TLS1_2_VERSION, |
584 | .min_version = TLS1_VERSION, | 616 | .min_version = TLS1_VERSION, |
585 | .max_version = TLS1_2_VERSION, | 617 | .max_version = TLS1_2_VERSION, |
@@ -600,13 +632,13 @@ static const SSL_METHOD_INTERNAL TLS_server_method_internal_data = { | |||
600 | .ssl3_enc = &TLSv1_2_enc_data, | 632 | .ssl3_enc = &TLSv1_2_enc_data, |
601 | }; | 633 | }; |
602 | 634 | ||
603 | static const SSL_METHOD TLS_server_method_data = { | 635 | static const SSL_METHOD TLS_legacy_server_method_data = { |
604 | .ssl_dispatch_alert = ssl3_dispatch_alert, | 636 | .ssl_dispatch_alert = ssl3_dispatch_alert, |
605 | .num_ciphers = ssl3_num_ciphers, | 637 | .num_ciphers = ssl3_num_ciphers, |
606 | .get_cipher = ssl3_get_cipher, | 638 | .get_cipher = ssl3_get_cipher, |
607 | .get_cipher_by_char = ssl3_get_cipher_by_char, | 639 | .get_cipher_by_char = ssl3_get_cipher_by_char, |
608 | .put_cipher_by_char = ssl3_put_cipher_by_char, | 640 | .put_cipher_by_char = ssl3_put_cipher_by_char, |
609 | .internal = &TLS_server_method_internal_data, | 641 | .internal = &TLS_legacy_server_method_internal_data, |
610 | }; | 642 | }; |
611 | 643 | ||
612 | static const SSL_METHOD_INTERNAL TLSv1_server_method_internal_data = { | 644 | static const SSL_METHOD_INTERNAL TLSv1_server_method_internal_data = { |
@@ -720,7 +752,17 @@ SSLv23_server_method(void) | |||
720 | const SSL_METHOD * | 752 | const SSL_METHOD * |
721 | TLS_server_method(void) | 753 | TLS_server_method(void) |
722 | { | 754 | { |
755 | #ifdef LIBRESSL_HAS_TLS1_3_SERVER | ||
723 | return (&TLS_server_method_data); | 756 | return (&TLS_server_method_data); |
757 | #else | ||
758 | return tls_legacy_server_method(); | ||
759 | #endif | ||
760 | } | ||
761 | |||
762 | const SSL_METHOD * | ||
763 | tls_legacy_server_method(void) | ||
764 | { | ||
765 | return (&TLS_legacy_server_method_data); | ||
724 | } | 766 | } |
725 | 767 | ||
726 | const SSL_METHOD * | 768 | const SSL_METHOD * |