summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_both.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_both.c')
-rw-r--r--src/lib/libssl/ssl_both.c84
1 files changed, 42 insertions, 42 deletions
diff --git a/src/lib/libssl/ssl_both.c b/src/lib/libssl/ssl_both.c
index 801b5bea29..93f7384762 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.43 2022/10/01 16:23:15 jsing Exp $ */ 1/* $OpenBSD: ssl_both.c,v 1.44 2022/10/02 16:36:41 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 *
@@ -128,7 +128,7 @@
128#include "ssl_locl.h" 128#include "ssl_locl.h"
129 129
130/* 130/*
131 * Send s->internal->init_buf in records of type 'type' (SSL3_RT_HANDSHAKE or 131 * Send s->init_buf in records of type 'type' (SSL3_RT_HANDSHAKE or
132 * SSL3_RT_CHANGE_CIPHER_SPEC). 132 * SSL3_RT_CHANGE_CIPHER_SPEC).
133 */ 133 */
134int 134int
@@ -136,8 +136,8 @@ ssl3_do_write(SSL *s, int type)
136{ 136{
137 int ret; 137 int ret;
138 138
139 ret = ssl3_write_bytes(s, type, &s->internal->init_buf->data[s->internal->init_off], 139 ret = ssl3_write_bytes(s, type, &s->init_buf->data[s->init_off],
140 s->internal->init_num); 140 s->init_num);
141 if (ret < 0) 141 if (ret < 0)
142 return (-1); 142 return (-1);
143 143
@@ -147,16 +147,16 @@ ssl3_do_write(SSL *s, int type)
147 * we'll ignore the result anyway. 147 * we'll ignore the result anyway.
148 */ 148 */
149 tls1_transcript_record(s, 149 tls1_transcript_record(s,
150 (unsigned char *)&s->internal->init_buf->data[s->internal->init_off], ret); 150 (unsigned char *)&s->init_buf->data[s->init_off], ret);
151 151
152 if (ret == s->internal->init_num) { 152 if (ret == s->init_num) {
153 ssl_msg_callback(s, 1, type, s->internal->init_buf->data, 153 ssl_msg_callback(s, 1, type, s->init_buf->data,
154 (size_t)(s->internal->init_off + s->internal->init_num)); 154 (size_t)(s->init_off + s->init_num));
155 return (1); 155 return (1);
156 } 156 }
157 157
158 s->internal->init_off += ret; 158 s->init_off += ret;
159 s->internal->init_num -= ret; 159 s->init_num -= ret;
160 160
161 return (0); 161 return (0);
162} 162}
@@ -207,7 +207,7 @@ ssl3_output_cert_chain(SSL *s, CBB *cbb, SSL_CERT_PKEY *cpk)
207 if ((chain = cpk->chain) == NULL) 207 if ((chain = cpk->chain) == NULL)
208 chain = s->ctx->extra_certs; 208 chain = s->ctx->extra_certs;
209 209
210 if (chain != NULL || (s->internal->mode & SSL_MODE_NO_AUTO_CHAIN)) { 210 if (chain != NULL || (s->mode & SSL_MODE_NO_AUTO_CHAIN)) {
211 if (!ssl3_add_cert(&cert_list, cpk->x509)) 211 if (!ssl3_add_cert(&cert_list, cpk->x509))
212 goto err; 212 goto err;
213 } else { 213 } else {
@@ -269,27 +269,27 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max)
269 SSLerror(s, SSL_R_UNEXPECTED_MESSAGE); 269 SSLerror(s, SSL_R_UNEXPECTED_MESSAGE);
270 goto fatal_err; 270 goto fatal_err;
271 } 271 }
272 s->internal->init_msg = s->internal->init_buf->data + 272 s->init_msg = s->init_buf->data +
273 SSL3_HM_HEADER_LENGTH; 273 SSL3_HM_HEADER_LENGTH;
274 s->internal->init_num = (int)s->s3->hs.tls12.message_size; 274 s->init_num = (int)s->s3->hs.tls12.message_size;
275 return 1; 275 return 1;
276 } 276 }
277 277
278 p = (unsigned char *)s->internal->init_buf->data; 278 p = (unsigned char *)s->init_buf->data;
279 279
280 if (s->s3->hs.state == st1) { 280 if (s->s3->hs.state == st1) {
281 int skip_message; 281 int skip_message;
282 282
283 do { 283 do {
284 while (s->internal->init_num < SSL3_HM_HEADER_LENGTH) { 284 while (s->init_num < SSL3_HM_HEADER_LENGTH) {
285 i = s->method->ssl_read_bytes(s, 285 i = s->method->ssl_read_bytes(s,
286 SSL3_RT_HANDSHAKE, &p[s->internal->init_num], 286 SSL3_RT_HANDSHAKE, &p[s->init_num],
287 SSL3_HM_HEADER_LENGTH - s->internal->init_num, 0); 287 SSL3_HM_HEADER_LENGTH - s->init_num, 0);
288 if (i <= 0) { 288 if (i <= 0) {
289 s->internal->rwstate = SSL_READING; 289 s->rwstate = SSL_READING;
290 return i; 290 return i;
291 } 291 }
292 s->internal->init_num += i; 292 s->init_num += i;
293 } 293 }
294 294
295 skip_message = 0; 295 skip_message = 0;
@@ -301,7 +301,7 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max)
301 * correct. Does not count for 'Finished' MAC. 301 * correct. Does not count for 'Finished' MAC.
302 */ 302 */
303 if (p[1] == 0 && p[2] == 0 &&p[3] == 0) { 303 if (p[1] == 0 && p[2] == 0 &&p[3] == 0) {
304 s->internal->init_num = 0; 304 s->init_num = 0;
305 skip_message = 1; 305 skip_message = 1;
306 306
307 ssl_msg_callback(s, 0, 307 ssl_msg_callback(s, 0,
@@ -330,7 +330,7 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max)
330 SSLerror(s, SSL_R_EXCESSIVE_MESSAGE_SIZE); 330 SSLerror(s, SSL_R_EXCESSIVE_MESSAGE_SIZE);
331 goto fatal_err; 331 goto fatal_err;
332 } 332 }
333 if (l && !BUF_MEM_grow_clean(s->internal->init_buf, 333 if (l && !BUF_MEM_grow_clean(s->init_buf,
334 l + SSL3_HM_HEADER_LENGTH)) { 334 l + SSL3_HM_HEADER_LENGTH)) {
335 SSLerror(s, ERR_R_BUF_LIB); 335 SSLerror(s, ERR_R_BUF_LIB);
336 goto err; 336 goto err;
@@ -338,33 +338,33 @@ ssl3_get_message(SSL *s, int st1, int stn, int mt, long max)
338 s->s3->hs.tls12.message_size = l; 338 s->s3->hs.tls12.message_size = l;
339 s->s3->hs.state = stn; 339 s->s3->hs.state = stn;
340 340
341 s->internal->init_msg = s->internal->init_buf->data + 341 s->init_msg = s->init_buf->data +
342 SSL3_HM_HEADER_LENGTH; 342 SSL3_HM_HEADER_LENGTH;
343 s->internal->init_num = 0; 343 s->init_num = 0;
344 } 344 }
345 345
346 /* next state (stn) */ 346 /* next state (stn) */
347 p = s->internal->init_msg; 347 p = s->init_msg;
348 n = s->s3->hs.tls12.message_size - s->internal->init_num; 348 n = s->s3->hs.tls12.message_size - s->init_num;
349 while (n > 0) { 349 while (n > 0) {
350 i = s->method->ssl_read_bytes(s, SSL3_RT_HANDSHAKE, 350 i = s->method->ssl_read_bytes(s, SSL3_RT_HANDSHAKE,
351 &p[s->internal->init_num], n, 0); 351 &p[s->init_num], n, 0);
352 if (i <= 0) { 352 if (i <= 0) {
353 s->internal->rwstate = SSL_READING; 353 s->rwstate = SSL_READING;
354 return i; 354 return i;
355 } 355 }
356 s->internal->init_num += i; 356 s->init_num += i;
357 n -= i; 357 n -= i;
358 } 358 }
359 359
360 /* Feed this message into MAC computation. */ 360 /* Feed this message into MAC computation. */
361 if (s->internal->mac_packet) { 361 if (s->mac_packet) {
362 tls1_transcript_record(s, (unsigned char *)s->internal->init_buf->data, 362 tls1_transcript_record(s, (unsigned char *)s->init_buf->data,
363 s->internal->init_num + SSL3_HM_HEADER_LENGTH); 363 s->init_num + SSL3_HM_HEADER_LENGTH);
364 364
365 ssl_msg_callback(s, 0, SSL3_RT_HANDSHAKE, 365 ssl_msg_callback(s, 0, SSL3_RT_HANDSHAKE,
366 s->internal->init_buf->data, 366 s->init_buf->data,
367 (size_t)s->internal->init_num + SSL3_HM_HEADER_LENGTH); 367 (size_t)s->init_num + SSL3_HM_HEADER_LENGTH);
368 } 368 }
369 369
370 return 1; 370 return 1;
@@ -459,7 +459,7 @@ ssl3_setup_init_buffer(SSL *s)
459{ 459{
460 BUF_MEM *buf = NULL; 460 BUF_MEM *buf = NULL;
461 461
462 if (s->internal->init_buf != NULL) 462 if (s->init_buf != NULL)
463 return (1); 463 return (1);
464 464
465 if ((buf = BUF_MEM_new()) == NULL) 465 if ((buf = BUF_MEM_new()) == NULL)
@@ -467,7 +467,7 @@ ssl3_setup_init_buffer(SSL *s)
467 if (!BUF_MEM_grow(buf, SSL3_RT_MAX_PLAIN_LENGTH)) 467 if (!BUF_MEM_grow(buf, SSL3_RT_MAX_PLAIN_LENGTH))
468 goto err; 468 goto err;
469 469
470 s->internal->init_buf = buf; 470 s->init_buf = buf;
471 return (1); 471 return (1);
472 472
473 err: 473 err:
@@ -478,11 +478,11 @@ ssl3_setup_init_buffer(SSL *s)
478void 478void
479ssl3_release_init_buffer(SSL *s) 479ssl3_release_init_buffer(SSL *s)
480{ 480{
481 BUF_MEM_free(s->internal->init_buf); 481 BUF_MEM_free(s->init_buf);
482 s->internal->init_buf = NULL; 482 s->init_buf = NULL;
483 s->internal->init_msg = NULL; 483 s->init_msg = NULL;
484 s->internal->init_num = 0; 484 s->init_num = 0;
485 s->internal->init_off = 0; 485 s->init_off = 0;
486} 486}
487 487
488int 488int
@@ -507,7 +507,7 @@ ssl3_setup_read_buffer(SSL *s)
507 s->s3->rbuf.len = len; 507 s->s3->rbuf.len = len;
508 } 508 }
509 509
510 s->internal->packet = s->s3->rbuf.buf; 510 s->packet = s->s3->rbuf.buf;
511 return 1; 511 return 1;
512 512
513 err: 513 err:
@@ -531,7 +531,7 @@ ssl3_setup_write_buffer(SSL *s)
531 if (s->s3->wbuf.buf == NULL) { 531 if (s->s3->wbuf.buf == NULL) {
532 len = s->max_send_fragment + 532 len = s->max_send_fragment +
533 SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align; 533 SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align;
534 if (!(s->internal->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)) 534 if (!(s->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS))
535 len += headerlen + align + 535 len += headerlen + align +
536 SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD; 536 SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD;
537 537