diff options
Diffstat (limited to 'src/lib/libssl/s3_clnt.c')
| -rw-r--r-- | src/lib/libssl/s3_clnt.c | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 0893682e75..a6feb68e91 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_clnt.c,v 1.168 2017/01/23 06:45:30 beck Exp $ */ | 1 | /* $OpenBSD: s3_clnt.c,v 1.169 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 | * |
| @@ -193,12 +193,12 @@ ssl3_connect(SSL *s) | |||
| 193 | SSL_clear(s); | 193 | SSL_clear(s); |
| 194 | 194 | ||
| 195 | for (;;) { | 195 | for (;;) { |
| 196 | state = s->state; | 196 | state = s->internal->state; |
| 197 | 197 | ||
| 198 | switch (s->state) { | 198 | switch (s->internal->state) { |
| 199 | case SSL_ST_RENEGOTIATE: | 199 | case SSL_ST_RENEGOTIATE: |
| 200 | s->internal->renegotiate = 1; | 200 | s->internal->renegotiate = 1; |
| 201 | s->state = SSL_ST_CONNECT; | 201 | s->internal->state = SSL_ST_CONNECT; |
| 202 | s->ctx->internal->stats.sess_connect_renegotiate++; | 202 | s->ctx->internal->stats.sess_connect_renegotiate++; |
| 203 | /* break */ | 203 | /* break */ |
| 204 | case SSL_ST_BEFORE: | 204 | case SSL_ST_BEFORE: |
| @@ -240,7 +240,7 @@ ssl3_connect(SSL *s) | |||
| 240 | goto end; | 240 | goto end; |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | s->state = SSL3_ST_CW_CLNT_HELLO_A; | 243 | s->internal->state = SSL3_ST_CW_CLNT_HELLO_A; |
| 244 | s->ctx->internal->stats.sess_connect++; | 244 | s->ctx->internal->stats.sess_connect++; |
| 245 | s->internal->init_num = 0; | 245 | s->internal->init_num = 0; |
| 246 | break; | 246 | break; |
| @@ -252,7 +252,7 @@ ssl3_connect(SSL *s) | |||
| 252 | ret = ssl3_client_hello(s); | 252 | ret = ssl3_client_hello(s); |
| 253 | if (ret <= 0) | 253 | if (ret <= 0) |
| 254 | goto end; | 254 | goto end; |
| 255 | s->state = SSL3_ST_CR_SRVR_HELLO_A; | 255 | s->internal->state = SSL3_ST_CR_SRVR_HELLO_A; |
| 256 | s->internal->init_num = 0; | 256 | s->internal->init_num = 0; |
| 257 | 257 | ||
| 258 | /* turn on buffering for the next lot of output */ | 258 | /* turn on buffering for the next lot of output */ |
| @@ -268,13 +268,13 @@ ssl3_connect(SSL *s) | |||
| 268 | goto end; | 268 | goto end; |
| 269 | 269 | ||
| 270 | if (s->internal->hit) { | 270 | if (s->internal->hit) { |
| 271 | s->state = SSL3_ST_CR_FINISHED_A; | 271 | s->internal->state = SSL3_ST_CR_FINISHED_A; |
| 272 | if (s->internal->tlsext_ticket_expected) { | 272 | if (s->internal->tlsext_ticket_expected) { |
| 273 | /* receive renewed session ticket */ | 273 | /* receive renewed session ticket */ |
| 274 | s->state = SSL3_ST_CR_SESSION_TICKET_A; | 274 | s->internal->state = SSL3_ST_CR_SESSION_TICKET_A; |
| 275 | } | 275 | } |
| 276 | } else | 276 | } else |
| 277 | s->state = SSL3_ST_CR_CERT_A; | 277 | s->internal->state = SSL3_ST_CR_CERT_A; |
| 278 | s->internal->init_num = 0; | 278 | s->internal->init_num = 0; |
| 279 | break; | 279 | break; |
| 280 | 280 | ||
| @@ -286,9 +286,9 @@ ssl3_connect(SSL *s) | |||
| 286 | if (ret == 2) { | 286 | if (ret == 2) { |
| 287 | s->internal->hit = 1; | 287 | s->internal->hit = 1; |
| 288 | if (s->internal->tlsext_ticket_expected) | 288 | if (s->internal->tlsext_ticket_expected) |
| 289 | s->state = SSL3_ST_CR_SESSION_TICKET_A; | 289 | s->internal->state = SSL3_ST_CR_SESSION_TICKET_A; |
| 290 | else | 290 | else |
| 291 | s->state = SSL3_ST_CR_FINISHED_A; | 291 | s->internal->state = SSL3_ST_CR_FINISHED_A; |
| 292 | s->internal->init_num = 0; | 292 | s->internal->init_num = 0; |
| 293 | break; | 293 | break; |
| 294 | } | 294 | } |
| @@ -299,12 +299,12 @@ ssl3_connect(SSL *s) | |||
| 299 | if (ret <= 0) | 299 | if (ret <= 0) |
| 300 | goto end; | 300 | goto end; |
| 301 | if (s->internal->tlsext_status_expected) | 301 | if (s->internal->tlsext_status_expected) |
| 302 | s->state = SSL3_ST_CR_CERT_STATUS_A; | 302 | s->internal->state = SSL3_ST_CR_CERT_STATUS_A; |
| 303 | else | 303 | else |
| 304 | s->state = SSL3_ST_CR_KEY_EXCH_A; | 304 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; |
| 305 | } else { | 305 | } else { |
| 306 | skip = 1; | 306 | skip = 1; |
| 307 | s->state = SSL3_ST_CR_KEY_EXCH_A; | 307 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; |
| 308 | } | 308 | } |
| 309 | s->internal->init_num = 0; | 309 | s->internal->init_num = 0; |
| 310 | break; | 310 | break; |
| @@ -314,7 +314,7 @@ ssl3_connect(SSL *s) | |||
| 314 | ret = ssl3_get_server_key_exchange(s); | 314 | ret = ssl3_get_server_key_exchange(s); |
| 315 | if (ret <= 0) | 315 | if (ret <= 0) |
| 316 | goto end; | 316 | goto end; |
| 317 | s->state = SSL3_ST_CR_CERT_REQ_A; | 317 | s->internal->state = SSL3_ST_CR_CERT_REQ_A; |
| 318 | s->internal->init_num = 0; | 318 | s->internal->init_num = 0; |
| 319 | 319 | ||
| 320 | /* | 320 | /* |
| @@ -332,7 +332,7 @@ ssl3_connect(SSL *s) | |||
| 332 | ret = ssl3_get_certificate_request(s); | 332 | ret = ssl3_get_certificate_request(s); |
| 333 | if (ret <= 0) | 333 | if (ret <= 0) |
| 334 | goto end; | 334 | goto end; |
| 335 | s->state = SSL3_ST_CR_SRVR_DONE_A; | 335 | s->internal->state = SSL3_ST_CR_SRVR_DONE_A; |
| 336 | s->internal->init_num = 0; | 336 | s->internal->init_num = 0; |
| 337 | break; | 337 | break; |
| 338 | 338 | ||
| @@ -342,9 +342,9 @@ ssl3_connect(SSL *s) | |||
| 342 | if (ret <= 0) | 342 | if (ret <= 0) |
| 343 | goto end; | 343 | goto end; |
| 344 | if (S3I(s)->tmp.cert_req) | 344 | if (S3I(s)->tmp.cert_req) |
| 345 | s->state = SSL3_ST_CW_CERT_A; | 345 | s->internal->state = SSL3_ST_CW_CERT_A; |
| 346 | else | 346 | else |
| 347 | s->state = SSL3_ST_CW_KEY_EXCH_A; | 347 | s->internal->state = SSL3_ST_CW_KEY_EXCH_A; |
| 348 | s->internal->init_num = 0; | 348 | s->internal->init_num = 0; |
| 349 | 349 | ||
| 350 | break; | 350 | break; |
| @@ -356,7 +356,7 @@ ssl3_connect(SSL *s) | |||
| 356 | ret = ssl3_send_client_certificate(s); | 356 | ret = ssl3_send_client_certificate(s); |
| 357 | if (ret <= 0) | 357 | if (ret <= 0) |
| 358 | goto end; | 358 | goto end; |
| 359 | s->state = SSL3_ST_CW_KEY_EXCH_A; | 359 | s->internal->state = SSL3_ST_CW_KEY_EXCH_A; |
| 360 | s->internal->init_num = 0; | 360 | s->internal->init_num = 0; |
| 361 | break; | 361 | break; |
| 362 | 362 | ||
| @@ -382,13 +382,13 @@ ssl3_connect(SSL *s) | |||
| 382 | * inside the client certificate. | 382 | * inside the client certificate. |
| 383 | */ | 383 | */ |
| 384 | if (S3I(s)->tmp.cert_req == 1) { | 384 | if (S3I(s)->tmp.cert_req == 1) { |
| 385 | s->state = SSL3_ST_CW_CERT_VRFY_A; | 385 | s->internal->state = SSL3_ST_CW_CERT_VRFY_A; |
| 386 | } else { | 386 | } else { |
| 387 | s->state = SSL3_ST_CW_CHANGE_A; | 387 | s->internal->state = SSL3_ST_CW_CHANGE_A; |
| 388 | S3I(s)->change_cipher_spec = 0; | 388 | S3I(s)->change_cipher_spec = 0; |
| 389 | } | 389 | } |
| 390 | if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) { | 390 | if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) { |
| 391 | s->state = SSL3_ST_CW_CHANGE_A; | 391 | s->internal->state = SSL3_ST_CW_CHANGE_A; |
| 392 | S3I(s)->change_cipher_spec = 0; | 392 | S3I(s)->change_cipher_spec = 0; |
| 393 | } | 393 | } |
| 394 | 394 | ||
| @@ -400,7 +400,7 @@ ssl3_connect(SSL *s) | |||
| 400 | ret = ssl3_send_client_verify(s); | 400 | ret = ssl3_send_client_verify(s); |
| 401 | if (ret <= 0) | 401 | if (ret <= 0) |
| 402 | goto end; | 402 | goto end; |
| 403 | s->state = SSL3_ST_CW_CHANGE_A; | 403 | s->internal->state = SSL3_ST_CW_CHANGE_A; |
| 404 | s->internal->init_num = 0; | 404 | s->internal->init_num = 0; |
| 405 | S3I(s)->change_cipher_spec = 0; | 405 | S3I(s)->change_cipher_spec = 0; |
| 406 | break; | 406 | break; |
| @@ -413,9 +413,9 @@ ssl3_connect(SSL *s) | |||
| 413 | goto end; | 413 | goto end; |
| 414 | 414 | ||
| 415 | if (S3I(s)->next_proto_neg_seen) | 415 | if (S3I(s)->next_proto_neg_seen) |
| 416 | s->state = SSL3_ST_CW_NEXT_PROTO_A; | 416 | s->internal->state = SSL3_ST_CW_NEXT_PROTO_A; |
| 417 | else | 417 | else |
| 418 | s->state = SSL3_ST_CW_FINISHED_A; | 418 | s->internal->state = SSL3_ST_CW_FINISHED_A; |
| 419 | s->internal->init_num = 0; | 419 | s->internal->init_num = 0; |
| 420 | 420 | ||
| 421 | s->session->cipher = S3I(s)->tmp.new_cipher; | 421 | s->session->cipher = S3I(s)->tmp.new_cipher; |
| @@ -437,7 +437,7 @@ ssl3_connect(SSL *s) | |||
| 437 | ret = ssl3_send_next_proto(s); | 437 | ret = ssl3_send_next_proto(s); |
| 438 | if (ret <= 0) | 438 | if (ret <= 0) |
| 439 | goto end; | 439 | goto end; |
| 440 | s->state = SSL3_ST_CW_FINISHED_A; | 440 | s->internal->state = SSL3_ST_CW_FINISHED_A; |
| 441 | break; | 441 | break; |
| 442 | 442 | ||
| 443 | case SSL3_ST_CW_FINISHED_A: | 443 | case SSL3_ST_CW_FINISHED_A: |
| @@ -449,7 +449,7 @@ ssl3_connect(SSL *s) | |||
| 449 | if (ret <= 0) | 449 | if (ret <= 0) |
| 450 | goto end; | 450 | goto end; |
| 451 | s->s3->flags |= SSL3_FLAGS_CCS_OK; | 451 | s->s3->flags |= SSL3_FLAGS_CCS_OK; |
| 452 | s->state = SSL3_ST_CW_FLUSH; | 452 | s->internal->state = SSL3_ST_CW_FLUSH; |
| 453 | 453 | ||
| 454 | /* clear flags */ | 454 | /* clear flags */ |
| 455 | s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER; | 455 | s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER; |
| @@ -457,7 +457,7 @@ ssl3_connect(SSL *s) | |||
| 457 | S3I(s)->tmp.next_state = SSL_ST_OK; | 457 | S3I(s)->tmp.next_state = SSL_ST_OK; |
| 458 | if (s->s3->flags & | 458 | if (s->s3->flags & |
| 459 | SSL3_FLAGS_DELAY_CLIENT_FINISHED) { | 459 | SSL3_FLAGS_DELAY_CLIENT_FINISHED) { |
| 460 | s->state = SSL_ST_OK; | 460 | s->internal->state = SSL_ST_OK; |
| 461 | s->s3->flags|=SSL3_FLAGS_POP_BUFFER; | 461 | s->s3->flags|=SSL3_FLAGS_POP_BUFFER; |
| 462 | S3I(s)->delay_buf_pop_ret = 0; | 462 | S3I(s)->delay_buf_pop_ret = 0; |
| 463 | } | 463 | } |
| @@ -478,7 +478,7 @@ ssl3_connect(SSL *s) | |||
| 478 | ret = ssl3_get_new_session_ticket(s); | 478 | ret = ssl3_get_new_session_ticket(s); |
| 479 | if (ret <= 0) | 479 | if (ret <= 0) |
| 480 | goto end; | 480 | goto end; |
| 481 | s->state = SSL3_ST_CR_FINISHED_A; | 481 | s->internal->state = SSL3_ST_CR_FINISHED_A; |
| 482 | s->internal->init_num = 0; | 482 | s->internal->init_num = 0; |
| 483 | break; | 483 | break; |
| 484 | 484 | ||
| @@ -487,7 +487,7 @@ ssl3_connect(SSL *s) | |||
| 487 | ret = ssl3_get_cert_status(s); | 487 | ret = ssl3_get_cert_status(s); |
| 488 | if (ret <= 0) | 488 | if (ret <= 0) |
| 489 | goto end; | 489 | goto end; |
| 490 | s->state = SSL3_ST_CR_KEY_EXCH_A; | 490 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; |
| 491 | s->internal->init_num = 0; | 491 | s->internal->init_num = 0; |
| 492 | break; | 492 | break; |
| 493 | 493 | ||
| @@ -500,9 +500,9 @@ ssl3_connect(SSL *s) | |||
| 500 | goto end; | 500 | goto end; |
| 501 | 501 | ||
| 502 | if (s->internal->hit) | 502 | if (s->internal->hit) |
| 503 | s->state = SSL3_ST_CW_CHANGE_A; | 503 | s->internal->state = SSL3_ST_CW_CHANGE_A; |
| 504 | else | 504 | else |
| 505 | s->state = SSL_ST_OK; | 505 | s->internal->state = SSL_ST_OK; |
| 506 | s->internal->init_num = 0; | 506 | s->internal->init_num = 0; |
| 507 | break; | 507 | break; |
| 508 | 508 | ||
| @@ -513,7 +513,7 @@ ssl3_connect(SSL *s) | |||
| 513 | goto end; | 513 | goto end; |
| 514 | } | 514 | } |
| 515 | s->internal->rwstate = SSL_NOTHING; | 515 | s->internal->rwstate = SSL_NOTHING; |
| 516 | s->state = S3I(s)->tmp.next_state; | 516 | s->internal->state = S3I(s)->tmp.next_state; |
| 517 | break; | 517 | break; |
| 518 | 518 | ||
| 519 | case SSL_ST_OK: | 519 | case SSL_ST_OK: |
| @@ -567,11 +567,11 @@ ssl3_connect(SSL *s) | |||
| 567 | goto end; | 567 | goto end; |
| 568 | } | 568 | } |
| 569 | 569 | ||
| 570 | if ((cb != NULL) && (s->state != state)) { | 570 | if ((cb != NULL) && (s->internal->state != state)) { |
| 571 | new_state = s->state; | 571 | new_state = s->internal->state; |
| 572 | s->state = state; | 572 | s->internal->state = state; |
| 573 | cb(s, SSL_CB_CONNECT_LOOP, 1); | 573 | cb(s, SSL_CB_CONNECT_LOOP, 1); |
| 574 | s->state = new_state; | 574 | s->internal->state = new_state; |
| 575 | } | 575 | } |
| 576 | } | 576 | } |
| 577 | skip = 0; | 577 | skip = 0; |
| @@ -594,7 +594,7 @@ ssl3_client_hello(SSL *s) | |||
| 594 | 594 | ||
| 595 | bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH; | 595 | bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH; |
| 596 | 596 | ||
| 597 | if (s->state == SSL3_ST_CW_CLNT_HELLO_A) { | 597 | if (s->internal->state == SSL3_ST_CW_CLNT_HELLO_A) { |
| 598 | SSL_SESSION *sess = s->session; | 598 | SSL_SESSION *sess = s->session; |
| 599 | 599 | ||
| 600 | if ((sess == NULL) || | 600 | if ((sess == NULL) || |
| @@ -706,7 +706,7 @@ ssl3_client_hello(SSL *s) | |||
| 706 | 706 | ||
| 707 | ssl3_handshake_msg_finish(s, p - d); | 707 | ssl3_handshake_msg_finish(s, p - d); |
| 708 | 708 | ||
| 709 | s->state = SSL3_ST_CW_CLNT_HELLO_B; | 709 | s->internal->state = SSL3_ST_CW_CLNT_HELLO_B; |
| 710 | } | 710 | } |
| 711 | 711 | ||
| 712 | /* SSL3_ST_CW_CLNT_HELLO_B */ | 712 | /* SSL3_ST_CW_CLNT_HELLO_B */ |
| @@ -2339,7 +2339,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
| 2339 | 2339 | ||
| 2340 | memset(&cbb, 0, sizeof(cbb)); | 2340 | memset(&cbb, 0, sizeof(cbb)); |
| 2341 | 2341 | ||
| 2342 | if (s->state == SSL3_ST_CW_KEY_EXCH_A) { | 2342 | if (s->internal->state == SSL3_ST_CW_KEY_EXCH_A) { |
| 2343 | alg_k = S3I(s)->tmp.new_cipher->algorithm_mkey; | 2343 | alg_k = S3I(s)->tmp.new_cipher->algorithm_mkey; |
| 2344 | 2344 | ||
| 2345 | if ((sess_cert = SSI(s)->sess_cert) == NULL) { | 2345 | if ((sess_cert = SSI(s)->sess_cert) == NULL) { |
| @@ -2377,7 +2377,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
| 2377 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) | 2377 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) |
| 2378 | goto err; | 2378 | goto err; |
| 2379 | 2379 | ||
| 2380 | s->state = SSL3_ST_CW_KEY_EXCH_B; | 2380 | s->internal->state = SSL3_ST_CW_KEY_EXCH_B; |
| 2381 | } | 2381 | } |
| 2382 | 2382 | ||
| 2383 | /* SSL3_ST_CW_KEY_EXCH_B */ | 2383 | /* SSL3_ST_CW_KEY_EXCH_B */ |
| @@ -2403,7 +2403,7 @@ ssl3_send_client_verify(SSL *s) | |||
| 2403 | 2403 | ||
| 2404 | EVP_MD_CTX_init(&mctx); | 2404 | EVP_MD_CTX_init(&mctx); |
| 2405 | 2405 | ||
| 2406 | if (s->state == SSL3_ST_CW_CERT_VRFY_A) { | 2406 | if (s->internal->state == SSL3_ST_CW_CERT_VRFY_A) { |
| 2407 | p = ssl3_handshake_msg_start(s, SSL3_MT_CERTIFICATE_VERIFY); | 2407 | p = ssl3_handshake_msg_start(s, SSL3_MT_CERTIFICATE_VERIFY); |
| 2408 | 2408 | ||
| 2409 | /* | 2409 | /* |
| @@ -2530,7 +2530,7 @@ ssl3_send_client_verify(SSL *s) | |||
| 2530 | goto err; | 2530 | goto err; |
| 2531 | } | 2531 | } |
| 2532 | 2532 | ||
| 2533 | s->state = SSL3_ST_CW_CERT_VRFY_B; | 2533 | s->internal->state = SSL3_ST_CW_CERT_VRFY_B; |
| 2534 | 2534 | ||
| 2535 | ssl3_handshake_msg_finish(s, n); | 2535 | ssl3_handshake_msg_finish(s, n); |
| 2536 | } | 2536 | } |
| @@ -2556,16 +2556,16 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2556 | 2556 | ||
| 2557 | memset(&cbb, 0, sizeof(cbb)); | 2557 | memset(&cbb, 0, sizeof(cbb)); |
| 2558 | 2558 | ||
| 2559 | if (s->state == SSL3_ST_CW_CERT_A) { | 2559 | if (s->internal->state == SSL3_ST_CW_CERT_A) { |
| 2560 | if ((s->cert == NULL) || (s->cert->key->x509 == NULL) || | 2560 | if ((s->cert == NULL) || (s->cert->key->x509 == NULL) || |
| 2561 | (s->cert->key->privatekey == NULL)) | 2561 | (s->cert->key->privatekey == NULL)) |
| 2562 | s->state = SSL3_ST_CW_CERT_B; | 2562 | s->internal->state = SSL3_ST_CW_CERT_B; |
| 2563 | else | 2563 | else |
| 2564 | s->state = SSL3_ST_CW_CERT_C; | 2564 | s->internal->state = SSL3_ST_CW_CERT_C; |
| 2565 | } | 2565 | } |
| 2566 | 2566 | ||
| 2567 | /* We need to get a client cert */ | 2567 | /* We need to get a client cert */ |
| 2568 | if (s->state == SSL3_ST_CW_CERT_B) { | 2568 | if (s->internal->state == SSL3_ST_CW_CERT_B) { |
| 2569 | /* | 2569 | /* |
| 2570 | * If we get an error, we need to | 2570 | * If we get an error, we need to |
| 2571 | * ssl->rwstate=SSL_X509_LOOKUP; return(-1); | 2571 | * ssl->rwstate=SSL_X509_LOOKUP; return(-1); |
| @@ -2578,7 +2578,7 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2578 | } | 2578 | } |
| 2579 | s->internal->rwstate = SSL_NOTHING; | 2579 | s->internal->rwstate = SSL_NOTHING; |
| 2580 | if ((i == 1) && (pkey != NULL) && (x509 != NULL)) { | 2580 | if ((i == 1) && (pkey != NULL) && (x509 != NULL)) { |
| 2581 | s->state = SSL3_ST_CW_CERT_B; | 2581 | s->internal->state = SSL3_ST_CW_CERT_B; |
| 2582 | if (!SSL_use_certificate(s, x509) || | 2582 | if (!SSL_use_certificate(s, x509) || |
| 2583 | !SSL_use_PrivateKey(s, pkey)) | 2583 | !SSL_use_PrivateKey(s, pkey)) |
| 2584 | i = 0; | 2584 | i = 0; |
| @@ -2594,10 +2594,10 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2594 | S3I(s)->tmp.cert_req = 2; | 2594 | S3I(s)->tmp.cert_req = 2; |
| 2595 | 2595 | ||
| 2596 | /* Ok, we have a cert */ | 2596 | /* Ok, we have a cert */ |
| 2597 | s->state = SSL3_ST_CW_CERT_C; | 2597 | s->internal->state = SSL3_ST_CW_CERT_C; |
| 2598 | } | 2598 | } |
| 2599 | 2599 | ||
| 2600 | if (s->state == SSL3_ST_CW_CERT_C) { | 2600 | if (s->internal->state == SSL3_ST_CW_CERT_C) { |
| 2601 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &client_cert, | 2601 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &client_cert, |
| 2602 | SSL3_MT_CERTIFICATE)) | 2602 | SSL3_MT_CERTIFICATE)) |
| 2603 | goto err; | 2603 | goto err; |
| @@ -2607,7 +2607,7 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2607 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) | 2607 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) |
| 2608 | goto err; | 2608 | goto err; |
| 2609 | 2609 | ||
| 2610 | s->state = SSL3_ST_CW_CERT_D; | 2610 | s->internal->state = SSL3_ST_CW_CERT_D; |
| 2611 | } | 2611 | } |
| 2612 | 2612 | ||
| 2613 | /* SSL3_ST_CW_CERT_D */ | 2613 | /* SSL3_ST_CW_CERT_D */ |
| @@ -2700,7 +2700,7 @@ ssl3_send_next_proto(SSL *s) | |||
| 2700 | unsigned int len, padding_len; | 2700 | unsigned int len, padding_len; |
| 2701 | unsigned char *d, *p; | 2701 | unsigned char *d, *p; |
| 2702 | 2702 | ||
| 2703 | if (s->state == SSL3_ST_CW_NEXT_PROTO_A) { | 2703 | if (s->internal->state == SSL3_ST_CW_NEXT_PROTO_A) { |
| 2704 | d = p = ssl3_handshake_msg_start(s, SSL3_MT_NEXT_PROTO); | 2704 | d = p = ssl3_handshake_msg_start(s, SSL3_MT_NEXT_PROTO); |
| 2705 | 2705 | ||
| 2706 | len = s->internal->next_proto_negotiated_len; | 2706 | len = s->internal->next_proto_negotiated_len; |
| @@ -2714,7 +2714,7 @@ ssl3_send_next_proto(SSL *s) | |||
| 2714 | 2714 | ||
| 2715 | ssl3_handshake_msg_finish(s, p - d); | 2715 | ssl3_handshake_msg_finish(s, p - d); |
| 2716 | 2716 | ||
| 2717 | s->state = SSL3_ST_CW_NEXT_PROTO_B; | 2717 | s->internal->state = SSL3_ST_CW_NEXT_PROTO_B; |
| 2718 | } | 2718 | } |
| 2719 | 2719 | ||
| 2720 | return (ssl3_handshake_write(s)); | 2720 | return (ssl3_handshake_write(s)); |
