diff options
| author | jsing <> | 2022-02-05 14:54:10 +0000 |
|---|---|---|
| committer | jsing <> | 2022-02-05 14:54:10 +0000 |
| commit | a463011117e88ea3125fb580b8c6c60d68722651 (patch) | |
| tree | da7fe094101bf3711667cf1650e3c6f57a50e2ff /src/lib/libssl/ssl_both.c | |
| parent | 54b37ce29213d429a1f20782418b17863e8b4b9b (diff) | |
| download | openbsd-a463011117e88ea3125fb580b8c6c60d68722651.tar.gz openbsd-a463011117e88ea3125fb580b8c6c60d68722651.tar.bz2 openbsd-a463011117e88ea3125fb580b8c6c60d68722651.zip | |
Bye bye S3I.
S3I has served us well, however now that libssl is fully opaque it is time
to say goodbye. Aside from removing the calloc/free/memset, the rest is
mechanical sed.
ok inoguchi@ tb@
Diffstat (limited to 'src/lib/libssl/ssl_both.c')
| -rw-r--r-- | src/lib/libssl/ssl_both.c | 86 |
1 files changed, 43 insertions, 43 deletions
diff --git a/src/lib/libssl/ssl_both.c b/src/lib/libssl/ssl_both.c index ad16d2175b..cfd32387d6 100644 --- a/src/lib/libssl/ssl_both.c +++ b/src/lib/libssl/ssl_both.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_both.c,v 1.41 2022/02/03 16:33:12 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_both.c,v 1.42 2022/02/05 14:54:10 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 | * |
| @@ -168,33 +168,33 @@ ssl3_send_finished(SSL *s, int state_a, int state_b) | |||
| 168 | 168 | ||
| 169 | memset(&cbb, 0, sizeof(cbb)); | 169 | memset(&cbb, 0, sizeof(cbb)); |
| 170 | 170 | ||
| 171 | if (S3I(s)->hs.state == state_a) { | 171 | if (s->s3->hs.state == state_a) { |
| 172 | if (!tls12_derive_finished(s)) | 172 | if (!tls12_derive_finished(s)) |
| 173 | goto err; | 173 | goto err; |
| 174 | 174 | ||
| 175 | /* Copy finished so we can use it for renegotiation checks. */ | 175 | /* Copy finished so we can use it for renegotiation checks. */ |
| 176 | if (!s->server) { | 176 | if (!s->server) { |
| 177 | memcpy(S3I(s)->previous_client_finished, | 177 | memcpy(s->s3->previous_client_finished, |
| 178 | S3I(s)->hs.finished, S3I(s)->hs.finished_len); | 178 | s->s3->hs.finished, s->s3->hs.finished_len); |
| 179 | S3I(s)->previous_client_finished_len = | 179 | s->s3->previous_client_finished_len = |
| 180 | S3I(s)->hs.finished_len; | 180 | s->s3->hs.finished_len; |
| 181 | } else { | 181 | } else { |
| 182 | memcpy(S3I(s)->previous_server_finished, | 182 | memcpy(s->s3->previous_server_finished, |
| 183 | S3I(s)->hs.finished, S3I(s)->hs.finished_len); | 183 | s->s3->hs.finished, s->s3->hs.finished_len); |
| 184 | S3I(s)->previous_server_finished_len = | 184 | s->s3->previous_server_finished_len = |
| 185 | S3I(s)->hs.finished_len; | 185 | s->s3->hs.finished_len; |
| 186 | } | 186 | } |
| 187 | 187 | ||
| 188 | if (!ssl3_handshake_msg_start(s, &cbb, &finished, | 188 | if (!ssl3_handshake_msg_start(s, &cbb, &finished, |
| 189 | SSL3_MT_FINISHED)) | 189 | SSL3_MT_FINISHED)) |
| 190 | goto err; | 190 | goto err; |
| 191 | if (!CBB_add_bytes(&finished, S3I(s)->hs.finished, | 191 | if (!CBB_add_bytes(&finished, s->s3->hs.finished, |
| 192 | S3I(s)->hs.finished_len)) | 192 | s->s3->hs.finished_len)) |
| 193 | goto err; | 193 | goto err; |
| 194 | if (!ssl3_handshake_msg_finish(s, &cbb)) | 194 | if (!ssl3_handshake_msg_finish(s, &cbb)) |
| 195 | goto err; | 195 | goto err; |
| 196 | 196 | ||
| 197 | S3I(s)->hs.state = state_b; | 197 | s->s3->hs.state = state_b; |
| 198 | } | 198 | } |
| 199 | 199 | ||
| 200 | return (ssl3_handshake_write(s)); | 200 | return (ssl3_handshake_write(s)); |
| @@ -216,12 +216,12 @@ ssl3_get_finished(SSL *s, int a, int b) | |||
| 216 | return ret; | 216 | return ret; |
| 217 | 217 | ||
| 218 | /* If this occurs, we have missed a message */ | 218 | /* If this occurs, we have missed a message */ |
| 219 | if (!S3I(s)->change_cipher_spec) { | 219 | if (!s->s3->change_cipher_spec) { |
| 220 | al = SSL_AD_UNEXPECTED_MESSAGE; | 220 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 221 | SSLerror(s, SSL_R_GOT_A_FIN_BEFORE_A_CCS); | 221 | SSLerror(s, SSL_R_GOT_A_FIN_BEFORE_A_CCS); |
| 222 | goto fatal_err; | 222 | goto fatal_err; |
| 223 | } | 223 | } |
| 224 | S3I(s)->change_cipher_spec = 0; | 224 | s->s3->change_cipher_spec = 0; |
| 225 | 225 | ||
| 226 | md_len = TLS1_FINISH_MAC_LENGTH; | 226 | md_len = TLS1_FINISH_MAC_LENGTH; |
| 227 | 227 | ||
| @@ -233,14 +233,14 @@ ssl3_get_finished(SSL *s, int a, int b) | |||
| 233 | 233 | ||
| 234 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); | 234 | CBS_init(&cbs, s->internal->init_msg, s->internal->init_num); |
| 235 | 235 | ||
| 236 | if (S3I(s)->hs.peer_finished_len != md_len || | 236 | if (s->s3->hs.peer_finished_len != md_len || |
| 237 | CBS_len(&cbs) != md_len) { | 237 | CBS_len(&cbs) != md_len) { |
| 238 | al = SSL_AD_DECODE_ERROR; | 238 | al = SSL_AD_DECODE_ERROR; |
| 239 | SSLerror(s, SSL_R_BAD_DIGEST_LENGTH); | 239 | SSLerror(s, SSL_R_BAD_DIGEST_LENGTH); |
| 240 | goto fatal_err; | 240 | goto fatal_err; |
| 241 | } | 241 | } |
| 242 | 242 | ||
| 243 | if (!CBS_mem_equal(&cbs, S3I(s)->hs.peer_finished, CBS_len(&cbs))) { | 243 | if (!CBS_mem_equal(&cbs, s->s3->hs.peer_finished, CBS_len(&cbs))) { |
| 244 | al = SSL_AD_DECRYPT_ERROR; | 244 | al = SSL_AD_DECRYPT_ERROR; |
| 245 | SSLerror(s, SSL_R_DIGEST_CHECK_FAILED); | 245 | SSLerror(s, SSL_R_DIGEST_CHECK_FAILED); |
| 246 | goto fatal_err; | 246 | goto fatal_err; |
| @@ -249,13 +249,13 @@ ssl3_get_finished(SSL *s, int a, int b) | |||
| 249 | /* Copy finished so we can use it for renegotiation checks. */ | 249 | /* Copy finished so we can use it for renegotiation checks. */ |
| 250 | OPENSSL_assert(md_len <= EVP_MAX_MD_SIZE); | 250 | OPENSSL_assert(md_len <= EVP_MAX_MD_SIZE); |
| 251 | if (s->server) { | 251 | if (s->server) { |
| 252 | memcpy(S3I(s)->previous_client_finished, | 252 | memcpy(s->s3->previous_client_finished, |
| 253 | S3I(s)->hs.peer_finished, md_len); | 253 | s->s3->hs.peer_finished, md_len); |
| 254 | S3I(s)->previous_client_finished_len = md_len; | 254 | s->s3->previous_client_finished_len = md_len; |
| 255 | } else { | 255 | } else { |
| 256 | memcpy(S3I(s)->previous_server_finished, | 256 | memcpy(s->s3->previous_server_finished, |
| 257 | S3I(s)->hs.peer_finished, md_len); | 257 | s->s3->hs.peer_finished, md_len); |
| 258 | S3I(s)->previous_server_finished_len = md_len; | 258 | s->s3->previous_server_finished_len = md_len; |
| 259 | } | 259 | } |
| 260 | 260 | ||
| 261 | return (1); | 261 | return (1); |
| @@ -272,7 +272,7 @@ ssl3_send_change_cipher_spec(SSL *s, int a, int b) | |||
| 272 | 272 | ||
| 273 | memset(&cbb, 0, sizeof(cbb)); | 273 | memset(&cbb, 0, sizeof(cbb)); |
| 274 | 274 | ||
| 275 | if (S3I(s)->hs.state == a) { | 275 | if (s->s3->hs.state == a) { |
| 276 | if (!CBB_init_fixed(&cbb, s->internal->init_buf->data, | 276 | if (!CBB_init_fixed(&cbb, s->internal->init_buf->data, |
| 277 | s->internal->init_buf->length)) | 277 | s->internal->init_buf->length)) |
| 278 | goto err; | 278 | goto err; |
| @@ -295,7 +295,7 @@ ssl3_send_change_cipher_spec(SSL *s, int a, int b) | |||
| 295 | dtls1_buffer_message(s, 1); | 295 | dtls1_buffer_message(s, 1); |
| 296 | } | 296 | } |
| 297 | 297 | ||
| 298 | S3I(s)->hs.state = b; | 298 | s->s3->hs.state = b; |
| 299 | } | 299 | } |
| 300 | 300 | ||
| 301 | /* SSL3_ST_CW_CHANGE_B */ | 301 | /* SSL3_ST_CW_CHANGE_B */ |
| @@ -408,22 +408,22 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
| 408 | if (SSL_is_dtls(s)) | 408 | if (SSL_is_dtls(s)) |
| 409 | return dtls1_get_message(s, st1, stn, mt, max); | 409 | return dtls1_get_message(s, st1, stn, mt, max); |
| 410 | 410 | ||
| 411 | if (S3I(s)->hs.tls12.reuse_message) { | 411 | if (s->s3->hs.tls12.reuse_message) { |
| 412 | S3I(s)->hs.tls12.reuse_message = 0; | 412 | s->s3->hs.tls12.reuse_message = 0; |
| 413 | if ((mt >= 0) && (S3I(s)->hs.tls12.message_type != mt)) { | 413 | if ((mt >= 0) && (s->s3->hs.tls12.message_type != mt)) { |
| 414 | al = SSL_AD_UNEXPECTED_MESSAGE; | 414 | al = SSL_AD_UNEXPECTED_MESSAGE; |
| 415 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); | 415 | SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); |
| 416 | goto fatal_err; | 416 | goto fatal_err; |
| 417 | } | 417 | } |
| 418 | s->internal->init_msg = s->internal->init_buf->data + | 418 | s->internal->init_msg = s->internal->init_buf->data + |
| 419 | SSL3_HM_HEADER_LENGTH; | 419 | SSL3_HM_HEADER_LENGTH; |
| 420 | s->internal->init_num = (int)S3I(s)->hs.tls12.message_size; | 420 | s->internal->init_num = (int)s->s3->hs.tls12.message_size; |
| 421 | return 1; | 421 | return 1; |
| 422 | } | 422 | } |
| 423 | 423 | ||
| 424 | p = (unsigned char *)s->internal->init_buf->data; | 424 | p = (unsigned char *)s->internal->init_buf->data; |
| 425 | 425 | ||
| 426 | if (S3I(s)->hs.state == st1) { | 426 | if (s->s3->hs.state == st1) { |
| 427 | int skip_message; | 427 | int skip_message; |
| 428 | 428 | ||
| 429 | do { | 429 | do { |
| @@ -469,7 +469,7 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
| 469 | SSLerror(s, ERR_R_BUF_LIB); | 469 | SSLerror(s, ERR_R_BUF_LIB); |
| 470 | goto err; | 470 | goto err; |
| 471 | } | 471 | } |
| 472 | S3I(s)->hs.tls12.message_type = u8; | 472 | s->s3->hs.tls12.message_type = u8; |
| 473 | 473 | ||
| 474 | if (l > (unsigned long)max) { | 474 | if (l > (unsigned long)max) { |
| 475 | al = SSL_AD_ILLEGAL_PARAMETER; | 475 | al = SSL_AD_ILLEGAL_PARAMETER; |
| @@ -481,8 +481,8 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
| 481 | SSLerror(s, ERR_R_BUF_LIB); | 481 | SSLerror(s, ERR_R_BUF_LIB); |
| 482 | goto err; | 482 | goto err; |
| 483 | } | 483 | } |
| 484 | S3I(s)->hs.tls12.message_size = l; | 484 | s->s3->hs.tls12.message_size = l; |
| 485 | S3I(s)->hs.state = stn; | 485 | s->s3->hs.state = stn; |
| 486 | 486 | ||
| 487 | s->internal->init_msg = s->internal->init_buf->data + | 487 | s->internal->init_msg = s->internal->init_buf->data + |
| 488 | SSL3_HM_HEADER_LENGTH; | 488 | SSL3_HM_HEADER_LENGTH; |
| @@ -491,7 +491,7 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max) | |||
| 491 | 491 | ||
| 492 | /* next state (stn) */ | 492 | /* next state (stn) */ |
| 493 | p = s->internal->init_msg; | 493 | p = s->internal->init_msg; |
| 494 | n = S3I(s)->hs.tls12.message_size - s->internal->init_num; | 494 | n = s->s3->hs.tls12.message_size - s->internal->init_num; |
| 495 | while (n > 0) { | 495 | while (n > 0) { |
| 496 | i = s->method->ssl_read_bytes(s, SSL3_RT_HANDSHAKE, | 496 | i = s->method->ssl_read_bytes(s, SSL3_RT_HANDSHAKE, |
| 497 | &p[s->internal->init_num], n, 0); | 497 | &p[s->internal->init_num], n, 0); |
| @@ -644,16 +644,16 @@ ssl3_setup_read_buffer(SSL *s) | |||
| 644 | 644 | ||
| 645 | align = (-SSL3_RT_HEADER_LENGTH) & (SSL3_ALIGN_PAYLOAD - 1); | 645 | align = (-SSL3_RT_HEADER_LENGTH) & (SSL3_ALIGN_PAYLOAD - 1); |
| 646 | 646 | ||
| 647 | if (S3I(s)->rbuf.buf == NULL) { | 647 | if (s->s3->rbuf.buf == NULL) { |
| 648 | len = SSL3_RT_MAX_PLAIN_LENGTH + | 648 | len = SSL3_RT_MAX_PLAIN_LENGTH + |
| 649 | SSL3_RT_MAX_ENCRYPTED_OVERHEAD + headerlen + align; | 649 | SSL3_RT_MAX_ENCRYPTED_OVERHEAD + headerlen + align; |
| 650 | if ((p = calloc(1, len)) == NULL) | 650 | if ((p = calloc(1, len)) == NULL) |
| 651 | goto err; | 651 | goto err; |
| 652 | S3I(s)->rbuf.buf = p; | 652 | s->s3->rbuf.buf = p; |
| 653 | S3I(s)->rbuf.len = len; | 653 | s->s3->rbuf.len = len; |
| 654 | } | 654 | } |
| 655 | 655 | ||
| 656 | s->internal->packet = S3I(s)->rbuf.buf; | 656 | s->internal->packet = s->s3->rbuf.buf; |
| 657 | return 1; | 657 | return 1; |
| 658 | 658 | ||
| 659 | err: | 659 | err: |
| @@ -674,7 +674,7 @@ ssl3_setup_write_buffer(SSL *s) | |||
| 674 | 674 | ||
| 675 | align = (-SSL3_RT_HEADER_LENGTH) & (SSL3_ALIGN_PAYLOAD - 1); | 675 | align = (-SSL3_RT_HEADER_LENGTH) & (SSL3_ALIGN_PAYLOAD - 1); |
| 676 | 676 | ||
| 677 | if (S3I(s)->wbuf.buf == NULL) { | 677 | if (s->s3->wbuf.buf == NULL) { |
| 678 | len = s->max_send_fragment + | 678 | len = s->max_send_fragment + |
| 679 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align; | 679 | SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align; |
| 680 | if (!(s->internal->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)) | 680 | if (!(s->internal->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)) |
| @@ -683,8 +683,8 @@ ssl3_setup_write_buffer(SSL *s) | |||
| 683 | 683 | ||
| 684 | if ((p = calloc(1, len)) == NULL) | 684 | if ((p = calloc(1, len)) == NULL) |
| 685 | goto err; | 685 | goto err; |
| 686 | S3I(s)->wbuf.buf = p; | 686 | s->s3->wbuf.buf = p; |
| 687 | S3I(s)->wbuf.len = len; | 687 | s->s3->wbuf.len = len; |
| 688 | } | 688 | } |
| 689 | 689 | ||
| 690 | return 1; | 690 | return 1; |
| @@ -715,11 +715,11 @@ ssl3_release_buffer(SSL3_BUFFER_INTERNAL *b) | |||
| 715 | void | 715 | void |
| 716 | ssl3_release_read_buffer(SSL *s) | 716 | ssl3_release_read_buffer(SSL *s) |
| 717 | { | 717 | { |
| 718 | ssl3_release_buffer(&S3I(s)->rbuf); | 718 | ssl3_release_buffer(&s->s3->rbuf); |
| 719 | } | 719 | } |
| 720 | 720 | ||
| 721 | void | 721 | void |
| 722 | ssl3_release_write_buffer(SSL *s) | 722 | ssl3_release_write_buffer(SSL *s) |
| 723 | { | 723 | { |
| 724 | ssl3_release_buffer(&S3I(s)->wbuf); | 724 | ssl3_release_buffer(&s->s3->wbuf); |
| 725 | } | 725 | } |
