diff options
author | jsing <> | 2019-11-17 19:07:07 +0000 |
---|---|---|
committer | jsing <> | 2019-11-17 19:07:07 +0000 |
commit | 2e3ba6ffb663e8c3e72862f39176110970a03b64 (patch) | |
tree | 07a26b028fa8d925d1c9211f2dfb1cc3b83205c6 /src/lib | |
parent | f27565e2fca9e66b5ba88b8f48a25a26acd61f88 (diff) | |
download | openbsd-2e3ba6ffb663e8c3e72862f39176110970a03b64.tar.gz openbsd-2e3ba6ffb663e8c3e72862f39176110970a03b64.tar.bz2 openbsd-2e3ba6ffb663e8c3e72862f39176110970a03b64.zip |
Bring back the ssl_shutdown internal method pointer.
For now ssl3_shutdown() is called in all cases, however TLSv1.3 will soon
get its own version.
ok beck@
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 4 | ||||
-rw-r--r-- | src/lib/libssl/ssl_locl.h | 3 | ||||
-rw-r--r-- | src/lib/libssl/ssl_methods.c | 18 |
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, |