diff options
author | beck <> | 2017-01-23 08:48:45 +0000 |
---|---|---|
committer | beck <> | 2017-01-23 08:48:45 +0000 |
commit | 61af17199189570a4400f2757a9e8dab4bb76d2a (patch) | |
tree | e1f210556179334ded73129e6e0733758fe22365 /src/lib/libssl/s3_clnt.c | |
parent | c85967e4f9c3e1f3b3217545939f1d44ddf9f103 (diff) | |
download | openbsd-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_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)); |