diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/ssl_clnt.c | 106 |
1 files changed, 53 insertions, 53 deletions
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index f6ca3e7f3c..a1745143f0 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_clnt.c,v 1.13 2017/05/06 22:24:57 beck Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.14 2017/05/07 04:22:24 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->internal->state; | 196 | state = S3I(s)->hs.state; |
| 197 | 197 | ||
| 198 | switch (s->internal->state) { | 198 | switch (S3I(s)->hs.state) { |
| 199 | case SSL_ST_RENEGOTIATE: | 199 | case SSL_ST_RENEGOTIATE: |
| 200 | s->internal->renegotiate = 1; | 200 | s->internal->renegotiate = 1; |
| 201 | s->internal->state = SSL_ST_CONNECT; | 201 | S3I(s)->hs.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: |
| @@ -239,7 +239,7 @@ ssl3_connect(SSL *s) | |||
| 239 | goto end; | 239 | goto end; |
| 240 | } | 240 | } |
| 241 | 241 | ||
| 242 | s->internal->state = SSL3_ST_CW_CLNT_HELLO_A; | 242 | S3I(s)->hs.state = SSL3_ST_CW_CLNT_HELLO_A; |
| 243 | s->ctx->internal->stats.sess_connect++; | 243 | s->ctx->internal->stats.sess_connect++; |
| 244 | s->internal->init_num = 0; | 244 | s->internal->init_num = 0; |
| 245 | break; | 245 | break; |
| @@ -251,7 +251,7 @@ ssl3_connect(SSL *s) | |||
| 251 | ret = ssl3_client_hello(s); | 251 | ret = ssl3_client_hello(s); |
| 252 | if (ret <= 0) | 252 | if (ret <= 0) |
| 253 | goto end; | 253 | goto end; |
| 254 | s->internal->state = SSL3_ST_CR_SRVR_HELLO_A; | 254 | S3I(s)->hs.state = SSL3_ST_CR_SRVR_HELLO_A; |
| 255 | s->internal->init_num = 0; | 255 | s->internal->init_num = 0; |
| 256 | 256 | ||
| 257 | /* turn on buffering for the next lot of output */ | 257 | /* turn on buffering for the next lot of output */ |
| @@ -267,13 +267,13 @@ ssl3_connect(SSL *s) | |||
| 267 | goto end; | 267 | goto end; |
| 268 | 268 | ||
| 269 | if (s->internal->hit) { | 269 | if (s->internal->hit) { |
| 270 | s->internal->state = SSL3_ST_CR_FINISHED_A; | 270 | S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A; |
| 271 | if (s->internal->tlsext_ticket_expected) { | 271 | if (s->internal->tlsext_ticket_expected) { |
| 272 | /* receive renewed session ticket */ | 272 | /* receive renewed session ticket */ |
| 273 | s->internal->state = SSL3_ST_CR_SESSION_TICKET_A; | 273 | S3I(s)->hs.state = SSL3_ST_CR_SESSION_TICKET_A; |
| 274 | } | 274 | } |
| 275 | } else | 275 | } else |
| 276 | s->internal->state = SSL3_ST_CR_CERT_A; | 276 | S3I(s)->hs.state = SSL3_ST_CR_CERT_A; |
| 277 | s->internal->init_num = 0; | 277 | s->internal->init_num = 0; |
| 278 | break; | 278 | break; |
| 279 | 279 | ||
| @@ -285,9 +285,9 @@ ssl3_connect(SSL *s) | |||
| 285 | if (ret == 2) { | 285 | if (ret == 2) { |
| 286 | s->internal->hit = 1; | 286 | s->internal->hit = 1; |
| 287 | if (s->internal->tlsext_ticket_expected) | 287 | if (s->internal->tlsext_ticket_expected) |
| 288 | s->internal->state = SSL3_ST_CR_SESSION_TICKET_A; | 288 | S3I(s)->hs.state = SSL3_ST_CR_SESSION_TICKET_A; |
| 289 | else | 289 | else |
| 290 | s->internal->state = SSL3_ST_CR_FINISHED_A; | 290 | S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A; |
| 291 | s->internal->init_num = 0; | 291 | s->internal->init_num = 0; |
| 292 | break; | 292 | break; |
| 293 | } | 293 | } |
| @@ -298,12 +298,12 @@ ssl3_connect(SSL *s) | |||
| 298 | if (ret <= 0) | 298 | if (ret <= 0) |
| 299 | goto end; | 299 | goto end; |
| 300 | if (s->internal->tlsext_status_expected) | 300 | if (s->internal->tlsext_status_expected) |
| 301 | s->internal->state = SSL3_ST_CR_CERT_STATUS_A; | 301 | S3I(s)->hs.state = SSL3_ST_CR_CERT_STATUS_A; |
| 302 | else | 302 | else |
| 303 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; | 303 | S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A; |
| 304 | } else { | 304 | } else { |
| 305 | skip = 1; | 305 | skip = 1; |
| 306 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; | 306 | S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A; |
| 307 | } | 307 | } |
| 308 | s->internal->init_num = 0; | 308 | s->internal->init_num = 0; |
| 309 | break; | 309 | break; |
| @@ -313,7 +313,7 @@ ssl3_connect(SSL *s) | |||
| 313 | ret = ssl3_get_server_key_exchange(s); | 313 | ret = ssl3_get_server_key_exchange(s); |
| 314 | if (ret <= 0) | 314 | if (ret <= 0) |
| 315 | goto end; | 315 | goto end; |
| 316 | s->internal->state = SSL3_ST_CR_CERT_REQ_A; | 316 | S3I(s)->hs.state = SSL3_ST_CR_CERT_REQ_A; |
| 317 | s->internal->init_num = 0; | 317 | s->internal->init_num = 0; |
| 318 | 318 | ||
| 319 | /* | 319 | /* |
| @@ -331,7 +331,7 @@ ssl3_connect(SSL *s) | |||
| 331 | ret = ssl3_get_certificate_request(s); | 331 | ret = ssl3_get_certificate_request(s); |
| 332 | if (ret <= 0) | 332 | if (ret <= 0) |
| 333 | goto end; | 333 | goto end; |
| 334 | s->internal->state = SSL3_ST_CR_SRVR_DONE_A; | 334 | S3I(s)->hs.state = SSL3_ST_CR_SRVR_DONE_A; |
| 335 | s->internal->init_num = 0; | 335 | s->internal->init_num = 0; |
| 336 | break; | 336 | break; |
| 337 | 337 | ||
| @@ -341,9 +341,9 @@ ssl3_connect(SSL *s) | |||
| 341 | if (ret <= 0) | 341 | if (ret <= 0) |
| 342 | goto end; | 342 | goto end; |
| 343 | if (S3I(s)->tmp.cert_req) | 343 | if (S3I(s)->tmp.cert_req) |
| 344 | s->internal->state = SSL3_ST_CW_CERT_A; | 344 | S3I(s)->hs.state = SSL3_ST_CW_CERT_A; |
| 345 | else | 345 | else |
| 346 | s->internal->state = SSL3_ST_CW_KEY_EXCH_A; | 346 | S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A; |
| 347 | s->internal->init_num = 0; | 347 | s->internal->init_num = 0; |
| 348 | 348 | ||
| 349 | break; | 349 | break; |
| @@ -355,7 +355,7 @@ ssl3_connect(SSL *s) | |||
| 355 | ret = ssl3_send_client_certificate(s); | 355 | ret = ssl3_send_client_certificate(s); |
| 356 | if (ret <= 0) | 356 | if (ret <= 0) |
| 357 | goto end; | 357 | goto end; |
| 358 | s->internal->state = SSL3_ST_CW_KEY_EXCH_A; | 358 | S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_A; |
| 359 | s->internal->init_num = 0; | 359 | s->internal->init_num = 0; |
| 360 | break; | 360 | break; |
| 361 | 361 | ||
| @@ -381,13 +381,13 @@ ssl3_connect(SSL *s) | |||
| 381 | * inside the client certificate. | 381 | * inside the client certificate. |
| 382 | */ | 382 | */ |
| 383 | if (S3I(s)->tmp.cert_req == 1) { | 383 | if (S3I(s)->tmp.cert_req == 1) { |
| 384 | s->internal->state = SSL3_ST_CW_CERT_VRFY_A; | 384 | S3I(s)->hs.state = SSL3_ST_CW_CERT_VRFY_A; |
| 385 | } else { | 385 | } else { |
| 386 | s->internal->state = SSL3_ST_CW_CHANGE_A; | 386 | S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A; |
| 387 | S3I(s)->change_cipher_spec = 0; | 387 | S3I(s)->change_cipher_spec = 0; |
| 388 | } | 388 | } |
| 389 | if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) { | 389 | if (s->s3->flags & TLS1_FLAGS_SKIP_CERT_VERIFY) { |
| 390 | s->internal->state = SSL3_ST_CW_CHANGE_A; | 390 | S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A; |
| 391 | S3I(s)->change_cipher_spec = 0; | 391 | S3I(s)->change_cipher_spec = 0; |
| 392 | } | 392 | } |
| 393 | 393 | ||
| @@ -399,7 +399,7 @@ ssl3_connect(SSL *s) | |||
| 399 | ret = ssl3_send_client_verify(s); | 399 | ret = ssl3_send_client_verify(s); |
| 400 | if (ret <= 0) | 400 | if (ret <= 0) |
| 401 | goto end; | 401 | goto end; |
| 402 | s->internal->state = SSL3_ST_CW_CHANGE_A; | 402 | S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A; |
| 403 | s->internal->init_num = 0; | 403 | s->internal->init_num = 0; |
| 404 | S3I(s)->change_cipher_spec = 0; | 404 | S3I(s)->change_cipher_spec = 0; |
| 405 | break; | 405 | break; |
| @@ -412,9 +412,9 @@ ssl3_connect(SSL *s) | |||
| 412 | goto end; | 412 | goto end; |
| 413 | 413 | ||
| 414 | if (S3I(s)->next_proto_neg_seen) | 414 | if (S3I(s)->next_proto_neg_seen) |
| 415 | s->internal->state = SSL3_ST_CW_NEXT_PROTO_A; | 415 | S3I(s)->hs.state = SSL3_ST_CW_NEXT_PROTO_A; |
| 416 | else | 416 | else |
| 417 | s->internal->state = SSL3_ST_CW_FINISHED_A; | 417 | S3I(s)->hs.state = SSL3_ST_CW_FINISHED_A; |
| 418 | s->internal->init_num = 0; | 418 | s->internal->init_num = 0; |
| 419 | 419 | ||
| 420 | s->session->cipher = S3I(s)->hs.new_cipher; | 420 | s->session->cipher = S3I(s)->hs.new_cipher; |
| @@ -436,7 +436,7 @@ ssl3_connect(SSL *s) | |||
| 436 | ret = ssl3_send_next_proto(s); | 436 | ret = ssl3_send_next_proto(s); |
| 437 | if (ret <= 0) | 437 | if (ret <= 0) |
| 438 | goto end; | 438 | goto end; |
| 439 | s->internal->state = SSL3_ST_CW_FINISHED_A; | 439 | S3I(s)->hs.state = SSL3_ST_CW_FINISHED_A; |
| 440 | break; | 440 | break; |
| 441 | 441 | ||
| 442 | case SSL3_ST_CW_FINISHED_A: | 442 | case SSL3_ST_CW_FINISHED_A: |
| @@ -448,7 +448,7 @@ ssl3_connect(SSL *s) | |||
| 448 | if (ret <= 0) | 448 | if (ret <= 0) |
| 449 | goto end; | 449 | goto end; |
| 450 | s->s3->flags |= SSL3_FLAGS_CCS_OK; | 450 | s->s3->flags |= SSL3_FLAGS_CCS_OK; |
| 451 | s->internal->state = SSL3_ST_CW_FLUSH; | 451 | S3I(s)->hs.state = SSL3_ST_CW_FLUSH; |
| 452 | 452 | ||
| 453 | /* clear flags */ | 453 | /* clear flags */ |
| 454 | s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER; | 454 | s->s3->flags &= ~SSL3_FLAGS_POP_BUFFER; |
| @@ -456,7 +456,7 @@ ssl3_connect(SSL *s) | |||
| 456 | S3I(s)->hs.next_state = SSL_ST_OK; | 456 | S3I(s)->hs.next_state = SSL_ST_OK; |
| 457 | if (s->s3->flags & | 457 | if (s->s3->flags & |
| 458 | SSL3_FLAGS_DELAY_CLIENT_FINISHED) { | 458 | SSL3_FLAGS_DELAY_CLIENT_FINISHED) { |
| 459 | s->internal->state = SSL_ST_OK; | 459 | S3I(s)->hs.state = SSL_ST_OK; |
| 460 | s->s3->flags|=SSL3_FLAGS_POP_BUFFER; | 460 | s->s3->flags|=SSL3_FLAGS_POP_BUFFER; |
| 461 | S3I(s)->delay_buf_pop_ret = 0; | 461 | S3I(s)->delay_buf_pop_ret = 0; |
| 462 | } | 462 | } |
| @@ -477,7 +477,7 @@ ssl3_connect(SSL *s) | |||
| 477 | ret = ssl3_get_new_session_ticket(s); | 477 | ret = ssl3_get_new_session_ticket(s); |
| 478 | if (ret <= 0) | 478 | if (ret <= 0) |
| 479 | goto end; | 479 | goto end; |
| 480 | s->internal->state = SSL3_ST_CR_FINISHED_A; | 480 | S3I(s)->hs.state = SSL3_ST_CR_FINISHED_A; |
| 481 | s->internal->init_num = 0; | 481 | s->internal->init_num = 0; |
| 482 | break; | 482 | break; |
| 483 | 483 | ||
| @@ -486,7 +486,7 @@ ssl3_connect(SSL *s) | |||
| 486 | ret = ssl3_get_cert_status(s); | 486 | ret = ssl3_get_cert_status(s); |
| 487 | if (ret <= 0) | 487 | if (ret <= 0) |
| 488 | goto end; | 488 | goto end; |
| 489 | s->internal->state = SSL3_ST_CR_KEY_EXCH_A; | 489 | S3I(s)->hs.state = SSL3_ST_CR_KEY_EXCH_A; |
| 490 | s->internal->init_num = 0; | 490 | s->internal->init_num = 0; |
| 491 | break; | 491 | break; |
| 492 | 492 | ||
| @@ -499,9 +499,9 @@ ssl3_connect(SSL *s) | |||
| 499 | goto end; | 499 | goto end; |
| 500 | 500 | ||
| 501 | if (s->internal->hit) | 501 | if (s->internal->hit) |
| 502 | s->internal->state = SSL3_ST_CW_CHANGE_A; | 502 | S3I(s)->hs.state = SSL3_ST_CW_CHANGE_A; |
| 503 | else | 503 | else |
| 504 | s->internal->state = SSL_ST_OK; | 504 | S3I(s)->hs.state = SSL_ST_OK; |
| 505 | s->internal->init_num = 0; | 505 | s->internal->init_num = 0; |
| 506 | break; | 506 | break; |
| 507 | 507 | ||
| @@ -512,7 +512,7 @@ ssl3_connect(SSL *s) | |||
| 512 | goto end; | 512 | goto end; |
| 513 | } | 513 | } |
| 514 | s->internal->rwstate = SSL_NOTHING; | 514 | s->internal->rwstate = SSL_NOTHING; |
| 515 | s->internal->state = S3I(s)->hs.next_state; | 515 | S3I(s)->hs.state = S3I(s)->hs.next_state; |
| 516 | break; | 516 | break; |
| 517 | 517 | ||
| 518 | case SSL_ST_OK: | 518 | case SSL_ST_OK: |
| @@ -563,11 +563,11 @@ ssl3_connect(SSL *s) | |||
| 563 | goto end; | 563 | goto end; |
| 564 | } | 564 | } |
| 565 | 565 | ||
| 566 | if ((cb != NULL) && (s->internal->state != state)) { | 566 | if ((cb != NULL) && (S3I(s)->hs.state != state)) { |
| 567 | new_state = s->internal->state; | 567 | new_state = S3I(s)->hs.state; |
| 568 | s->internal->state = state; | 568 | S3I(s)->hs.state = state; |
| 569 | cb(s, SSL_CB_CONNECT_LOOP, 1); | 569 | cb(s, SSL_CB_CONNECT_LOOP, 1); |
| 570 | s->internal->state = new_state; | 570 | S3I(s)->hs.state = new_state; |
| 571 | } | 571 | } |
| 572 | } | 572 | } |
| 573 | skip = 0; | 573 | skip = 0; |
| @@ -591,7 +591,7 @@ ssl3_client_hello(SSL *s) | |||
| 591 | 591 | ||
| 592 | bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH; | 592 | bufend = (unsigned char *)s->internal->init_buf->data + SSL3_RT_MAX_PLAIN_LENGTH; |
| 593 | 593 | ||
| 594 | if (s->internal->state == SSL3_ST_CW_CLNT_HELLO_A) { | 594 | if (S3I(s)->hs.state == SSL3_ST_CW_CLNT_HELLO_A) { |
| 595 | SSL_SESSION *sess = s->session; | 595 | SSL_SESSION *sess = s->session; |
| 596 | 596 | ||
| 597 | if (ssl_supported_version_range(s, NULL, &max_version) != 1) { | 597 | if (ssl_supported_version_range(s, NULL, &max_version) != 1) { |
| @@ -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->internal->state = SSL3_ST_CW_CLNT_HELLO_B; | 709 | S3I(s)->hs.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 */ |
| @@ -2273,7 +2273,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
| 2273 | 2273 | ||
| 2274 | memset(&cbb, 0, sizeof(cbb)); | 2274 | memset(&cbb, 0, sizeof(cbb)); |
| 2275 | 2275 | ||
| 2276 | if (s->internal->state == SSL3_ST_CW_KEY_EXCH_A) { | 2276 | if (S3I(s)->hs.state == SSL3_ST_CW_KEY_EXCH_A) { |
| 2277 | alg_k = S3I(s)->hs.new_cipher->algorithm_mkey; | 2277 | alg_k = S3I(s)->hs.new_cipher->algorithm_mkey; |
| 2278 | 2278 | ||
| 2279 | if ((sess_cert = SSI(s)->sess_cert) == NULL) { | 2279 | if ((sess_cert = SSI(s)->sess_cert) == NULL) { |
| @@ -2309,7 +2309,7 @@ ssl3_send_client_key_exchange(SSL *s) | |||
| 2309 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) | 2309 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) |
| 2310 | goto err; | 2310 | goto err; |
| 2311 | 2311 | ||
| 2312 | s->internal->state = SSL3_ST_CW_KEY_EXCH_B; | 2312 | S3I(s)->hs.state = SSL3_ST_CW_KEY_EXCH_B; |
| 2313 | } | 2313 | } |
| 2314 | 2314 | ||
| 2315 | /* SSL3_ST_CW_KEY_EXCH_B */ | 2315 | /* SSL3_ST_CW_KEY_EXCH_B */ |
| @@ -2335,7 +2335,7 @@ ssl3_send_client_verify(SSL *s) | |||
| 2335 | 2335 | ||
| 2336 | EVP_MD_CTX_init(&mctx); | 2336 | EVP_MD_CTX_init(&mctx); |
| 2337 | 2337 | ||
| 2338 | if (s->internal->state == SSL3_ST_CW_CERT_VRFY_A) { | 2338 | if (S3I(s)->hs.state == SSL3_ST_CW_CERT_VRFY_A) { |
| 2339 | p = ssl3_handshake_msg_start(s, SSL3_MT_CERTIFICATE_VERIFY); | 2339 | p = ssl3_handshake_msg_start(s, SSL3_MT_CERTIFICATE_VERIFY); |
| 2340 | 2340 | ||
| 2341 | /* | 2341 | /* |
| @@ -2459,7 +2459,7 @@ ssl3_send_client_verify(SSL *s) | |||
| 2459 | goto err; | 2459 | goto err; |
| 2460 | } | 2460 | } |
| 2461 | 2461 | ||
| 2462 | s->internal->state = SSL3_ST_CW_CERT_VRFY_B; | 2462 | S3I(s)->hs.state = SSL3_ST_CW_CERT_VRFY_B; |
| 2463 | 2463 | ||
| 2464 | ssl3_handshake_msg_finish(s, n); | 2464 | ssl3_handshake_msg_finish(s, n); |
| 2465 | } | 2465 | } |
| @@ -2485,16 +2485,16 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2485 | 2485 | ||
| 2486 | memset(&cbb, 0, sizeof(cbb)); | 2486 | memset(&cbb, 0, sizeof(cbb)); |
| 2487 | 2487 | ||
| 2488 | if (s->internal->state == SSL3_ST_CW_CERT_A) { | 2488 | if (S3I(s)->hs.state == SSL3_ST_CW_CERT_A) { |
| 2489 | if ((s->cert == NULL) || (s->cert->key->x509 == NULL) || | 2489 | if ((s->cert == NULL) || (s->cert->key->x509 == NULL) || |
| 2490 | (s->cert->key->privatekey == NULL)) | 2490 | (s->cert->key->privatekey == NULL)) |
| 2491 | s->internal->state = SSL3_ST_CW_CERT_B; | 2491 | S3I(s)->hs.state = SSL3_ST_CW_CERT_B; |
| 2492 | else | 2492 | else |
| 2493 | s->internal->state = SSL3_ST_CW_CERT_C; | 2493 | S3I(s)->hs.state = SSL3_ST_CW_CERT_C; |
| 2494 | } | 2494 | } |
| 2495 | 2495 | ||
| 2496 | /* We need to get a client cert */ | 2496 | /* We need to get a client cert */ |
| 2497 | if (s->internal->state == SSL3_ST_CW_CERT_B) { | 2497 | if (S3I(s)->hs.state == SSL3_ST_CW_CERT_B) { |
| 2498 | /* | 2498 | /* |
| 2499 | * If we get an error, we need to | 2499 | * If we get an error, we need to |
| 2500 | * ssl->rwstate=SSL_X509_LOOKUP; return(-1); | 2500 | * ssl->rwstate=SSL_X509_LOOKUP; return(-1); |
| @@ -2507,7 +2507,7 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2507 | } | 2507 | } |
| 2508 | s->internal->rwstate = SSL_NOTHING; | 2508 | s->internal->rwstate = SSL_NOTHING; |
| 2509 | if ((i == 1) && (pkey != NULL) && (x509 != NULL)) { | 2509 | if ((i == 1) && (pkey != NULL) && (x509 != NULL)) { |
| 2510 | s->internal->state = SSL3_ST_CW_CERT_B; | 2510 | S3I(s)->hs.state = SSL3_ST_CW_CERT_B; |
| 2511 | if (!SSL_use_certificate(s, x509) || | 2511 | if (!SSL_use_certificate(s, x509) || |
| 2512 | !SSL_use_PrivateKey(s, pkey)) | 2512 | !SSL_use_PrivateKey(s, pkey)) |
| 2513 | i = 0; | 2513 | i = 0; |
| @@ -2522,10 +2522,10 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2522 | S3I(s)->tmp.cert_req = 2; | 2522 | S3I(s)->tmp.cert_req = 2; |
| 2523 | 2523 | ||
| 2524 | /* Ok, we have a cert */ | 2524 | /* Ok, we have a cert */ |
| 2525 | s->internal->state = SSL3_ST_CW_CERT_C; | 2525 | S3I(s)->hs.state = SSL3_ST_CW_CERT_C; |
| 2526 | } | 2526 | } |
| 2527 | 2527 | ||
| 2528 | if (s->internal->state == SSL3_ST_CW_CERT_C) { | 2528 | if (S3I(s)->hs.state == SSL3_ST_CW_CERT_C) { |
| 2529 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &client_cert, | 2529 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &client_cert, |
| 2530 | SSL3_MT_CERTIFICATE)) | 2530 | SSL3_MT_CERTIFICATE)) |
| 2531 | goto err; | 2531 | goto err; |
| @@ -2535,7 +2535,7 @@ ssl3_send_client_certificate(SSL *s) | |||
| 2535 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) | 2535 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) |
| 2536 | goto err; | 2536 | goto err; |
| 2537 | 2537 | ||
| 2538 | s->internal->state = SSL3_ST_CW_CERT_D; | 2538 | S3I(s)->hs.state = SSL3_ST_CW_CERT_D; |
| 2539 | } | 2539 | } |
| 2540 | 2540 | ||
| 2541 | /* SSL3_ST_CW_CERT_D */ | 2541 | /* SSL3_ST_CW_CERT_D */ |
| @@ -2625,7 +2625,7 @@ ssl3_send_next_proto(SSL *s) | |||
| 2625 | 2625 | ||
| 2626 | memset(&cbb, 0, sizeof(cbb)); | 2626 | memset(&cbb, 0, sizeof(cbb)); |
| 2627 | 2627 | ||
| 2628 | if (s->internal->state == SSL3_ST_CW_NEXT_PROTO_A) { | 2628 | if (S3I(s)->hs.state == SSL3_ST_CW_NEXT_PROTO_A) { |
| 2629 | pad_len = 32 - ((s->internal->next_proto_negotiated_len + 2) % 32); | 2629 | pad_len = 32 - ((s->internal->next_proto_negotiated_len + 2) % 32); |
| 2630 | 2630 | ||
| 2631 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &nextproto, | 2631 | if (!ssl3_handshake_msg_start_cbb(s, &cbb, &nextproto, |
| @@ -2644,7 +2644,7 @@ ssl3_send_next_proto(SSL *s) | |||
| 2644 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) | 2644 | if (!ssl3_handshake_msg_finish_cbb(s, &cbb)) |
| 2645 | goto err; | 2645 | goto err; |
| 2646 | 2646 | ||
| 2647 | s->internal->state = SSL3_ST_CW_NEXT_PROTO_B; | 2647 | S3I(s)->hs.state = SSL3_ST_CW_NEXT_PROTO_B; |
| 2648 | } | 2648 | } |
| 2649 | 2649 | ||
| 2650 | return (ssl3_handshake_write(s)); | 2650 | return (ssl3_handshake_write(s)); |
