summaryrefslogtreecommitdiff
path: root/src/lib/libssl/s3_srvr.c
diff options
context:
space:
mode:
authorbeck <>2017-01-23 08:48:45 +0000
committerbeck <>2017-01-23 08:48:45 +0000
commit61af17199189570a4400f2757a9e8dab4bb76d2a (patch)
treee1f210556179334ded73129e6e0733758fe22365 /src/lib/libssl/s3_srvr.c
parentc85967e4f9c3e1f3b3217545939f1d44ddf9f103 (diff)
downloadopenbsd-61af17199189570a4400f2757a9e8dab4bb76d2a.tar.gz
openbsd-61af17199189570a4400f2757a9e8dab4bb76d2a.tar.bz2
openbsd-61af17199189570a4400f2757a9e8dab4bb76d2a.zip
send state and rstate from ssl_st into internal. There are accessors
so these should not be diddled with directly ok jsing@
Diffstat (limited to 'src/lib/libssl/s3_srvr.c')
-rw-r--r--src/lib/libssl/s3_srvr.c118
1 files changed, 59 insertions, 59 deletions
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c
index 31860eb049..fa958d96f8 100644
--- a/src/lib/libssl/s3_srvr.c
+++ b/src/lib/libssl/s3_srvr.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_srvr.c,v 1.147 2017/01/23 06:45:30 beck Exp $ */ 1/* $OpenBSD: s3_srvr.c,v 1.148 2017/01/23 08:48:44 beck 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 *
@@ -195,12 +195,12 @@ ssl3_accept(SSL *s)
195 } 195 }
196 196
197 for (;;) { 197 for (;;) {
198 state = s->state; 198 state = s->internal->state;
199 199
200 switch (s->state) { 200 switch (s->internal->state) {
201 case SSL_ST_RENEGOTIATE: 201 case SSL_ST_RENEGOTIATE:
202 s->internal->renegotiate = 1; 202 s->internal->renegotiate = 1;
203 /* s->state=SSL_ST_ACCEPT; */ 203 /* s->internal->state=SSL_ST_ACCEPT; */
204 204
205 case SSL_ST_BEFORE: 205 case SSL_ST_BEFORE:
206 case SSL_ST_ACCEPT: 206 case SSL_ST_ACCEPT:
@@ -229,7 +229,7 @@ ssl3_accept(SSL *s)
229 229
230 s->internal->init_num = 0; 230 s->internal->init_num = 0;
231 231
232 if (s->state != SSL_ST_RENEGOTIATE) { 232 if (s->internal->state != SSL_ST_RENEGOTIATE) {
233 /* 233 /*
234 * Ok, we now need to push on a buffering BIO 234 * Ok, we now need to push on a buffering BIO
235 * so that the output is sent in a way that 235 * so that the output is sent in a way that
@@ -245,7 +245,7 @@ ssl3_accept(SSL *s)
245 goto end; 245 goto end;
246 } 246 }
247 247
248 s->state = SSL3_ST_SR_CLNT_HELLO_A; 248 s->internal->state = SSL3_ST_SR_CLNT_HELLO_A;
249 s->ctx->internal->stats.sess_accept++; 249 s->ctx->internal->stats.sess_accept++;
250 } else if (!S3I(s)->send_connection_binding) { 250 } else if (!S3I(s)->send_connection_binding) {
251 /* 251 /*
@@ -261,11 +261,11 @@ ssl3_accept(SSL *s)
261 goto end; 261 goto end;
262 } else { 262 } else {
263 /* 263 /*
264 * s->state == SSL_ST_RENEGOTIATE, 264 * s->internal->state == SSL_ST_RENEGOTIATE,
265 * we will just send a HelloRequest 265 * we will just send a HelloRequest
266 */ 266 */
267 s->ctx->internal->stats.sess_accept_renegotiate++; 267 s->ctx->internal->stats.sess_accept_renegotiate++;
268 s->state = SSL3_ST_SW_HELLO_REQ_A; 268 s->internal->state = SSL3_ST_SW_HELLO_REQ_A;
269 } 269 }
270 break; 270 break;
271 271
@@ -277,7 +277,7 @@ ssl3_accept(SSL *s)
277 if (ret <= 0) 277 if (ret <= 0)
278 goto end; 278 goto end;
279 S3I(s)->tmp.next_state = SSL3_ST_SW_HELLO_REQ_C; 279 S3I(s)->tmp.next_state = SSL3_ST_SW_HELLO_REQ_C;
280 s->state = SSL3_ST_SW_FLUSH; 280 s->internal->state = SSL3_ST_SW_FLUSH;
281 s->internal->init_num = 0; 281 s->internal->init_num = 0;
282 282
283 if (!tls1_init_finished_mac(s)) { 283 if (!tls1_init_finished_mac(s)) {
@@ -287,7 +287,7 @@ ssl3_accept(SSL *s)
287 break; 287 break;
288 288
289 case SSL3_ST_SW_HELLO_REQ_C: 289 case SSL3_ST_SW_HELLO_REQ_C:
290 s->state = SSL_ST_OK; 290 s->internal->state = SSL_ST_OK;
291 break; 291 break;
292 292
293 case SSL3_ST_SR_CLNT_HELLO_A: 293 case SSL3_ST_SR_CLNT_HELLO_A:
@@ -302,7 +302,7 @@ ssl3_accept(SSL *s)
302 } 302 }
303 303
304 s->internal->renegotiate = 2; 304 s->internal->renegotiate = 2;
305 s->state = SSL3_ST_SW_SRVR_HELLO_A; 305 s->internal->state = SSL3_ST_SW_SRVR_HELLO_A;
306 s->internal->init_num = 0; 306 s->internal->init_num = 0;
307 break; 307 break;
308 308
@@ -313,12 +313,12 @@ ssl3_accept(SSL *s)
313 goto end; 313 goto end;
314 if (s->internal->hit) { 314 if (s->internal->hit) {
315 if (s->internal->tlsext_ticket_expected) 315 if (s->internal->tlsext_ticket_expected)
316 s->state = SSL3_ST_SW_SESSION_TICKET_A; 316 s->internal->state = SSL3_ST_SW_SESSION_TICKET_A;
317 else 317 else
318 s->state = SSL3_ST_SW_CHANGE_A; 318 s->internal->state = SSL3_ST_SW_CHANGE_A;
319 } 319 }
320 else 320 else
321 s->state = SSL3_ST_SW_CERT_A; 321 s->internal->state = SSL3_ST_SW_CERT_A;
322 s->internal->init_num = 0; 322 s->internal->init_num = 0;
323 break; 323 break;
324 324
@@ -331,12 +331,12 @@ ssl3_accept(SSL *s)
331 if (ret <= 0) 331 if (ret <= 0)
332 goto end; 332 goto end;
333 if (s->internal->tlsext_status_expected) 333 if (s->internal->tlsext_status_expected)
334 s->state = SSL3_ST_SW_CERT_STATUS_A; 334 s->internal->state = SSL3_ST_SW_CERT_STATUS_A;
335 else 335 else
336 s->state = SSL3_ST_SW_KEY_EXCH_A; 336 s->internal->state = SSL3_ST_SW_KEY_EXCH_A;
337 } else { 337 } else {
338 skip = 1; 338 skip = 1;
339 s->state = SSL3_ST_SW_KEY_EXCH_A; 339 s->internal->state = SSL3_ST_SW_KEY_EXCH_A;
340 } 340 }
341 s->internal->init_num = 0; 341 s->internal->init_num = 0;
342 break; 342 break;
@@ -360,7 +360,7 @@ ssl3_accept(SSL *s)
360 } else 360 } else
361 skip = 1; 361 skip = 1;
362 362
363 s->state = SSL3_ST_SW_CERT_REQ_A; 363 s->internal->state = SSL3_ST_SW_CERT_REQ_A;
364 s->internal->init_num = 0; 364 s->internal->init_num = 0;
365 break; 365 break;
366 366
@@ -392,7 +392,7 @@ ssl3_accept(SSL *s)
392 /* No cert request */ 392 /* No cert request */
393 skip = 1; 393 skip = 1;
394 S3I(s)->tmp.cert_request = 0; 394 S3I(s)->tmp.cert_request = 0;
395 s->state = SSL3_ST_SW_SRVR_DONE_A; 395 s->internal->state = SSL3_ST_SW_SRVR_DONE_A;
396 if (S3I(s)->handshake_buffer) { 396 if (S3I(s)->handshake_buffer) {
397 if (!tls1_digest_cached_records(s)) { 397 if (!tls1_digest_cached_records(s)) {
398 ret = -1; 398 ret = -1;
@@ -404,7 +404,7 @@ ssl3_accept(SSL *s)
404 ret = ssl3_send_certificate_request(s); 404 ret = ssl3_send_certificate_request(s);
405 if (ret <= 0) 405 if (ret <= 0)
406 goto end; 406 goto end;
407 s->state = SSL3_ST_SW_SRVR_DONE_A; 407 s->internal->state = SSL3_ST_SW_SRVR_DONE_A;
408 s->internal->init_num = 0; 408 s->internal->init_num = 0;
409 } 409 }
410 break; 410 break;
@@ -415,7 +415,7 @@ ssl3_accept(SSL *s)
415 if (ret <= 0) 415 if (ret <= 0)
416 goto end; 416 goto end;
417 S3I(s)->tmp.next_state = SSL3_ST_SR_CERT_A; 417 S3I(s)->tmp.next_state = SSL3_ST_SR_CERT_A;
418 s->state = SSL3_ST_SW_FLUSH; 418 s->internal->state = SSL3_ST_SW_FLUSH;
419 s->internal->init_num = 0; 419 s->internal->init_num = 0;
420 break; 420 break;
421 421
@@ -439,7 +439,7 @@ ssl3_accept(SSL *s)
439 } 439 }
440 s->internal->rwstate = SSL_NOTHING; 440 s->internal->rwstate = SSL_NOTHING;
441 441
442 s->state = S3I(s)->tmp.next_state; 442 s->internal->state = S3I(s)->tmp.next_state;
443 break; 443 break;
444 444
445 case SSL3_ST_SR_CERT_A: 445 case SSL3_ST_SR_CERT_A:
@@ -450,7 +450,7 @@ ssl3_accept(SSL *s)
450 goto end; 450 goto end;
451 } 451 }
452 s->internal->init_num = 0; 452 s->internal->init_num = 0;
453 s->state = SSL3_ST_SR_KEY_EXCH_A; 453 s->internal->state = SSL3_ST_SR_KEY_EXCH_A;
454 break; 454 break;
455 455
456 case SSL3_ST_SR_KEY_EXCH_A: 456 case SSL3_ST_SR_KEY_EXCH_A:
@@ -470,12 +470,12 @@ ssl3_accept(SSL *s)
470 * for key exchange. 470 * for key exchange.
471 */ 471 */
472 if (S3I(s)->next_proto_neg_seen) 472 if (S3I(s)->next_proto_neg_seen)
473 s->state = SSL3_ST_SR_NEXT_PROTO_A; 473 s->internal->state = SSL3_ST_SR_NEXT_PROTO_A;
474 else 474 else
475 s->state = SSL3_ST_SR_FINISHED_A; 475 s->internal->state = SSL3_ST_SR_FINISHED_A;
476 s->internal->init_num = 0; 476 s->internal->init_num = 0;
477 } else if (SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) { 477 } else if (SSL_USE_SIGALGS(s) || (alg_k & SSL_kGOST)) {
478 s->state = SSL3_ST_SR_CERT_VRFY_A; 478 s->internal->state = SSL3_ST_SR_CERT_VRFY_A;
479 s->internal->init_num = 0; 479 s->internal->init_num = 0;
480 if (!s->session->peer) 480 if (!s->session->peer)
481 break; 481 break;
@@ -498,7 +498,7 @@ ssl3_accept(SSL *s)
498 int offset = 0; 498 int offset = 0;
499 int dgst_num; 499 int dgst_num;
500 500
501 s->state = SSL3_ST_SR_CERT_VRFY_A; 501 s->internal->state = SSL3_ST_SR_CERT_VRFY_A;
502 s->internal->init_num = 0; 502 s->internal->init_num = 0;
503 503
504 /* 504 /*
@@ -544,9 +544,9 @@ ssl3_accept(SSL *s)
544 goto end; 544 goto end;
545 545
546 if (S3I(s)->next_proto_neg_seen) 546 if (S3I(s)->next_proto_neg_seen)
547 s->state = SSL3_ST_SR_NEXT_PROTO_A; 547 s->internal->state = SSL3_ST_SR_NEXT_PROTO_A;
548 else 548 else
549 s->state = SSL3_ST_SR_FINISHED_A; 549 s->internal->state = SSL3_ST_SR_FINISHED_A;
550 s->internal->init_num = 0; 550 s->internal->init_num = 0;
551 break; 551 break;
552 552
@@ -556,7 +556,7 @@ ssl3_accept(SSL *s)
556 if (ret <= 0) 556 if (ret <= 0)
557 goto end; 557 goto end;
558 s->internal->init_num = 0; 558 s->internal->init_num = 0;
559 s->state = SSL3_ST_SR_FINISHED_A; 559 s->internal->state = SSL3_ST_SR_FINISHED_A;
560 break; 560 break;
561 561
562 case SSL3_ST_SR_FINISHED_A: 562 case SSL3_ST_SR_FINISHED_A:
@@ -567,11 +567,11 @@ ssl3_accept(SSL *s)
567 if (ret <= 0) 567 if (ret <= 0)
568 goto end; 568 goto end;
569 if (s->internal->hit) 569 if (s->internal->hit)
570 s->state = SSL_ST_OK; 570 s->internal->state = SSL_ST_OK;
571 else if (s->internal->tlsext_ticket_expected) 571 else if (s->internal->tlsext_ticket_expected)
572 s->state = SSL3_ST_SW_SESSION_TICKET_A; 572 s->internal->state = SSL3_ST_SW_SESSION_TICKET_A;
573 else 573 else
574 s->state = SSL3_ST_SW_CHANGE_A; 574 s->internal->state = SSL3_ST_SW_CHANGE_A;
575 s->internal->init_num = 0; 575 s->internal->init_num = 0;
576 break; 576 break;
577 577
@@ -580,7 +580,7 @@ ssl3_accept(SSL *s)
580 ret = ssl3_send_newsession_ticket(s); 580 ret = ssl3_send_newsession_ticket(s);
581 if (ret <= 0) 581 if (ret <= 0)
582 goto end; 582 goto end;
583 s->state = SSL3_ST_SW_CHANGE_A; 583 s->internal->state = SSL3_ST_SW_CHANGE_A;
584 s->internal->init_num = 0; 584 s->internal->init_num = 0;
585 break; 585 break;
586 586
@@ -589,7 +589,7 @@ ssl3_accept(SSL *s)
589 ret = ssl3_send_cert_status(s); 589 ret = ssl3_send_cert_status(s);
590 if (ret <= 0) 590 if (ret <= 0)
591 goto end; 591 goto end;
592 s->state = SSL3_ST_SW_KEY_EXCH_A; 592 s->internal->state = SSL3_ST_SW_KEY_EXCH_A;
593 s->internal->init_num = 0; 593 s->internal->init_num = 0;
594 break; 594 break;
595 595
@@ -608,7 +608,7 @@ ssl3_accept(SSL *s)
608 608
609 if (ret <= 0) 609 if (ret <= 0)
610 goto end; 610 goto end;
611 s->state = SSL3_ST_SW_FINISHED_A; 611 s->internal->state = SSL3_ST_SW_FINISHED_A;
612 s->internal->init_num = 0; 612 s->internal->init_num = 0;
613 613
614 if (!s->method->ssl3_enc->change_cipher_state( 614 if (!s->method->ssl3_enc->change_cipher_state(
@@ -627,7 +627,7 @@ ssl3_accept(SSL *s)
627 s->method->ssl3_enc->server_finished_label_len); 627 s->method->ssl3_enc->server_finished_label_len);
628 if (ret <= 0) 628 if (ret <= 0)
629 goto end; 629 goto end;
630 s->state = SSL3_ST_SW_FLUSH; 630 s->internal->state = SSL3_ST_SW_FLUSH;
631 if (s->internal->hit) { 631 if (s->internal->hit) {
632 if (S3I(s)->next_proto_neg_seen) { 632 if (S3I(s)->next_proto_neg_seen) {
633 s->s3->flags |= SSL3_FLAGS_CCS_OK; 633 s->s3->flags |= SSL3_FLAGS_CCS_OK;
@@ -687,11 +687,11 @@ ssl3_accept(SSL *s)
687 } 687 }
688 688
689 689
690 if ((cb != NULL) && (s->state != state)) { 690 if ((cb != NULL) && (s->internal->state != state)) {
691 new_state = s->state; 691 new_state = s->internal->state;
692 s->state = state; 692 s->internal->state = state;
693 cb(s, SSL_CB_ACCEPT_LOOP, 1); 693 cb(s, SSL_CB_ACCEPT_LOOP, 1);
694 s->state = new_state; 694 s->internal->state = new_state;
695 } 695 }
696 } 696 }
697 skip = 0; 697 skip = 0;
@@ -708,11 +708,11 @@ end:
708int 708int
709ssl3_send_hello_request(SSL *s) 709ssl3_send_hello_request(SSL *s)
710{ 710{
711 if (s->state == SSL3_ST_SW_HELLO_REQ_A) { 711 if (s->internal->state == SSL3_ST_SW_HELLO_REQ_A) {
712 ssl3_handshake_msg_start(s, SSL3_MT_HELLO_REQUEST); 712 ssl3_handshake_msg_start(s, SSL3_MT_HELLO_REQUEST);
713 ssl3_handshake_msg_finish(s, 0); 713 ssl3_handshake_msg_finish(s, 0);
714 714
715 s->state = SSL3_ST_SW_HELLO_REQ_B; 715 s->internal->state = SSL3_ST_SW_HELLO_REQ_B;
716 } 716 }
717 717
718 /* SSL3_ST_SW_HELLO_REQ_B */ 718 /* SSL3_ST_SW_HELLO_REQ_B */
@@ -738,8 +738,8 @@ ssl3_get_client_hello(SSL *s)
738 * If we are SSLv3, we will respond with SSLv3, even if prompted with 738 * If we are SSLv3, we will respond with SSLv3, even if prompted with
739 * TLSv1. 739 * TLSv1.
740 */ 740 */
741 if (s->state == SSL3_ST_SR_CLNT_HELLO_A) { 741 if (s->internal->state == SSL3_ST_SR_CLNT_HELLO_A) {
742 s->state = SSL3_ST_SR_CLNT_HELLO_B; 742 s->internal->state = SSL3_ST_SR_CLNT_HELLO_B;
743 } 743 }
744 s->internal->first_packet = 1; 744 s->internal->first_packet = 1;
745 n = s->method->ssl_get_message(s, SSL3_ST_SR_CLNT_HELLO_B, 745 n = s->method->ssl_get_message(s, SSL3_ST_SR_CLNT_HELLO_B,
@@ -1099,7 +1099,7 @@ ssl3_send_server_hello(SSL *s)
1099 1099
1100 bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH; 1100 bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH;
1101 1101
1102 if (s->state == SSL3_ST_SW_SRVR_HELLO_A) { 1102 if (s->internal->state == SSL3_ST_SW_SRVR_HELLO_A) {
1103 d = p = ssl3_handshake_msg_start(s, SSL3_MT_SERVER_HELLO); 1103 d = p = ssl3_handshake_msg_start(s, SSL3_MT_SERVER_HELLO);
1104 1104
1105 if (!CBB_init_fixed(&cbb, p, bufend - p)) 1105 if (!CBB_init_fixed(&cbb, p, bufend - p))
@@ -1179,11 +1179,11 @@ ssl3_send_server_hello(SSL *s)
1179int 1179int
1180ssl3_send_server_done(SSL *s) 1180ssl3_send_server_done(SSL *s)
1181{ 1181{
1182 if (s->state == SSL3_ST_SW_SRVR_DONE_A) { 1182 if (s->internal->state == SSL3_ST_SW_SRVR_DONE_A) {
1183 ssl3_handshake_msg_start(s, SSL3_MT_SERVER_DONE); 1183 ssl3_handshake_msg_start(s, SSL3_MT_SERVER_DONE);
1184 ssl3_handshake_msg_finish(s, 0); 1184 ssl3_handshake_msg_finish(s, 0);
1185 1185
1186 s->state = SSL3_ST_SW_SRVR_DONE_B; 1186 s->internal->state = SSL3_ST_SW_SRVR_DONE_B;
1187 } 1187 }
1188 1188
1189 /* SSL3_ST_SW_SRVR_DONE_B */ 1189 /* SSL3_ST_SW_SRVR_DONE_B */
@@ -1487,7 +1487,7 @@ ssl3_send_server_key_exchange(SSL *s)
1487 memset(&cbb, 0, sizeof(cbb)); 1487 memset(&cbb, 0, sizeof(cbb));
1488 1488
1489 EVP_MD_CTX_init(&md_ctx); 1489 EVP_MD_CTX_init(&md_ctx);
1490 if (s->state == SSL3_ST_SW_KEY_EXCH_A) { 1490 if (s->internal->state == SSL3_ST_SW_KEY_EXCH_A) {
1491 type = S3I(s)->tmp.new_cipher->algorithm_mkey; 1491 type = S3I(s)->tmp.new_cipher->algorithm_mkey;
1492 cert = s->cert; 1492 cert = s->cert;
1493 1493
@@ -1621,7 +1621,7 @@ ssl3_send_server_key_exchange(SSL *s)
1621 ssl3_handshake_msg_finish(s, n); 1621 ssl3_handshake_msg_finish(s, n);
1622 } 1622 }
1623 1623
1624 s->state = SSL3_ST_SW_KEY_EXCH_B; 1624 s->internal->state = SSL3_ST_SW_KEY_EXCH_B;
1625 1625
1626 EVP_MD_CTX_cleanup(&md_ctx); 1626 EVP_MD_CTX_cleanup(&md_ctx);
1627 1627
@@ -1646,7 +1646,7 @@ ssl3_send_certificate_request(SSL *s)
1646 X509_NAME *name; 1646 X509_NAME *name;
1647 BUF_MEM *buf; 1647 BUF_MEM *buf;
1648 1648
1649 if (s->state == SSL3_ST_SW_CERT_REQ_A) { 1649 if (s->internal->state == SSL3_ST_SW_CERT_REQ_A) {
1650 buf = s->internal->init_buf; 1650 buf = s->internal->init_buf;
1651 1651
1652 d = p = ssl3_handshake_msg_start(s, 1652 d = p = ssl3_handshake_msg_start(s,
@@ -1699,7 +1699,7 @@ ssl3_send_certificate_request(SSL *s)
1699 1699
1700 ssl3_handshake_msg_finish(s, n); 1700 ssl3_handshake_msg_finish(s, n);
1701 1701
1702 s->state = SSL3_ST_SW_CERT_REQ_B; 1702 s->internal->state = SSL3_ST_SW_CERT_REQ_B;
1703 } 1703 }
1704 1704
1705 /* SSL3_ST_SW_CERT_REQ_B */ 1705 /* SSL3_ST_SW_CERT_REQ_B */
@@ -2640,7 +2640,7 @@ ssl3_send_server_certificate(SSL *s)
2640 2640
2641 memset(&cbb, 0, sizeof(cbb)); 2641 memset(&cbb, 0, sizeof(cbb));
2642 2642
2643 if (s->state == SSL3_ST_SW_CERT_A) { 2643 if (s->internal->state == SSL3_ST_SW_CERT_A) {
2644 if ((x = ssl_get_server_send_cert(s)) == NULL) { 2644 if ((x = ssl_get_server_send_cert(s)) == NULL) {
2645 SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE, 2645 SSLerr(SSL_F_SSL3_SEND_SERVER_CERTIFICATE,
2646 ERR_R_INTERNAL_ERROR); 2646 ERR_R_INTERNAL_ERROR);
@@ -2655,7 +2655,7 @@ ssl3_send_server_certificate(SSL *s)
2655 if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) 2655 if (!ssl3_handshake_msg_finish_cbb(s, &cbb))
2656 goto err; 2656 goto err;
2657 2657
2658 s->state = SSL3_ST_SW_CERT_B; 2658 s->internal->state = SSL3_ST_SW_CERT_B;
2659 } 2659 }
2660 2660
2661 /* SSL3_ST_SW_CERT_B */ 2661 /* SSL3_ST_SW_CERT_B */
@@ -2683,7 +2683,7 @@ ssl3_send_newsession_ticket(SSL *s)
2683 unsigned char iv[EVP_MAX_IV_LENGTH]; 2683 unsigned char iv[EVP_MAX_IV_LENGTH];
2684 unsigned char key_name[16]; 2684 unsigned char key_name[16];
2685 2685
2686 if (s->state == SSL3_ST_SW_SESSION_TICKET_A) { 2686 if (s->internal->state == SSL3_ST_SW_SESSION_TICKET_A) {
2687 /* get session encoding length */ 2687 /* get session encoding length */
2688 slen_full = i2d_SSL_SESSION(s->session, NULL); 2688 slen_full = i2d_SSL_SESSION(s->session, NULL);
2689 /* 2689 /*
@@ -2796,7 +2796,7 @@ ssl3_send_newsession_ticket(SSL *s)
2796 2796
2797 ssl3_handshake_msg_finish(s, len); 2797 ssl3_handshake_msg_finish(s, len);
2798 2798
2799 s->state = SSL3_ST_SW_SESSION_TICKET_B; 2799 s->internal->state = SSL3_ST_SW_SESSION_TICKET_B;
2800 2800
2801 explicit_bzero(senc, slen_full); 2801 explicit_bzero(senc, slen_full);
2802 free(senc); 2802 free(senc);
@@ -2818,7 +2818,7 @@ ssl3_send_cert_status(SSL *s)
2818{ 2818{
2819 unsigned char *p; 2819 unsigned char *p;
2820 2820
2821 if (s->state == SSL3_ST_SW_CERT_STATUS_A) { 2821 if (s->internal->state == SSL3_ST_SW_CERT_STATUS_A) {
2822 /* 2822 /*
2823 * Grow buffer if need be: the length calculation is as 2823 * Grow buffer if need be: the length calculation is as
2824 * follows 1 (message type) + 3 (message length) + 2824 * follows 1 (message type) + 3 (message length) +
@@ -2837,7 +2837,7 @@ ssl3_send_cert_status(SSL *s)
2837 2837
2838 ssl3_handshake_msg_finish(s, s->internal->tlsext_ocsp_resplen + 4); 2838 ssl3_handshake_msg_finish(s, s->internal->tlsext_ocsp_resplen + 4);
2839 2839
2840 s->state = SSL3_ST_SW_CERT_STATUS_B; 2840 s->internal->state = SSL3_ST_SW_CERT_STATUS_B;
2841 } 2841 }
2842 2842
2843 /* SSL3_ST_SW_CERT_STATUS_B */ 2843 /* SSL3_ST_SW_CERT_STATUS_B */
@@ -2873,7 +2873,7 @@ ssl3_get_next_proto(SSL *s)
2873 return ((int)n); 2873 return ((int)n);
2874 2874
2875 /* 2875 /*
2876 * s->state doesn't reflect whether ChangeCipherSpec has been received 2876 * s->internal->state doesn't reflect whether ChangeCipherSpec has been received
2877 * in this handshake, but S3I(s)->change_cipher_spec does (will be reset 2877 * in this handshake, but S3I(s)->change_cipher_spec does (will be reset
2878 * by ssl3_get_finished). 2878 * by ssl3_get_finished).
2879 */ 2879 */