diff options
| author | jsing <> | 2020-01-23 03:17:40 +0000 |
|---|---|---|
| committer | jsing <> | 2020-01-23 03:17:40 +0000 |
| commit | 7ecf22796e9d8d8a9545f50ff1753233a503eccc (patch) | |
| tree | 0ef2c65adc26f279aea716841857cfd27cc33036 | |
| parent | 7f4d6ebbe0ac3623241a9fb8708f7186d0687cff (diff) | |
| download | openbsd-7ecf22796e9d8d8a9545f50ff1753233a503eccc.tar.gz openbsd-7ecf22796e9d8d8a9545f50ff1753233a503eccc.tar.bz2 openbsd-7ecf22796e9d8d8a9545f50ff1753233a503eccc.zip | |
Switch back to a function pointer for ssl_pending.
This will allow the TLSv1.3 stack to provide its own implementation. Nuke
a completely bogus comment from SSL_pending() whilst here.
ok beck@
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_lib.c | 12 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_locl.h | 7 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_methods.c | 19 |
3 files changed, 24 insertions, 14 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index a667b5d294..1b141b6e2c 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.208 2020/01/21 04:45:18 tb Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.209 2020/01/23 03:17:40 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 | * |
| @@ -802,15 +802,7 @@ SSL_get_read_ahead(const SSL *s) | |||
| 802 | int | 802 | int |
| 803 | SSL_pending(const SSL *s) | 803 | SSL_pending(const SSL *s) |
| 804 | { | 804 | { |
| 805 | /* | 805 | return (s->method->internal->ssl_pending(s)); |
| 806 | * SSL_pending cannot work properly if read-ahead is enabled | ||
| 807 | * (SSL_[CTX_]ctrl(..., SSL_CTRL_SET_READ_AHEAD, 1, NULL)), | ||
| 808 | * and it is impossible to fix since SSL_pending cannot report | ||
| 809 | * errors that may be observed while scanning the new data. | ||
| 810 | * (Note that SSL_pending() is often used as a boolean value, | ||
| 811 | * so we'd better not return -1.) | ||
| 812 | */ | ||
| 813 | return (ssl3_pending(s)); | ||
| 814 | } | 806 | } |
| 815 | 807 | ||
| 816 | X509 * | 808 | X509 * |
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index 1c60f10684..8649f651fa 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.252 2020/01/22 15:47:22 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_locl.h,v 1.253 2020/01/23 03:17:40 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 | * |
| @@ -391,8 +391,9 @@ typedef struct ssl_method_internal_st { | |||
| 391 | 391 | ||
| 392 | long (*ssl_get_message)(SSL *s, int st1, int stn, int mt, | 392 | long (*ssl_get_message)(SSL *s, int st1, int stn, int mt, |
| 393 | long max, int *ok); | 393 | long max, int *ok); |
| 394 | int (*ssl_read_bytes)(SSL *s, int type, unsigned char *buf, | 394 | int (*ssl_pending)(const SSL *s); |
| 395 | int len, int peek); | 395 | int (*ssl_read_bytes)(SSL *s, int type, unsigned char *buf, int len, |
| 396 | int peek); | ||
| 396 | int (*ssl_write_bytes)(SSL *s, int type, const void *buf_, int len); | 397 | int (*ssl_write_bytes)(SSL *s, int type, const void *buf_, int len); |
| 397 | 398 | ||
| 398 | const struct ssl_method_st *(*get_ssl_method)(int version); | 399 | const struct ssl_method_st *(*get_ssl_method)(int version); |
diff --git a/src/lib/libssl/ssl_methods.c b/src/lib/libssl/ssl_methods.c index 30838f7407..355cd8823a 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.8 2020/01/22 15:47:22 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_methods.c,v 1.9 2020/01/23 03:17:40 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 | * |
| @@ -75,6 +75,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_client_method_internal_data = { | |||
| 75 | .ssl_renegotiate = ssl3_renegotiate, | 75 | .ssl_renegotiate = ssl3_renegotiate, |
| 76 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 76 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 77 | .ssl_get_message = dtls1_get_message, | 77 | .ssl_get_message = dtls1_get_message, |
| 78 | .ssl_pending = ssl3_pending, | ||
| 78 | .ssl_read_bytes = dtls1_read_bytes, | 79 | .ssl_read_bytes = dtls1_read_bytes, |
| 79 | .ssl_write_bytes = dtls1_write_app_data_bytes, | 80 | .ssl_write_bytes = dtls1_write_app_data_bytes, |
| 80 | .ssl3_enc = &DTLSv1_enc_data, | 81 | .ssl3_enc = &DTLSv1_enc_data, |
| @@ -127,6 +128,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_method_internal_data = { | |||
| 127 | .ssl_renegotiate = ssl3_renegotiate, | 128 | .ssl_renegotiate = ssl3_renegotiate, |
| 128 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 129 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 129 | .ssl_get_message = dtls1_get_message, | 130 | .ssl_get_message = dtls1_get_message, |
| 131 | .ssl_pending = ssl3_pending, | ||
| 130 | .ssl_read_bytes = dtls1_read_bytes, | 132 | .ssl_read_bytes = dtls1_read_bytes, |
| 131 | .ssl_write_bytes = dtls1_write_app_data_bytes, | 133 | .ssl_write_bytes = dtls1_write_app_data_bytes, |
| 132 | .ssl3_enc = &DTLSv1_enc_data, | 134 | .ssl3_enc = &DTLSv1_enc_data, |
| @@ -177,6 +179,7 @@ static const SSL_METHOD_INTERNAL DTLSv1_server_method_internal_data = { | |||
| 177 | .ssl_renegotiate = ssl3_renegotiate, | 179 | .ssl_renegotiate = ssl3_renegotiate, |
| 178 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 180 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 179 | .ssl_get_message = dtls1_get_message, | 181 | .ssl_get_message = dtls1_get_message, |
| 182 | .ssl_pending = ssl3_pending, | ||
| 180 | .ssl_read_bytes = dtls1_read_bytes, | 183 | .ssl_read_bytes = dtls1_read_bytes, |
| 181 | .ssl_write_bytes = dtls1_write_app_data_bytes, | 184 | .ssl_write_bytes = dtls1_write_app_data_bytes, |
| 182 | .ssl3_enc = &DTLSv1_enc_data, | 185 | .ssl3_enc = &DTLSv1_enc_data, |
| @@ -228,6 +231,7 @@ static const SSL_METHOD_INTERNAL TLS_client_method_internal_data = { | |||
| 228 | .ssl_renegotiate = ssl_undefined_function, | 231 | .ssl_renegotiate = ssl_undefined_function, |
| 229 | .ssl_renegotiate_check = ssl_ok, | 232 | .ssl_renegotiate_check = ssl_ok, |
| 230 | .ssl_get_message = ssl3_get_message, | 233 | .ssl_get_message = ssl3_get_message, |
| 234 | .ssl_pending = ssl3_pending, | ||
| 231 | .ssl_read_bytes = tls13_legacy_read_bytes, | 235 | .ssl_read_bytes = tls13_legacy_read_bytes, |
| 232 | .ssl_write_bytes = tls13_legacy_write_bytes, | 236 | .ssl_write_bytes = tls13_legacy_write_bytes, |
| 233 | .ssl3_enc = &TLSv1_2_enc_data, | 237 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -259,6 +263,7 @@ static const SSL_METHOD_INTERNAL TLS_legacy_client_method_internal_data = { | |||
| 259 | .ssl_renegotiate = ssl_undefined_function, | 263 | .ssl_renegotiate = ssl_undefined_function, |
| 260 | .ssl_renegotiate_check = ssl_ok, | 264 | .ssl_renegotiate_check = ssl_ok, |
| 261 | .ssl_get_message = ssl3_get_message, | 265 | .ssl_get_message = ssl3_get_message, |
| 266 | .ssl_pending = ssl3_pending, | ||
| 262 | .ssl_read_bytes = ssl3_read_bytes, | 267 | .ssl_read_bytes = ssl3_read_bytes, |
| 263 | .ssl_write_bytes = ssl3_write_bytes, | 268 | .ssl_write_bytes = ssl3_write_bytes, |
| 264 | .ssl3_enc = &TLSv1_2_enc_data, | 269 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -289,6 +294,7 @@ static const SSL_METHOD_INTERNAL TLSv1_client_method_internal_data = { | |||
| 289 | .ssl_renegotiate = ssl3_renegotiate, | 294 | .ssl_renegotiate = ssl3_renegotiate, |
| 290 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 295 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 291 | .ssl_get_message = ssl3_get_message, | 296 | .ssl_get_message = ssl3_get_message, |
| 297 | .ssl_pending = ssl3_pending, | ||
| 292 | .ssl_read_bytes = ssl3_read_bytes, | 298 | .ssl_read_bytes = ssl3_read_bytes, |
| 293 | .ssl_write_bytes = ssl3_write_bytes, | 299 | .ssl_write_bytes = ssl3_write_bytes, |
| 294 | .ssl3_enc = &TLSv1_enc_data, | 300 | .ssl3_enc = &TLSv1_enc_data, |
| @@ -319,6 +325,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_client_method_internal_data = { | |||
| 319 | .ssl_renegotiate = ssl3_renegotiate, | 325 | .ssl_renegotiate = ssl3_renegotiate, |
| 320 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 326 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 321 | .ssl_get_message = ssl3_get_message, | 327 | .ssl_get_message = ssl3_get_message, |
| 328 | .ssl_pending = ssl3_pending, | ||
| 322 | .ssl_read_bytes = ssl3_read_bytes, | 329 | .ssl_read_bytes = ssl3_read_bytes, |
| 323 | .ssl_write_bytes = ssl3_write_bytes, | 330 | .ssl_write_bytes = ssl3_write_bytes, |
| 324 | .ssl3_enc = &TLSv1_1_enc_data, | 331 | .ssl3_enc = &TLSv1_1_enc_data, |
| @@ -349,6 +356,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_client_method_internal_data = { | |||
| 349 | .ssl_renegotiate = ssl3_renegotiate, | 356 | .ssl_renegotiate = ssl3_renegotiate, |
| 350 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 357 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 351 | .ssl_get_message = ssl3_get_message, | 358 | .ssl_get_message = ssl3_get_message, |
| 359 | .ssl_pending = ssl3_pending, | ||
| 352 | .ssl_read_bytes = ssl3_read_bytes, | 360 | .ssl_read_bytes = ssl3_read_bytes, |
| 353 | .ssl_write_bytes = ssl3_write_bytes, | 361 | .ssl_write_bytes = ssl3_write_bytes, |
| 354 | .ssl3_enc = &TLSv1_2_enc_data, | 362 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -433,6 +441,7 @@ static const SSL_METHOD_INTERNAL TLS_method_internal_data = { | |||
| 433 | .ssl_renegotiate = ssl_undefined_function, | 441 | .ssl_renegotiate = ssl_undefined_function, |
| 434 | .ssl_renegotiate_check = ssl_ok, | 442 | .ssl_renegotiate_check = ssl_ok, |
| 435 | .ssl_get_message = ssl3_get_message, | 443 | .ssl_get_message = ssl3_get_message, |
| 444 | .ssl_pending = ssl3_pending, | ||
| 436 | .ssl_read_bytes = ssl3_read_bytes, | 445 | .ssl_read_bytes = ssl3_read_bytes, |
| 437 | .ssl_write_bytes = ssl3_write_bytes, | 446 | .ssl_write_bytes = ssl3_write_bytes, |
| 438 | .ssl3_enc = &TLSv1_2_enc_data, | 447 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -463,6 +472,7 @@ static const SSL_METHOD_INTERNAL TLSv1_method_internal_data = { | |||
| 463 | .ssl_renegotiate = ssl3_renegotiate, | 472 | .ssl_renegotiate = ssl3_renegotiate, |
| 464 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 473 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 465 | .ssl_get_message = ssl3_get_message, | 474 | .ssl_get_message = ssl3_get_message, |
| 475 | .ssl_pending = ssl3_pending, | ||
| 466 | .ssl_read_bytes = ssl3_read_bytes, | 476 | .ssl_read_bytes = ssl3_read_bytes, |
| 467 | .ssl_write_bytes = ssl3_write_bytes, | 477 | .ssl_write_bytes = ssl3_write_bytes, |
| 468 | .ssl3_enc = &TLSv1_enc_data, | 478 | .ssl3_enc = &TLSv1_enc_data, |
| @@ -493,6 +503,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_method_internal_data = { | |||
| 493 | .ssl_renegotiate = ssl3_renegotiate, | 503 | .ssl_renegotiate = ssl3_renegotiate, |
| 494 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 504 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 495 | .ssl_get_message = ssl3_get_message, | 505 | .ssl_get_message = ssl3_get_message, |
| 506 | .ssl_pending = ssl3_pending, | ||
| 496 | .ssl_read_bytes = ssl3_read_bytes, | 507 | .ssl_read_bytes = ssl3_read_bytes, |
| 497 | .ssl_write_bytes = ssl3_write_bytes, | 508 | .ssl_write_bytes = ssl3_write_bytes, |
| 498 | .ssl3_enc = &TLSv1_1_enc_data, | 509 | .ssl3_enc = &TLSv1_1_enc_data, |
| @@ -523,6 +534,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_method_internal_data = { | |||
| 523 | .ssl_renegotiate = ssl3_renegotiate, | 534 | .ssl_renegotiate = ssl3_renegotiate, |
| 524 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 535 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 525 | .ssl_get_message = ssl3_get_message, | 536 | .ssl_get_message = ssl3_get_message, |
| 537 | .ssl_pending = ssl3_pending, | ||
| 526 | .ssl_read_bytes = ssl3_read_bytes, | 538 | .ssl_read_bytes = ssl3_read_bytes, |
| 527 | .ssl_write_bytes = ssl3_write_bytes, | 539 | .ssl_write_bytes = ssl3_write_bytes, |
| 528 | .ssl3_enc = &TLSv1_2_enc_data, | 540 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -596,6 +608,7 @@ static const SSL_METHOD_INTERNAL TLS_server_method_internal_data = { | |||
| 596 | .ssl_renegotiate = ssl_undefined_function, | 608 | .ssl_renegotiate = ssl_undefined_function, |
| 597 | .ssl_renegotiate_check = ssl_ok, | 609 | .ssl_renegotiate_check = ssl_ok, |
| 598 | .ssl_get_message = ssl3_get_message, | 610 | .ssl_get_message = ssl3_get_message, |
| 611 | .ssl_pending = ssl3_pending, | ||
| 599 | .ssl_read_bytes = tls13_legacy_read_bytes, | 612 | .ssl_read_bytes = tls13_legacy_read_bytes, |
| 600 | .ssl_write_bytes = tls13_legacy_write_bytes, | 613 | .ssl_write_bytes = tls13_legacy_write_bytes, |
| 601 | .ssl3_enc = &TLSv1_2_enc_data, | 614 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -627,6 +640,7 @@ static const SSL_METHOD_INTERNAL TLS_legacy_server_method_internal_data = { | |||
| 627 | .ssl_renegotiate = ssl_undefined_function, | 640 | .ssl_renegotiate = ssl_undefined_function, |
| 628 | .ssl_renegotiate_check = ssl_ok, | 641 | .ssl_renegotiate_check = ssl_ok, |
| 629 | .ssl_get_message = ssl3_get_message, | 642 | .ssl_get_message = ssl3_get_message, |
| 643 | .ssl_pending = ssl3_pending, | ||
| 630 | .ssl_read_bytes = ssl3_read_bytes, | 644 | .ssl_read_bytes = ssl3_read_bytes, |
| 631 | .ssl_write_bytes = ssl3_write_bytes, | 645 | .ssl_write_bytes = ssl3_write_bytes, |
| 632 | .ssl3_enc = &TLSv1_2_enc_data, | 646 | .ssl3_enc = &TLSv1_2_enc_data, |
| @@ -657,6 +671,7 @@ static const SSL_METHOD_INTERNAL TLSv1_server_method_internal_data = { | |||
| 657 | .ssl_renegotiate = ssl3_renegotiate, | 671 | .ssl_renegotiate = ssl3_renegotiate, |
| 658 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 672 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 659 | .ssl_get_message = ssl3_get_message, | 673 | .ssl_get_message = ssl3_get_message, |
| 674 | .ssl_pending = ssl3_pending, | ||
| 660 | .ssl_read_bytes = ssl3_read_bytes, | 675 | .ssl_read_bytes = ssl3_read_bytes, |
| 661 | .ssl_write_bytes = ssl3_write_bytes, | 676 | .ssl_write_bytes = ssl3_write_bytes, |
| 662 | .ssl3_enc = &TLSv1_enc_data, | 677 | .ssl3_enc = &TLSv1_enc_data, |
| @@ -687,6 +702,7 @@ static const SSL_METHOD_INTERNAL TLSv1_1_server_method_internal_data = { | |||
| 687 | .ssl_renegotiate = ssl3_renegotiate, | 702 | .ssl_renegotiate = ssl3_renegotiate, |
| 688 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 703 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 689 | .ssl_get_message = ssl3_get_message, | 704 | .ssl_get_message = ssl3_get_message, |
| 705 | .ssl_pending = ssl3_pending, | ||
| 690 | .ssl_read_bytes = ssl3_read_bytes, | 706 | .ssl_read_bytes = ssl3_read_bytes, |
| 691 | .ssl_write_bytes = ssl3_write_bytes, | 707 | .ssl_write_bytes = ssl3_write_bytes, |
| 692 | .ssl3_enc = &TLSv1_1_enc_data, | 708 | .ssl3_enc = &TLSv1_1_enc_data, |
| @@ -717,6 +733,7 @@ static const SSL_METHOD_INTERNAL TLSv1_2_server_method_internal_data = { | |||
| 717 | .ssl_renegotiate = ssl3_renegotiate, | 733 | .ssl_renegotiate = ssl3_renegotiate, |
| 718 | .ssl_renegotiate_check = ssl3_renegotiate_check, | 734 | .ssl_renegotiate_check = ssl3_renegotiate_check, |
| 719 | .ssl_get_message = ssl3_get_message, | 735 | .ssl_get_message = ssl3_get_message, |
| 736 | .ssl_pending = ssl3_pending, | ||
| 720 | .ssl_read_bytes = ssl3_read_bytes, | 737 | .ssl_read_bytes = ssl3_read_bytes, |
| 721 | .ssl_write_bytes = ssl3_write_bytes, | 738 | .ssl_write_bytes = ssl3_write_bytes, |
| 722 | .ssl3_enc = &TLSv1_2_enc_data, | 739 | .ssl3_enc = &TLSv1_2_enc_data, |
