diff options
| author | jsing <> | 2022-10-02 16:36:42 +0000 |
|---|---|---|
| committer | jsing <> | 2022-10-02 16:36:42 +0000 |
| commit | efde998d3821e41e124a4bfcdf103e506055fc52 (patch) | |
| tree | 739f174130582d68ff159ff94cdb3fb2185e31ef /src/lib/libssl/ssl_srvr.c | |
| parent | ce780ee20f92c920e451f9c3bdd6bb5fe83f4c5b (diff) | |
| download | openbsd-efde998d3821e41e124a4bfcdf103e506055fc52.tar.gz openbsd-efde998d3821e41e124a4bfcdf103e506055fc52.tar.bz2 openbsd-efde998d3821e41e124a4bfcdf103e506055fc52.zip | |
Get rid of SSL_CTX_INTERNAL and SSL_INTERNAL.
These are no longer necessary due to SSL_CTX and SSL now being fully
opaque. Merge SSL_CTX_INTERNAL back into SSL_CTX and SSL_INTERNAL back
into SSL.
Prompted by tb@
Diffstat (limited to 'src/lib/libssl/ssl_srvr.c')
| -rw-r--r-- | src/lib/libssl/ssl_srvr.c | 186 |
1 files changed, 93 insertions, 93 deletions
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index 821006af81..098e82e339 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_srvr.c,v 1.150 2022/10/01 16:23:15 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.151 2022/10/02 16:36:41 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 | * |
| @@ -204,7 +204,7 @@ ssl3_accept(SSL *s) | |||
| 204 | listen = s->d1->listen; | 204 | listen = s->d1->listen; |
| 205 | 205 | ||
| 206 | /* init things to blank */ | 206 | /* init things to blank */ |
| 207 | s->internal->in_handshake++; | 207 | s->in_handshake++; |
| 208 | if (!SSL_in_init(s) || SSL_in_before(s)) | 208 | if (!SSL_in_init(s) || SSL_in_before(s)) |
| 209 | SSL_clear(s); | 209 | SSL_clear(s); |
| 210 | 210 | ||
| @@ -216,7 +216,7 @@ ssl3_accept(SSL *s) | |||
| 216 | 216 | ||
| 217 | switch (s->s3->hs.state) { | 217 | switch (s->s3->hs.state) { |
| 218 | case SSL_ST_RENEGOTIATE: | 218 | case SSL_ST_RENEGOTIATE: |
| 219 | s->internal->renegotiate = 1; | 219 | s->renegotiate = 1; |
| 220 | /* s->s3->hs.state=SSL_ST_ACCEPT; */ | 220 | /* s->s3->hs.state=SSL_ST_ACCEPT; */ |
| 221 | 221 | ||
| 222 | case SSL_ST_BEFORE: | 222 | case SSL_ST_BEFORE: |
| @@ -257,7 +257,7 @@ ssl3_accept(SSL *s) | |||
| 257 | goto end; | 257 | goto end; |
| 258 | } | 258 | } |
| 259 | 259 | ||
| 260 | s->internal->init_num = 0; | 260 | s->init_num = 0; |
| 261 | 261 | ||
| 262 | if (s->s3->hs.state != SSL_ST_RENEGOTIATE) { | 262 | if (s->s3->hs.state != SSL_ST_RENEGOTIATE) { |
| 263 | /* | 263 | /* |
| @@ -276,7 +276,7 @@ ssl3_accept(SSL *s) | |||
| 276 | } | 276 | } |
| 277 | 277 | ||
| 278 | s->s3->hs.state = SSL3_ST_SR_CLNT_HELLO_A; | 278 | s->s3->hs.state = SSL3_ST_SR_CLNT_HELLO_A; |
| 279 | s->ctx->internal->stats.sess_accept++; | 279 | s->ctx->stats.sess_accept++; |
| 280 | } else if (!SSL_is_dtls(s) && !s->s3->send_connection_binding) { | 280 | } else if (!SSL_is_dtls(s) && !s->s3->send_connection_binding) { |
| 281 | /* | 281 | /* |
| 282 | * Server attempting to renegotiate with | 282 | * Server attempting to renegotiate with |
| @@ -293,14 +293,14 @@ ssl3_accept(SSL *s) | |||
| 293 | * s->s3->hs.state == SSL_ST_RENEGOTIATE, | 293 | * s->s3->hs.state == SSL_ST_RENEGOTIATE, |
| 294 | * we will just send a HelloRequest. | 294 | * we will just send a HelloRequest. |
| 295 | */ | 295 | */ |
| 296 | s->ctx->internal->stats.sess_accept_renegotiate++; | 296 | s->ctx->stats.sess_accept_renegotiate++; |
| 297 | s->s3->hs.state = SSL3_ST_SW_HELLO_REQ_A; | 297 | s->s3->hs.state = SSL3_ST_SW_HELLO_REQ_A; |
| 298 | } | 298 | } |
| 299 | break; | 299 | break; |
| 300 | 300 | ||
| 301 | case SSL3_ST_SW_HELLO_REQ_A: | 301 | case SSL3_ST_SW_HELLO_REQ_A: |
| 302 | case SSL3_ST_SW_HELLO_REQ_B: | 302 | case SSL3_ST_SW_HELLO_REQ_B: |
| 303 | s->internal->shutdown = 0; | 303 | s->shutdown = 0; |
| 304 | if (SSL_is_dtls(s)) { | 304 | if (SSL_is_dtls(s)) { |
| 305 | dtls1_clear_record_buffer(s); | 305 | dtls1_clear_record_buffer(s); |
| 306 | dtls1_start_timer(s); | 306 | dtls1_start_timer(s); |
| @@ -313,7 +313,7 @@ ssl3_accept(SSL *s) | |||
| 313 | else | 313 | else |
| 314 | s->s3->hs.tls12.next_state = SSL3_ST_SW_HELLO_REQ_C; | 314 | s->s3->hs.tls12.next_state = SSL3_ST_SW_HELLO_REQ_C; |
| 315 | s->s3->hs.state = SSL3_ST_SW_FLUSH; | 315 | s->s3->hs.state = SSL3_ST_SW_FLUSH; |
| 316 | s->internal->init_num = 0; | 316 | s->init_num = 0; |
| 317 | 317 | ||
| 318 | if (SSL_is_dtls(s)) { | 318 | if (SSL_is_dtls(s)) { |
| 319 | if (!tls1_transcript_init(s)) { | 319 | if (!tls1_transcript_init(s)) { |
| @@ -330,7 +330,7 @@ ssl3_accept(SSL *s) | |||
| 330 | case SSL3_ST_SR_CLNT_HELLO_A: | 330 | case SSL3_ST_SR_CLNT_HELLO_A: |
| 331 | case SSL3_ST_SR_CLNT_HELLO_B: | 331 | case SSL3_ST_SR_CLNT_HELLO_B: |
| 332 | case SSL3_ST_SR_CLNT_HELLO_C: | 332 | case SSL3_ST_SR_CLNT_HELLO_C: |
| 333 | s->internal->shutdown = 0; | 333 | s->shutdown = 0; |
| 334 | if (SSL_is_dtls(s)) { | 334 | if (SSL_is_dtls(s)) { |
| 335 | ret = ssl3_get_client_hello(s); | 335 | ret = ssl3_get_client_hello(s); |
| 336 | if (ret <= 0) | 336 | if (ret <= 0) |
| @@ -343,7 +343,7 @@ ssl3_accept(SSL *s) | |||
| 343 | else | 343 | else |
| 344 | s->s3->hs.state = SSL3_ST_SW_SRVR_HELLO_A; | 344 | s->s3->hs.state = SSL3_ST_SW_SRVR_HELLO_A; |
| 345 | 345 | ||
| 346 | s->internal->init_num = 0; | 346 | s->init_num = 0; |
| 347 | 347 | ||
| 348 | /* | 348 | /* |
| 349 | * Reflect ClientHello sequence to remain | 349 | * Reflect ClientHello sequence to remain |
| @@ -351,7 +351,7 @@ ssl3_accept(SSL *s) | |||
| 351 | */ | 351 | */ |
| 352 | if (listen) { | 352 | if (listen) { |
| 353 | tls12_record_layer_reflect_seq_num( | 353 | tls12_record_layer_reflect_seq_num( |
| 354 | s->internal->rl); | 354 | s->rl); |
| 355 | } | 355 | } |
| 356 | 356 | ||
| 357 | /* If we're just listening, stop here */ | 357 | /* If we're just listening, stop here */ |
| @@ -368,15 +368,15 @@ ssl3_accept(SSL *s) | |||
| 368 | goto end; | 368 | goto end; |
| 369 | } | 369 | } |
| 370 | } else { | 370 | } else { |
| 371 | if (s->internal->rwstate != SSL_X509_LOOKUP) { | 371 | if (s->rwstate != SSL_X509_LOOKUP) { |
| 372 | ret = ssl3_get_client_hello(s); | 372 | ret = ssl3_get_client_hello(s); |
| 373 | if (ret <= 0) | 373 | if (ret <= 0) |
| 374 | goto end; | 374 | goto end; |
| 375 | } | 375 | } |
| 376 | 376 | ||
| 377 | s->internal->renegotiate = 2; | 377 | s->renegotiate = 2; |
| 378 | s->s3->hs.state = SSL3_ST_SW_SRVR_HELLO_A; | 378 | s->s3->hs.state = SSL3_ST_SW_SRVR_HELLO_A; |
| 379 | s->internal->init_num = 0; | 379 | s->init_num = 0; |
| 380 | } | 380 | } |
| 381 | break; | 381 | break; |
| 382 | 382 | ||
| @@ -395,21 +395,21 @@ ssl3_accept(SSL *s) | |||
| 395 | case SSL3_ST_SW_SRVR_HELLO_A: | 395 | case SSL3_ST_SW_SRVR_HELLO_A: |
| 396 | case SSL3_ST_SW_SRVR_HELLO_B: | 396 | case SSL3_ST_SW_SRVR_HELLO_B: |
| 397 | if (SSL_is_dtls(s)) { | 397 | if (SSL_is_dtls(s)) { |
| 398 | s->internal->renegotiate = 2; | 398 | s->renegotiate = 2; |
| 399 | dtls1_start_timer(s); | 399 | dtls1_start_timer(s); |
| 400 | } | 400 | } |
| 401 | ret = ssl3_send_server_hello(s); | 401 | ret = ssl3_send_server_hello(s); |
| 402 | if (ret <= 0) | 402 | if (ret <= 0) |
| 403 | goto end; | 403 | goto end; |
| 404 | if (s->internal->hit) { | 404 | if (s->hit) { |
| 405 | if (s->internal->tlsext_ticket_expected) | 405 | if (s->tlsext_ticket_expected) |
| 406 | s->s3->hs.state = SSL3_ST_SW_SESSION_TICKET_A; | 406 | s->s3->hs.state = SSL3_ST_SW_SESSION_TICKET_A; |
| 407 | else | 407 | else |
| 408 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; | 408 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; |
| 409 | } else { | 409 | } else { |
| 410 | s->s3->hs.state = SSL3_ST_SW_CERT_A; | 410 | s->s3->hs.state = SSL3_ST_SW_CERT_A; |
| 411 | } | 411 | } |
| 412 | s->internal->init_num = 0; | 412 | s->init_num = 0; |
| 413 | break; | 413 | break; |
| 414 | 414 | ||
| 415 | case SSL3_ST_SW_CERT_A: | 415 | case SSL3_ST_SW_CERT_A: |
| @@ -422,7 +422,7 @@ ssl3_accept(SSL *s) | |||
| 422 | ret = ssl3_send_server_certificate(s); | 422 | ret = ssl3_send_server_certificate(s); |
| 423 | if (ret <= 0) | 423 | if (ret <= 0) |
| 424 | goto end; | 424 | goto end; |
| 425 | if (s->internal->tlsext_status_expected) | 425 | if (s->tlsext_status_expected) |
| 426 | s->s3->hs.state = SSL3_ST_SW_CERT_STATUS_A; | 426 | s->s3->hs.state = SSL3_ST_SW_CERT_STATUS_A; |
| 427 | else | 427 | else |
| 428 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; | 428 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; |
| @@ -430,7 +430,7 @@ ssl3_accept(SSL *s) | |||
| 430 | skip = 1; | 430 | skip = 1; |
| 431 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; | 431 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; |
| 432 | } | 432 | } |
| 433 | s->internal->init_num = 0; | 433 | s->init_num = 0; |
| 434 | break; | 434 | break; |
| 435 | 435 | ||
| 436 | case SSL3_ST_SW_KEY_EXCH_A: | 436 | case SSL3_ST_SW_KEY_EXCH_A: |
| @@ -455,7 +455,7 @@ ssl3_accept(SSL *s) | |||
| 455 | skip = 1; | 455 | skip = 1; |
| 456 | 456 | ||
| 457 | s->s3->hs.state = SSL3_ST_SW_CERT_REQ_A; | 457 | s->s3->hs.state = SSL3_ST_SW_CERT_REQ_A; |
| 458 | s->internal->init_num = 0; | 458 | s->init_num = 0; |
| 459 | break; | 459 | break; |
| 460 | 460 | ||
| 461 | case SSL3_ST_SW_CERT_REQ_A: | 461 | case SSL3_ST_SW_CERT_REQ_A: |
| @@ -498,7 +498,7 @@ ssl3_accept(SSL *s) | |||
| 498 | if (ret <= 0) | 498 | if (ret <= 0) |
| 499 | goto end; | 499 | goto end; |
| 500 | s->s3->hs.state = SSL3_ST_SW_SRVR_DONE_A; | 500 | s->s3->hs.state = SSL3_ST_SW_SRVR_DONE_A; |
| 501 | s->internal->init_num = 0; | 501 | s->init_num = 0; |
| 502 | } | 502 | } |
| 503 | break; | 503 | break; |
| 504 | 504 | ||
| @@ -511,7 +511,7 @@ ssl3_accept(SSL *s) | |||
| 511 | goto end; | 511 | goto end; |
| 512 | s->s3->hs.tls12.next_state = SSL3_ST_SR_CERT_A; | 512 | s->s3->hs.tls12.next_state = SSL3_ST_SR_CERT_A; |
| 513 | s->s3->hs.state = SSL3_ST_SW_FLUSH; | 513 | s->s3->hs.state = SSL3_ST_SW_FLUSH; |
| 514 | s->internal->init_num = 0; | 514 | s->init_num = 0; |
| 515 | break; | 515 | break; |
| 516 | 516 | ||
| 517 | case SSL3_ST_SW_FLUSH: | 517 | case SSL3_ST_SW_FLUSH: |
| @@ -525,19 +525,19 @@ ssl3_accept(SSL *s) | |||
| 525 | * still exist. So instead we just flush | 525 | * still exist. So instead we just flush |
| 526 | * unconditionally. | 526 | * unconditionally. |
| 527 | */ | 527 | */ |
| 528 | s->internal->rwstate = SSL_WRITING; | 528 | s->rwstate = SSL_WRITING; |
| 529 | if (BIO_flush(s->wbio) <= 0) { | 529 | if (BIO_flush(s->wbio) <= 0) { |
| 530 | if (SSL_is_dtls(s)) { | 530 | if (SSL_is_dtls(s)) { |
| 531 | /* If the write error was fatal, stop trying. */ | 531 | /* If the write error was fatal, stop trying. */ |
| 532 | if (!BIO_should_retry(s->wbio)) { | 532 | if (!BIO_should_retry(s->wbio)) { |
| 533 | s->internal->rwstate = SSL_NOTHING; | 533 | s->rwstate = SSL_NOTHING; |
| 534 | s->s3->hs.state = s->s3->hs.tls12.next_state; | 534 | s->s3->hs.state = s->s3->hs.tls12.next_state; |
| 535 | } | 535 | } |
| 536 | } | 536 | } |
| 537 | ret = -1; | 537 | ret = -1; |
| 538 | goto end; | 538 | goto end; |
| 539 | } | 539 | } |
| 540 | s->internal->rwstate = SSL_NOTHING; | 540 | s->rwstate = SSL_NOTHING; |
| 541 | s->s3->hs.state = s->s3->hs.tls12.next_state; | 541 | s->s3->hs.state = s->s3->hs.tls12.next_state; |
| 542 | break; | 542 | break; |
| 543 | 543 | ||
| @@ -548,7 +548,7 @@ ssl3_accept(SSL *s) | |||
| 548 | if (ret <= 0) | 548 | if (ret <= 0) |
| 549 | goto end; | 549 | goto end; |
| 550 | } | 550 | } |
| 551 | s->internal->init_num = 0; | 551 | s->init_num = 0; |
| 552 | s->s3->hs.state = SSL3_ST_SR_KEY_EXCH_A; | 552 | s->s3->hs.state = SSL3_ST_SR_KEY_EXCH_A; |
| 553 | break; | 553 | break; |
| 554 | 554 | ||
| @@ -560,7 +560,7 @@ ssl3_accept(SSL *s) | |||
| 560 | 560 | ||
| 561 | if (SSL_is_dtls(s)) { | 561 | if (SSL_is_dtls(s)) { |
| 562 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; | 562 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; |
| 563 | s->internal->init_num = 0; | 563 | s->init_num = 0; |
| 564 | } | 564 | } |
| 565 | 565 | ||
| 566 | alg_k = s->s3->hs.cipher->algorithm_mkey; | 566 | alg_k = s->s3->hs.cipher->algorithm_mkey; |
| @@ -571,10 +571,10 @@ ssl3_accept(SSL *s) | |||
| 571 | * the CertificateVerify message is not sent. | 571 | * the CertificateVerify message is not sent. |
| 572 | */ | 572 | */ |
| 573 | s->s3->hs.state = SSL3_ST_SR_FINISHED_A; | 573 | s->s3->hs.state = SSL3_ST_SR_FINISHED_A; |
| 574 | s->internal->init_num = 0; | 574 | s->init_num = 0; |
| 575 | } else if (SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) { | 575 | } else if (SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) { |
| 576 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; | 576 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; |
| 577 | s->internal->init_num = 0; | 577 | s->init_num = 0; |
| 578 | if (!s->session->peer_cert) | 578 | if (!s->session->peer_cert) |
| 579 | break; | 579 | break; |
| 580 | /* | 580 | /* |
| @@ -584,7 +584,7 @@ ssl3_accept(SSL *s) | |||
| 584 | tls1_transcript_freeze(s); | 584 | tls1_transcript_freeze(s); |
| 585 | } else { | 585 | } else { |
| 586 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; | 586 | s->s3->hs.state = SSL3_ST_SR_CERT_VRFY_A; |
| 587 | s->internal->init_num = 0; | 587 | s->init_num = 0; |
| 588 | 588 | ||
| 589 | tls1_transcript_free(s); | 589 | tls1_transcript_free(s); |
| 590 | 590 | ||
| @@ -614,7 +614,7 @@ ssl3_accept(SSL *s) | |||
| 614 | if (ret <= 0) | 614 | if (ret <= 0) |
| 615 | goto end; | 615 | goto end; |
| 616 | s->s3->hs.state = SSL3_ST_SR_FINISHED_A; | 616 | s->s3->hs.state = SSL3_ST_SR_FINISHED_A; |
| 617 | s->internal->init_num = 0; | 617 | s->init_num = 0; |
| 618 | break; | 618 | break; |
| 619 | 619 | ||
| 620 | case SSL3_ST_SR_FINISHED_A: | 620 | case SSL3_ST_SR_FINISHED_A: |
| @@ -628,13 +628,13 @@ ssl3_accept(SSL *s) | |||
| 628 | goto end; | 628 | goto end; |
| 629 | if (SSL_is_dtls(s)) | 629 | if (SSL_is_dtls(s)) |
| 630 | dtls1_stop_timer(s); | 630 | dtls1_stop_timer(s); |
| 631 | if (s->internal->hit) | 631 | if (s->hit) |
| 632 | s->s3->hs.state = SSL_ST_OK; | 632 | s->s3->hs.state = SSL_ST_OK; |
| 633 | else if (s->internal->tlsext_ticket_expected) | 633 | else if (s->tlsext_ticket_expected) |
| 634 | s->s3->hs.state = SSL3_ST_SW_SESSION_TICKET_A; | 634 | s->s3->hs.state = SSL3_ST_SW_SESSION_TICKET_A; |
| 635 | else | 635 | else |
| 636 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; | 636 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; |
| 637 | s->internal->init_num = 0; | 637 | s->init_num = 0; |
| 638 | break; | 638 | break; |
| 639 | 639 | ||
| 640 | case SSL3_ST_SW_SESSION_TICKET_A: | 640 | case SSL3_ST_SW_SESSION_TICKET_A: |
| @@ -643,7 +643,7 @@ ssl3_accept(SSL *s) | |||
| 643 | if (ret <= 0) | 643 | if (ret <= 0) |
| 644 | goto end; | 644 | goto end; |
| 645 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; | 645 | s->s3->hs.state = SSL3_ST_SW_CHANGE_A; |
| 646 | s->internal->init_num = 0; | 646 | s->init_num = 0; |
| 647 | break; | 647 | break; |
| 648 | 648 | ||
| 649 | case SSL3_ST_SW_CERT_STATUS_A: | 649 | case SSL3_ST_SW_CERT_STATUS_A: |
| @@ -652,7 +652,7 @@ ssl3_accept(SSL *s) | |||
| 652 | if (ret <= 0) | 652 | if (ret <= 0) |
| 653 | goto end; | 653 | goto end; |
| 654 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; | 654 | s->s3->hs.state = SSL3_ST_SW_KEY_EXCH_A; |
| 655 | s->internal->init_num = 0; | 655 | s->init_num = 0; |
| 656 | break; | 656 | break; |
| 657 | 657 | ||
| 658 | case SSL3_ST_SW_CHANGE_A: | 658 | case SSL3_ST_SW_CHANGE_A: |
| @@ -661,7 +661,7 @@ ssl3_accept(SSL *s) | |||
| 661 | if (ret <= 0) | 661 | if (ret <= 0) |
| 662 | goto end; | 662 | goto end; |
| 663 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; | 663 | s->s3->hs.state = SSL3_ST_SW_FINISHED_A; |
| 664 | s->internal->init_num = 0; | 664 | s->init_num = 0; |
| 665 | s->session->cipher = s->s3->hs.cipher; | 665 | s->session->cipher = s->s3->hs.cipher; |
| 666 | 666 | ||
| 667 | if (!tls1_setup_key_block(s)) { | 667 | if (!tls1_setup_key_block(s)) { |
| @@ -680,12 +680,12 @@ ssl3_accept(SSL *s) | |||
| 680 | if (ret <= 0) | 680 | if (ret <= 0) |
| 681 | goto end; | 681 | goto end; |
| 682 | s->s3->hs.state = SSL3_ST_SW_FLUSH; | 682 | s->s3->hs.state = SSL3_ST_SW_FLUSH; |
| 683 | if (s->internal->hit) { | 683 | if (s->hit) { |
| 684 | s->s3->hs.tls12.next_state = SSL3_ST_SR_FINISHED_A; | 684 | s->s3->hs.tls12.next_state = SSL3_ST_SR_FINISHED_A; |
| 685 | tls1_transcript_free(s); | 685 | tls1_transcript_free(s); |
| 686 | } else | 686 | } else |
| 687 | s->s3->hs.tls12.next_state = SSL_ST_OK; | 687 | s->s3->hs.tls12.next_state = SSL_ST_OK; |
| 688 | s->internal->init_num = 0; | 688 | s->init_num = 0; |
| 689 | break; | 689 | break; |
| 690 | 690 | ||
| 691 | case SSL_ST_OK: | 691 | case SSL_ST_OK: |
| @@ -704,18 +704,18 @@ ssl3_accept(SSL *s) | |||
| 704 | /* remove buffering on output */ | 704 | /* remove buffering on output */ |
| 705 | ssl_free_wbio_buffer(s); | 705 | ssl_free_wbio_buffer(s); |
| 706 | 706 | ||
| 707 | s->internal->init_num = 0; | 707 | s->init_num = 0; |
| 708 | 708 | ||
| 709 | /* Skipped if we just sent a HelloRequest. */ | 709 | /* Skipped if we just sent a HelloRequest. */ |
| 710 | if (s->internal->renegotiate == 2) { | 710 | if (s->renegotiate == 2) { |
| 711 | s->internal->renegotiate = 0; | 711 | s->renegotiate = 0; |
| 712 | s->internal->new_session = 0; | 712 | s->new_session = 0; |
| 713 | 713 | ||
| 714 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); | 714 | ssl_update_cache(s, SSL_SESS_CACHE_SERVER); |
| 715 | 715 | ||
| 716 | s->ctx->internal->stats.sess_accept_good++; | 716 | s->ctx->stats.sess_accept_good++; |
| 717 | /* s->server=1; */ | 717 | /* s->server=1; */ |
| 718 | s->internal->handshake_func = ssl3_accept; | 718 | s->handshake_func = ssl3_accept; |
| 719 | 719 | ||
| 720 | ssl_info_callback(s, SSL_CB_HANDSHAKE_DONE, 1); | 720 | ssl_info_callback(s, SSL_CB_HANDSHAKE_DONE, 1); |
| 721 | } | 721 | } |
| @@ -740,7 +740,7 @@ ssl3_accept(SSL *s) | |||
| 740 | } | 740 | } |
| 741 | 741 | ||
| 742 | if (!s->s3->hs.tls12.reuse_message && !skip) { | 742 | if (!s->s3->hs.tls12.reuse_message && !skip) { |
| 743 | if (s->internal->debug) { | 743 | if (s->debug) { |
| 744 | if ((ret = BIO_flush(s->wbio)) <= 0) | 744 | if ((ret = BIO_flush(s->wbio)) <= 0) |
| 745 | goto end; | 745 | goto end; |
| 746 | } | 746 | } |
| @@ -757,7 +757,7 @@ ssl3_accept(SSL *s) | |||
| 757 | } | 757 | } |
| 758 | end: | 758 | end: |
| 759 | /* BIO_flush(s->wbio); */ | 759 | /* BIO_flush(s->wbio); */ |
| 760 | s->internal->in_handshake--; | 760 | s->in_handshake--; |
| 761 | ssl_info_callback(s, SSL_CB_ACCEPT_EXIT, ret); | 761 | ssl_info_callback(s, SSL_CB_ACCEPT_EXIT, ret); |
| 762 | 762 | ||
| 763 | return (ret); | 763 | return (ret); |
| @@ -815,19 +815,19 @@ ssl3_get_client_hello(SSL *s) | |||
| 815 | if (s->s3->hs.state == SSL3_ST_SR_CLNT_HELLO_A) | 815 | if (s->s3->hs.state == SSL3_ST_SR_CLNT_HELLO_A) |
| 816 | s->s3->hs.state = SSL3_ST_SR_CLNT_HELLO_B; | 816 | s->s3->hs.state = SSL3_ST_SR_CLNT_HELLO_B; |
| 817 | 817 | ||
| 818 | s->internal->first_packet = 1; | 818 | s->first_packet = 1; |
| 819 | if ((ret = ssl3_get_message(s, SSL3_ST_SR_CLNT_HELLO_B, | 819 | if ((ret = ssl3_get_message(s, SSL3_ST_SR_CLNT_HELLO_B, |
| 820 | SSL3_ST_SR_CLNT_HELLO_C, SSL3_MT_CLIENT_HELLO, | 820 | SSL3_ST_SR_CLNT_HELLO_C, SSL3_MT_CLIENT_HELLO, |
| 821 | SSL3_RT_MAX_PLAIN_LENGTH)) <= 0) | 821 | SSL3_RT_MAX_PLAIN_LENGTH)) <= 0) |
| 822 | return ret; | 822 | return ret; |
| 823 | s->internal->first_packet = 0; | 823 | s->first_packet = 0; |
| 824 | 824 | ||
| 825 | ret = -1; | 825 | ret = -1; |
| 826 | 826 | ||
| 827 | if (s->internal->init_num < 0) | 827 | if (s->init_num < 0) |
| 828 | goto err; | 828 | goto err; |
| 829 | 829 | ||
| 830 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 830 | CBS_init(&cbs, s->init_msg, s->init_num); |
| 831 | 831 | ||
| 832 | /* Parse client hello up until the extensions (if any). */ | 832 | /* Parse client hello up until the extensions (if any). */ |
| 833 | if (!CBS_get_u16(&cbs, &client_version)) | 833 | if (!CBS_get_u16(&cbs, &client_version)) |
| @@ -856,7 +856,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 856 | */ | 856 | */ |
| 857 | if (!ssl_max_shared_version(s, client_version, &shared_version)) { | 857 | if (!ssl_max_shared_version(s, client_version, &shared_version)) { |
| 858 | if ((client_version >> 8) == SSL3_VERSION_MAJOR && | 858 | if ((client_version >> 8) == SSL3_VERSION_MAJOR && |
| 859 | !tls12_record_layer_write_protected(s->internal->rl)) { | 859 | !tls12_record_layer_write_protected(s->rl)) { |
| 860 | /* | 860 | /* |
| 861 | * Similar to ssl3_get_record, send alert using remote | 861 | * Similar to ssl3_get_record, send alert using remote |
| 862 | * version number. | 862 | * version number. |
| @@ -898,7 +898,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 898 | sizeof(s->s3->client_random), NULL)) | 898 | sizeof(s->s3->client_random), NULL)) |
| 899 | goto err; | 899 | goto err; |
| 900 | 900 | ||
| 901 | s->internal->hit = 0; | 901 | s->hit = 0; |
| 902 | 902 | ||
| 903 | /* | 903 | /* |
| 904 | * Versions before 0.9.7 always allow clients to resume sessions in | 904 | * Versions before 0.9.7 always allow clients to resume sessions in |
| @@ -910,12 +910,12 @@ ssl3_get_client_hello(SSL *s) | |||
| 910 | * library versions). | 910 | * library versions). |
| 911 | * | 911 | * |
| 912 | * 1.0.1 and later also have a function SSL_renegotiate_abbreviated() | 912 | * 1.0.1 and later also have a function SSL_renegotiate_abbreviated() |
| 913 | * to request renegotiation but not a new session (s->internal->new_session | 913 | * to request renegotiation but not a new session (s->new_session |
| 914 | * remains unset): for servers, this essentially just means that the | 914 | * remains unset): for servers, this essentially just means that the |
| 915 | * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION setting will be | 915 | * SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION setting will be |
| 916 | * ignored. | 916 | * ignored. |
| 917 | */ | 917 | */ |
| 918 | if ((s->internal->new_session && (s->internal->options & | 918 | if ((s->new_session && (s->options & |
| 919 | SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION))) { | 919 | SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION))) { |
| 920 | if (!ssl_get_new_session(s, 1)) | 920 | if (!ssl_get_new_session(s, 1)) |
| 921 | goto err; | 921 | goto err; |
| @@ -926,7 +926,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 926 | 926 | ||
| 927 | i = ssl_get_prev_session(s, &session_id, &ext_block, &al); | 927 | i = ssl_get_prev_session(s, &session_id, &ext_block, &al); |
| 928 | if (i == 1) { /* previous session */ | 928 | if (i == 1) { /* previous session */ |
| 929 | s->internal->hit = 1; | 929 | s->hit = 1; |
| 930 | } else if (i == -1) | 930 | } else if (i == -1) |
| 931 | goto fatal_err; | 931 | goto fatal_err; |
| 932 | else { | 932 | else { |
| @@ -958,8 +958,8 @@ ssl3_get_client_hello(SSL *s) | |||
| 958 | sizeof(s->d1->rcvd_cookie), &cookie_len)) | 958 | sizeof(s->d1->rcvd_cookie), &cookie_len)) |
| 959 | goto err; | 959 | goto err; |
| 960 | 960 | ||
| 961 | if (s->ctx->internal->app_verify_cookie_cb != NULL) { | 961 | if (s->ctx->app_verify_cookie_cb != NULL) { |
| 962 | if (s->ctx->internal->app_verify_cookie_cb(s, | 962 | if (s->ctx->app_verify_cookie_cb(s, |
| 963 | s->d1->rcvd_cookie, cookie_len) == 0) { | 963 | s->d1->rcvd_cookie, cookie_len) == 0) { |
| 964 | al = SSL_AD_HANDSHAKE_FAILURE; | 964 | al = SSL_AD_HANDSHAKE_FAILURE; |
| 965 | SSLerror(s, SSL_R_COOKIE_MISMATCH); | 965 | SSLerror(s, SSL_R_COOKIE_MISMATCH); |
| @@ -994,7 +994,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 994 | 994 | ||
| 995 | /* If it is a hit, check that the cipher is in the list */ | 995 | /* If it is a hit, check that the cipher is in the list */ |
| 996 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ | 996 | /* XXX - CBS_len(&cipher_suites) will always be zero here... */ |
| 997 | if (s->internal->hit && CBS_len(&cipher_suites) > 0) { | 997 | if (s->hit && CBS_len(&cipher_suites) > 0) { |
| 998 | j = 0; | 998 | j = 0; |
| 999 | id = s->session->cipher->id; | 999 | id = s->session->cipher->id; |
| 1000 | 1000 | ||
| @@ -1037,7 +1037,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1037 | if (CBS_len(&cbs) != 0) | 1037 | if (CBS_len(&cbs) != 0) |
| 1038 | goto decode_err; | 1038 | goto decode_err; |
| 1039 | 1039 | ||
| 1040 | if (!s->s3->renegotiate_seen && s->internal->renegotiate) { | 1040 | if (!s->s3->renegotiate_seen && s->renegotiate) { |
| 1041 | al = SSL_AD_HANDSHAKE_FAILURE; | 1041 | al = SSL_AD_HANDSHAKE_FAILURE; |
| 1042 | SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); | 1042 | SSLerror(s, SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED); |
| 1043 | goto fatal_err; | 1043 | goto fatal_err; |
| @@ -1077,13 +1077,13 @@ ssl3_get_client_hello(SSL *s) | |||
| 1077 | } | 1077 | } |
| 1078 | } | 1078 | } |
| 1079 | 1079 | ||
| 1080 | if (!s->internal->hit && s->internal->tls_session_secret_cb != NULL) { | 1080 | if (!s->hit && s->tls_session_secret_cb != NULL) { |
| 1081 | SSL_CIPHER *pref_cipher = NULL; | 1081 | SSL_CIPHER *pref_cipher = NULL; |
| 1082 | int master_key_length = sizeof(s->session->master_key); | 1082 | int master_key_length = sizeof(s->session->master_key); |
| 1083 | 1083 | ||
| 1084 | if (!s->internal->tls_session_secret_cb(s, | 1084 | if (!s->tls_session_secret_cb(s, |
| 1085 | s->session->master_key, &master_key_length, ciphers, | 1085 | s->session->master_key, &master_key_length, ciphers, |
| 1086 | &pref_cipher, s->internal->tls_session_secret_cb_arg)) { | 1086 | &pref_cipher, s->tls_session_secret_cb_arg)) { |
| 1087 | SSLerror(s, ERR_R_INTERNAL_ERROR); | 1087 | SSLerror(s, ERR_R_INTERNAL_ERROR); |
| 1088 | goto err; | 1088 | goto err; |
| 1089 | } | 1089 | } |
| @@ -1093,7 +1093,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1093 | } | 1093 | } |
| 1094 | s->session->master_key_length = master_key_length; | 1094 | s->session->master_key_length = master_key_length; |
| 1095 | 1095 | ||
| 1096 | s->internal->hit = 1; | 1096 | s->hit = 1; |
| 1097 | s->session->verify_result = X509_V_OK; | 1097 | s->session->verify_result = X509_V_OK; |
| 1098 | 1098 | ||
| 1099 | sk_SSL_CIPHER_free(s->session->ciphers); | 1099 | sk_SSL_CIPHER_free(s->session->ciphers); |
| @@ -1120,7 +1120,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1120 | * pick a cipher | 1120 | * pick a cipher |
| 1121 | */ | 1121 | */ |
| 1122 | 1122 | ||
| 1123 | if (!s->internal->hit) { | 1123 | if (!s->hit) { |
| 1124 | if (ciphers == NULL) { | 1124 | if (ciphers == NULL) { |
| 1125 | al = SSL_AD_ILLEGAL_PARAMETER; | 1125 | al = SSL_AD_ILLEGAL_PARAMETER; |
| 1126 | SSLerror(s, SSL_R_NO_CIPHERS_PASSED); | 1126 | SSLerror(s, SSL_R_NO_CIPHERS_PASSED); |
| @@ -1157,7 +1157,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1157 | * compression - basically ignored right now | 1157 | * compression - basically ignored right now |
| 1158 | * ssl version is set - sslv3 | 1158 | * ssl version is set - sslv3 |
| 1159 | * s->session - The ssl session has been setup. | 1159 | * s->session - The ssl session has been setup. |
| 1160 | * s->internal->hit - session reuse flag | 1160 | * s->hit - session reuse flag |
| 1161 | * s->hs.cipher - the new cipher to use. | 1161 | * s->hs.cipher - the new cipher to use. |
| 1162 | */ | 1162 | */ |
| 1163 | 1163 | ||
| @@ -1190,8 +1190,8 @@ ssl3_send_dtls_hello_verify_request(SSL *s) | |||
| 1190 | memset(&cbb, 0, sizeof(cbb)); | 1190 | memset(&cbb, 0, sizeof(cbb)); |
| 1191 | 1191 | ||
| 1192 | if (s->s3->hs.state == DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A) { | 1192 | if (s->s3->hs.state == DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A) { |
| 1193 | if (s->ctx->internal->app_gen_cookie_cb == NULL || | 1193 | if (s->ctx->app_gen_cookie_cb == NULL || |
| 1194 | s->ctx->internal->app_gen_cookie_cb(s, s->d1->cookie, | 1194 | s->ctx->app_gen_cookie_cb(s, s->d1->cookie, |
| 1195 | &(s->d1->cookie_len)) == 0) { | 1195 | &(s->d1->cookie_len)) == 0) { |
| 1196 | SSLerror(s, ERR_R_INTERNAL_ERROR); | 1196 | SSLerror(s, ERR_R_INTERNAL_ERROR); |
| 1197 | return 0; | 1197 | return 0; |
| @@ -1259,12 +1259,12 @@ ssl3_send_server_hello(SSL *s) | |||
| 1259 | * - However, if we want the new session to be single-use, | 1259 | * - However, if we want the new session to be single-use, |
| 1260 | * we send back a 0-length session ID. | 1260 | * we send back a 0-length session ID. |
| 1261 | * | 1261 | * |
| 1262 | * s->internal->hit is non-zero in either case of session reuse, | 1262 | * s->hit is non-zero in either case of session reuse, |
| 1263 | * so the following won't overwrite an ID that we're supposed | 1263 | * so the following won't overwrite an ID that we're supposed |
| 1264 | * to send back. | 1264 | * to send back. |
| 1265 | */ | 1265 | */ |
| 1266 | if (!(s->ctx->internal->session_cache_mode & SSL_SESS_CACHE_SERVER) | 1266 | if (!(s->ctx->session_cache_mode & SSL_SESS_CACHE_SERVER) |
| 1267 | && !s->internal->hit) | 1267 | && !s->hit) |
| 1268 | s->session->session_id_length = 0; | 1268 | s->session->session_id_length = 0; |
| 1269 | 1269 | ||
| 1270 | sl = s->session->session_id_length; | 1270 | sl = s->session->session_id_length; |
| @@ -1895,10 +1895,10 @@ ssl3_get_client_key_exchange(SSL *s) | |||
| 1895 | SSL3_ST_SR_KEY_EXCH_B, SSL3_MT_CLIENT_KEY_EXCHANGE, 2048)) <= 0) | 1895 | SSL3_ST_SR_KEY_EXCH_B, SSL3_MT_CLIENT_KEY_EXCHANGE, 2048)) <= 0) |
| 1896 | return ret; | 1896 | return ret; |
| 1897 | 1897 | ||
| 1898 | if (s->internal->init_num < 0) | 1898 | if (s->init_num < 0) |
| 1899 | goto err; | 1899 | goto err; |
| 1900 | 1900 | ||
| 1901 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 1901 | CBS_init(&cbs, s->init_msg, s->init_num); |
| 1902 | 1902 | ||
| 1903 | alg_k = s->s3->hs.cipher->algorithm_mkey; | 1903 | alg_k = s->s3->hs.cipher->algorithm_mkey; |
| 1904 | 1904 | ||
| @@ -1955,13 +1955,13 @@ ssl3_get_cert_verify(SSL *s) | |||
| 1955 | 1955 | ||
| 1956 | ret = 0; | 1956 | ret = 0; |
| 1957 | 1957 | ||
| 1958 | if (s->internal->init_num < 0) | 1958 | if (s->init_num < 0) |
| 1959 | goto err; | 1959 | goto err; |
| 1960 | 1960 | ||
| 1961 | if ((mctx = EVP_MD_CTX_new()) == NULL) | 1961 | if ((mctx = EVP_MD_CTX_new()) == NULL) |
| 1962 | goto err; | 1962 | goto err; |
| 1963 | 1963 | ||
| 1964 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 1964 | CBS_init(&cbs, s->init_msg, s->init_num); |
| 1965 | 1965 | ||
| 1966 | peer_cert = s->session->peer_cert; | 1966 | peer_cert = s->session->peer_cert; |
| 1967 | pkey = X509_get0_pubkey(peer_cert); | 1967 | pkey = X509_get0_pubkey(peer_cert); |
| @@ -2178,7 +2178,7 @@ ssl3_get_client_certificate(SSL *s) | |||
| 2178 | int al, ret; | 2178 | int al, ret; |
| 2179 | 2179 | ||
| 2180 | if ((ret = ssl3_get_message(s, SSL3_ST_SR_CERT_A, SSL3_ST_SR_CERT_B, | 2180 | if ((ret = ssl3_get_message(s, SSL3_ST_SR_CERT_A, SSL3_ST_SR_CERT_B, |
| 2181 | -1, s->internal->max_cert_list)) <= 0) | 2181 | -1, s->max_cert_list)) <= 0) |
| 2182 | return ret; | 2182 | return ret; |
| 2183 | 2183 | ||
| 2184 | ret = -1; | 2184 | ret = -1; |
| @@ -2210,10 +2210,10 @@ ssl3_get_client_certificate(SSL *s) | |||
| 2210 | goto fatal_err; | 2210 | goto fatal_err; |
| 2211 | } | 2211 | } |
| 2212 | 2212 | ||
| 2213 | if (s->internal->init_num < 0) | 2213 | if (s->init_num < 0) |
| 2214 | goto decode_err; | 2214 | goto decode_err; |
| 2215 | 2215 | ||
| 2216 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 2216 | CBS_init(&cbs, s->init_msg, s->init_num); |
| 2217 | 2217 | ||
| 2218 | if (!CBS_get_u24_length_prefixed(&cbs, &cert_list)) | 2218 | if (!CBS_get_u24_length_prefixed(&cbs, &cert_list)) |
| 2219 | goto decode_err; | 2219 | goto decode_err; |
| @@ -2367,17 +2367,17 @@ ssl3_send_newsession_ticket(SSL *s) | |||
| 2367 | * it does all the work, otherwise use generated values from | 2367 | * it does all the work, otherwise use generated values from |
| 2368 | * parent context. | 2368 | * parent context. |
| 2369 | */ | 2369 | */ |
| 2370 | if (tctx->internal->tlsext_ticket_key_cb != NULL) { | 2370 | if (tctx->tlsext_ticket_key_cb != NULL) { |
| 2371 | if (tctx->internal->tlsext_ticket_key_cb(s, | 2371 | if (tctx->tlsext_ticket_key_cb(s, |
| 2372 | key_name, iv, ctx, hctx, 1) < 0) | 2372 | key_name, iv, ctx, hctx, 1) < 0) |
| 2373 | goto err; | 2373 | goto err; |
| 2374 | } else { | 2374 | } else { |
| 2375 | arc4random_buf(iv, 16); | 2375 | arc4random_buf(iv, 16); |
| 2376 | EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, | 2376 | EVP_EncryptInit_ex(ctx, EVP_aes_128_cbc(), NULL, |
| 2377 | tctx->internal->tlsext_tick_aes_key, iv); | 2377 | tctx->tlsext_tick_aes_key, iv); |
| 2378 | HMAC_Init_ex(hctx, tctx->internal->tlsext_tick_hmac_key, | 2378 | HMAC_Init_ex(hctx, tctx->tlsext_tick_hmac_key, |
| 2379 | 16, EVP_sha256(), NULL); | 2379 | 16, EVP_sha256(), NULL); |
| 2380 | memcpy(key_name, tctx->internal->tlsext_tick_key_name, 16); | 2380 | memcpy(key_name, tctx->tlsext_tick_key_name, 16); |
| 2381 | } | 2381 | } |
| 2382 | 2382 | ||
| 2383 | /* Encrypt the session state. */ | 2383 | /* Encrypt the session state. */ |
| @@ -2415,7 +2415,7 @@ ssl3_send_newsession_ticket(SSL *s) | |||
| 2415 | * sessions will live as long as their sessions. | 2415 | * sessions will live as long as their sessions. |
| 2416 | */ | 2416 | */ |
| 2417 | if (!CBB_add_u32(&session_ticket, | 2417 | if (!CBB_add_u32(&session_ticket, |
| 2418 | s->internal->hit ? 0 : s->session->timeout)) | 2418 | s->hit ? 0 : s->session->timeout)) |
| 2419 | goto err; | 2419 | goto err; |
| 2420 | 2420 | ||
| 2421 | if (!CBB_add_u16_length_prefixed(&session_ticket, &ticket)) | 2421 | if (!CBB_add_u16_length_prefixed(&session_ticket, &ticket)) |
| @@ -2473,8 +2473,8 @@ ssl3_send_cert_status(SSL *s) | |||
| 2473 | goto err; | 2473 | goto err; |
| 2474 | if (!CBB_add_u24_length_prefixed(&certstatus, &ocspresp)) | 2474 | if (!CBB_add_u24_length_prefixed(&certstatus, &ocspresp)) |
| 2475 | goto err; | 2475 | goto err; |
| 2476 | if (!CBB_add_bytes(&ocspresp, s->internal->tlsext_ocsp_resp, | 2476 | if (!CBB_add_bytes(&ocspresp, s->tlsext_ocsp_resp, |
| 2477 | s->internal->tlsext_ocsp_resp_len)) | 2477 | s->tlsext_ocsp_resp_len)) |
| 2478 | goto err; | 2478 | goto err; |
| 2479 | if (!ssl3_handshake_msg_finish(s, &cbb)) | 2479 | if (!ssl3_handshake_msg_finish(s, &cbb)) |
| 2480 | goto err; | 2480 | goto err; |
| @@ -2500,8 +2500,8 @@ ssl3_send_server_change_cipher_spec(SSL *s) | |||
| 2500 | memset(&cbb, 0, sizeof(cbb)); | 2500 | memset(&cbb, 0, sizeof(cbb)); |
| 2501 | 2501 | ||
| 2502 | if (s->s3->hs.state == SSL3_ST_SW_CHANGE_A) { | 2502 | if (s->s3->hs.state == SSL3_ST_SW_CHANGE_A) { |
| 2503 | if (!CBB_init_fixed(&cbb, s->internal->init_buf->data, | 2503 | if (!CBB_init_fixed(&cbb, s->init_buf->data, |
| 2504 | s->internal->init_buf->length)) | 2504 | s->init_buf->length)) |
| 2505 | goto err; | 2505 | goto err; |
| 2506 | if (!CBB_add_u8(&cbb, SSL3_MT_CCS)) | 2506 | if (!CBB_add_u8(&cbb, SSL3_MT_CCS)) |
| 2507 | goto err; | 2507 | goto err; |
| @@ -2511,8 +2511,8 @@ ssl3_send_server_change_cipher_spec(SSL *s) | |||
| 2511 | if (outlen > INT_MAX) | 2511 | if (outlen > INT_MAX) |
| 2512 | goto err; | 2512 | goto err; |
| 2513 | 2513 | ||
| 2514 | s->internal->init_num = (int)outlen; | 2514 | s->init_num = (int)outlen; |
| 2515 | s->internal->init_off = 0; | 2515 | s->init_off = 0; |
| 2516 | 2516 | ||
| 2517 | if (SSL_is_dtls(s)) { | 2517 | if (SSL_is_dtls(s)) { |
| 2518 | s->d1->handshake_write_seq = | 2518 | s->d1->handshake_write_seq = |
| @@ -2555,13 +2555,13 @@ ssl3_get_client_finished(SSL *s) | |||
| 2555 | 2555 | ||
| 2556 | md_len = TLS1_FINISH_MAC_LENGTH; | 2556 | md_len = TLS1_FINISH_MAC_LENGTH; |
| 2557 | 2557 | ||
| 2558 | if (s->internal->init_num < 0) { | 2558 | if (s->init_num < 0) { |
| 2559 | al = SSL_AD_DECODE_ERROR; | 2559 | al = SSL_AD_DECODE_ERROR; |
| 2560 | SSLerror(s, SSL_R_BAD_DIGEST_LENGTH); | 2560 | SSLerror(s, SSL_R_BAD_DIGEST_LENGTH); |
| 2561 | goto fatal_err; | 2561 | goto fatal_err; |
| 2562 | } | 2562 | } |
| 2563 | 2563 | ||
| 2564 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 2564 | CBS_init(&cbs, s->init_msg, s->init_num); |
| 2565 | 2565 | ||
| 2566 | if (s->s3->hs.peer_finished_len != md_len || | 2566 | if (s->s3->hs.peer_finished_len != md_len || |
| 2567 | CBS_len(&cbs) != md_len) { | 2567 | CBS_len(&cbs) != md_len) { |
