summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libssl/ssl_lib.c4
-rw-r--r--src/lib/libssl/ssl_locl.h3
-rw-r--r--src/lib/libssl/ssl_methods.c18
3 files changed, 21 insertions, 4 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c
index 32c1aef017..374342c311 100644
--- a/src/lib/libssl/ssl_lib.c
+++ b/src/lib/libssl/ssl_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_lib.c,v 1.206 2019/11/04 19:17:28 otto Exp $ */ 1/* $OpenBSD: ssl_lib.c,v 1.207 2019/11/17 19:07:07 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 *
@@ -1012,7 +1012,7 @@ SSL_shutdown(SSL *s)
1012 } 1012 }
1013 1013
1014 if (s != NULL && !SSL_in_init(s)) 1014 if (s != NULL && !SSL_in_init(s))
1015 return (ssl3_shutdown(s)); 1015 return (s->method->internal->ssl_shutdown(s));
1016 1016
1017 return (1); 1017 return (1);
1018} 1018}
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h
index c3c762a5fa..f9c75f8a7f 100644
--- a/src/lib/libssl/ssl_locl.h
+++ b/src/lib/libssl/ssl_locl.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_locl.h,v 1.247 2019/04/22 15:12:20 jsing Exp $ */ 1/* $OpenBSD: ssl_locl.h,v 1.248 2019/11/17 19:07:07 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 *
@@ -376,6 +376,7 @@ typedef struct ssl_method_internal_st {
376 376
377 int (*ssl_accept)(SSL *s); 377 int (*ssl_accept)(SSL *s);
378 int (*ssl_connect)(SSL *s); 378 int (*ssl_connect)(SSL *s);
379 int (*ssl_shutdown)(SSL *s);
379 380
380 int (*ssl_renegotiate)(SSL *s); 381 int (*ssl_renegotiate)(SSL *s);
381 int (*ssl_renegotiate_check)(SSL *s); 382 int (*ssl_renegotiate_check)(SSL *s);
diff --git a/src/lib/libssl/ssl_methods.c b/src/lib/libssl/ssl_methods.c
index df99d98c8a..5a62a7adc4 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.4 2019/03/17 17:28:08 jsing Exp $ */ 1/* $OpenBSD: ssl_methods.c,v 1.5 2019/11/17 19:07:07 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 *
@@ -68,6 +68,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_client_method_internal_data = {
68 .ssl_free = dtls1_free, 68 .ssl_free = dtls1_free,
69 .ssl_accept = ssl_undefined_function, 69 .ssl_accept = ssl_undefined_function,
70 .ssl_connect = ssl3_connect, 70 .ssl_connect = ssl3_connect,
71 .ssl_shutdown = ssl3_shutdown,
71 .get_ssl_method = dtls1_get_client_method, 72 .get_ssl_method = dtls1_get_client_method,
72 .get_timeout = dtls1_default_timeout, 73 .get_timeout = dtls1_default_timeout,
73 .ssl_version = ssl_undefined_void_function, 74 .ssl_version = ssl_undefined_void_function,
@@ -119,6 +120,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = {
119 .ssl_free = dtls1_free, 120 .ssl_free = dtls1_free,
120 .ssl_accept = ssl3_accept, 121 .ssl_accept = ssl3_accept,
121 .ssl_connect = ssl3_connect, 122 .ssl_connect = ssl3_connect,
123 .ssl_shutdown = ssl3_shutdown,
122 .get_ssl_method = dtls1_get_method, 124 .get_ssl_method = dtls1_get_method,
123 .get_timeout = dtls1_default_timeout, 125 .get_timeout = dtls1_default_timeout,
124 .ssl_version = ssl_undefined_void_function, 126 .ssl_version = ssl_undefined_void_function,
@@ -168,6 +170,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_server_method_internal_data = {
168 .ssl_free = dtls1_free, 170 .ssl_free = dtls1_free,
169 .ssl_accept = ssl3_accept, 171 .ssl_accept = ssl3_accept,
170 .ssl_connect = ssl_undefined_function, 172 .ssl_connect = ssl_undefined_function,
173 .ssl_shutdown = ssl3_shutdown,
171 .get_ssl_method = dtls1_get_server_method, 174 .get_ssl_method = dtls1_get_server_method,
172 .get_timeout = dtls1_default_timeout, 175 .get_timeout = dtls1_default_timeout,
173 .ssl_version = ssl_undefined_void_function, 176 .ssl_version = ssl_undefined_void_function,
@@ -218,6 +221,7 @@ static const SSL_METHOD_INTERNAL TLS_client_method_internal_data = {
218 .ssl_free = tls1_free, 221 .ssl_free = tls1_free,
219 .ssl_accept = ssl_undefined_function, 222 .ssl_accept = ssl_undefined_function,
220 .ssl_connect = tls13_legacy_connect, 223 .ssl_connect = tls13_legacy_connect,
224 .ssl_shutdown = ssl3_shutdown,
221 .get_ssl_method = tls1_get_client_method, 225 .get_ssl_method = tls1_get_client_method,
222 .get_timeout = tls1_default_timeout, 226 .get_timeout = tls1_default_timeout,
223 .ssl_version = ssl_undefined_void_function, 227 .ssl_version = ssl_undefined_void_function,
@@ -248,6 +252,7 @@ static const SSL_METHOD_INTERNAL TLS_legacy_client_method_internal_data = {
248 .ssl_free = tls1_free, 252 .ssl_free = tls1_free,
249 .ssl_accept = ssl_undefined_function, 253 .ssl_accept = ssl_undefined_function,
250 .ssl_connect = ssl3_connect, 254 .ssl_connect = ssl3_connect,
255 .ssl_shutdown = ssl3_shutdown,
251 .get_ssl_method = tls1_get_client_method, 256 .get_ssl_method = tls1_get_client_method,
252 .get_timeout = tls1_default_timeout, 257 .get_timeout = tls1_default_timeout,
253 .ssl_version = ssl_undefined_void_function, 258 .ssl_version = ssl_undefined_void_function,
@@ -277,6 +282,7 @@ static const SSL_METHOD_INTERNAL TLSv1_client_method_internal_data = {
277 .ssl_free = tls1_free, 282 .ssl_free = tls1_free,
278 .ssl_accept = ssl_undefined_function, 283 .ssl_accept = ssl_undefined_function,
279 .ssl_connect = ssl3_connect, 284 .ssl_connect = ssl3_connect,
285 .ssl_shutdown = ssl3_shutdown,
280 .get_ssl_method = tls1_get_client_method, 286 .get_ssl_method = tls1_get_client_method,
281 .get_timeout = tls1_default_timeout, 287 .get_timeout = tls1_default_timeout,
282 .ssl_version = ssl_undefined_void_function, 288 .ssl_version = ssl_undefined_void_function,
@@ -306,6 +312,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_client_method_internal_data = {
306 .ssl_free = tls1_free, 312 .ssl_free = tls1_free,
307 .ssl_accept = ssl_undefined_function, 313 .ssl_accept = ssl_undefined_function,
308 .ssl_connect = ssl3_connect, 314 .ssl_connect = ssl3_connect,
315 .ssl_shutdown = ssl3_shutdown,
309 .get_ssl_method = tls1_get_client_method, 316 .get_ssl_method = tls1_get_client_method,
310 .get_timeout = tls1_default_timeout, 317 .get_timeout = tls1_default_timeout,
311 .ssl_version = ssl_undefined_void_function, 318 .ssl_version = ssl_undefined_void_function,
@@ -335,6 +342,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_client_method_internal_data = {
335 .ssl_free = tls1_free, 342 .ssl_free = tls1_free,
336 .ssl_accept = ssl_undefined_function, 343 .ssl_accept = ssl_undefined_function,
337 .ssl_connect = ssl3_connect, 344 .ssl_connect = ssl3_connect,
345 .ssl_shutdown = ssl3_shutdown,
338 .get_ssl_method = tls1_get_client_method, 346 .get_ssl_method = tls1_get_client_method,
339 .get_timeout = tls1_default_timeout, 347 .get_timeout = tls1_default_timeout,
340 .ssl_version = ssl_undefined_void_function, 348 .ssl_version = ssl_undefined_void_function,
@@ -418,6 +426,7 @@ static const SSL_METHOD_INTERNAL TLS_method_internal_data = {
418 .ssl_free = tls1_free, 426 .ssl_free = tls1_free,
419 .ssl_accept = ssl3_accept, 427 .ssl_accept = ssl3_accept,
420 .ssl_connect = ssl3_connect, 428 .ssl_connect = ssl3_connect,
429 .ssl_shutdown = ssl3_shutdown,
421 .get_ssl_method = tls1_get_method, 430 .get_ssl_method = tls1_get_method,
422 .get_timeout = tls1_default_timeout, 431 .get_timeout = tls1_default_timeout,
423 .ssl_version = ssl_undefined_void_function, 432 .ssl_version = ssl_undefined_void_function,
@@ -447,6 +456,7 @@ static const SSL_METHOD_INTERNAL TLSv1_method_internal_data = {
447 .ssl_free = tls1_free, 456 .ssl_free = tls1_free,
448 .ssl_accept = ssl3_accept, 457 .ssl_accept = ssl3_accept,
449 .ssl_connect = ssl3_connect, 458 .ssl_connect = ssl3_connect,
459 .ssl_shutdown = ssl3_shutdown,
450 .get_ssl_method = tls1_get_method, 460 .get_ssl_method = tls1_get_method,
451 .get_timeout = tls1_default_timeout, 461 .get_timeout = tls1_default_timeout,
452 .ssl_version = ssl_undefined_void_function, 462 .ssl_version = ssl_undefined_void_function,
@@ -476,6 +486,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_method_internal_data = {
476 .ssl_free = tls1_free, 486 .ssl_free = tls1_free,
477 .ssl_accept = ssl3_accept, 487 .ssl_accept = ssl3_accept,
478 .ssl_connect = ssl3_connect, 488 .ssl_connect = ssl3_connect,
489 .ssl_shutdown = ssl3_shutdown,
479 .get_ssl_method = tls1_get_method, 490 .get_ssl_method = tls1_get_method,
480 .get_timeout = tls1_default_timeout, 491 .get_timeout = tls1_default_timeout,
481 .ssl_version = ssl_undefined_void_function, 492 .ssl_version = ssl_undefined_void_function,
@@ -505,6 +516,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_method_internal_data = {
505 .ssl_free = tls1_free, 516 .ssl_free = tls1_free,
506 .ssl_accept = ssl3_accept, 517 .ssl_accept = ssl3_accept,
507 .ssl_connect = ssl3_connect, 518 .ssl_connect = ssl3_connect,
519 .ssl_shutdown = ssl3_shutdown,
508 .get_ssl_method = tls1_get_method, 520 .get_ssl_method = tls1_get_method,
509 .get_timeout = tls1_default_timeout, 521 .get_timeout = tls1_default_timeout,
510 .ssl_version = ssl_undefined_void_function, 522 .ssl_version = ssl_undefined_void_function,
@@ -576,6 +588,7 @@ static const SSL_METHOD_INTERNAL TLS_server_method_internal_data = {
576 .ssl_free = tls1_free, 588 .ssl_free = tls1_free,
577 .ssl_accept = ssl3_accept, 589 .ssl_accept = ssl3_accept,
578 .ssl_connect = ssl_undefined_function, 590 .ssl_connect = ssl_undefined_function,
591 .ssl_shutdown = ssl3_shutdown,
579 .get_ssl_method = tls1_get_server_method, 592 .get_ssl_method = tls1_get_server_method,
580 .get_timeout = tls1_default_timeout, 593 .get_timeout = tls1_default_timeout,
581 .ssl_version = ssl_undefined_void_function, 594 .ssl_version = ssl_undefined_void_function,
@@ -605,6 +618,7 @@ static const SSL_METHOD_INTERNAL TLSv1_server_method_internal_data = {
605 .ssl_free = tls1_free, 618 .ssl_free = tls1_free,
606 .ssl_accept = ssl3_accept, 619 .ssl_accept = ssl3_accept,
607 .ssl_connect = ssl_undefined_function, 620 .ssl_connect = ssl_undefined_function,
621 .ssl_shutdown = ssl3_shutdown,
608 .get_ssl_method = tls1_get_server_method, 622 .get_ssl_method = tls1_get_server_method,
609 .get_timeout = tls1_default_timeout, 623 .get_timeout = tls1_default_timeout,
610 .ssl_version = ssl_undefined_void_function, 624 .ssl_version = ssl_undefined_void_function,
@@ -634,6 +648,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_server_method_internal_data = {
634 .ssl_free = tls1_free, 648 .ssl_free = tls1_free,
635 .ssl_accept = ssl3_accept, 649 .ssl_accept = ssl3_accept,
636 .ssl_connect = ssl_undefined_function, 650 .ssl_connect = ssl_undefined_function,
651 .ssl_shutdown = ssl3_shutdown,
637 .get_ssl_method = tls1_get_server_method, 652 .get_ssl_method = tls1_get_server_method,
638 .get_timeout = tls1_default_timeout, 653 .get_timeout = tls1_default_timeout,
639 .ssl_version = ssl_undefined_void_function, 654 .ssl_version = ssl_undefined_void_function,
@@ -663,6 +678,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_server_method_internal_data = {
663 .ssl_free = tls1_free, 678 .ssl_free = tls1_free,
664 .ssl_accept = ssl3_accept, 679 .ssl_accept = ssl3_accept,
665 .ssl_connect = ssl_undefined_function, 680 .ssl_connect = ssl_undefined_function,
681 .ssl_shutdown = ssl3_shutdown,
666 .get_ssl_method = tls1_get_server_method, 682 .get_ssl_method = tls1_get_server_method,
667 .get_timeout = tls1_default_timeout, 683 .get_timeout = tls1_default_timeout,
668 .ssl_version = ssl_undefined_void_function, 684 .ssl_version = ssl_undefined_void_function,