diff options
Diffstat (limited to 'src/lib/libssl/d1_pkt.c')
-rw-r--r-- | src/lib/libssl/d1_pkt.c | 102 |
1 files changed, 51 insertions, 51 deletions
diff --git a/src/lib/libssl/d1_pkt.c b/src/lib/libssl/d1_pkt.c index 456f871a43..1431434ba8 100644 --- a/src/lib/libssl/d1_pkt.c +++ b/src/lib/libssl/d1_pkt.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: d1_pkt.c,v 1.123 2022/03/26 15:05:53 jsing Exp $ */ | 1 | /* $OpenBSD: d1_pkt.c,v 1.124 2022/10/02 16:36:41 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * DTLS implementation written by Nagendra Modadugu | 3 | * DTLS implementation written by Nagendra Modadugu |
4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. | 4 | * (nagendra@cs.stanford.edu) for the OpenSSL project 2005. |
@@ -193,8 +193,8 @@ dtls1_copy_record(SSL *s, DTLS1_RECORD_DATA_INTERNAL *rdata) | |||
193 | { | 193 | { |
194 | ssl3_release_buffer(&s->s3->rbuf); | 194 | ssl3_release_buffer(&s->s3->rbuf); |
195 | 195 | ||
196 | s->internal->packet = rdata->packet; | 196 | s->packet = rdata->packet; |
197 | s->internal->packet_length = rdata->packet_length; | 197 | s->packet_length = rdata->packet_length; |
198 | memcpy(&(s->s3->rbuf), &(rdata->rbuf), sizeof(SSL3_BUFFER_INTERNAL)); | 198 | memcpy(&(s->s3->rbuf), &(rdata->rbuf), sizeof(SSL3_BUFFER_INTERNAL)); |
199 | memcpy(&(s->s3->rrec), &(rdata->rrec), sizeof(SSL3_RECORD_INTERNAL)); | 199 | memcpy(&(s->s3->rrec), &(rdata->rrec), sizeof(SSL3_RECORD_INTERNAL)); |
200 | 200 | ||
@@ -216,15 +216,15 @@ dtls1_buffer_record(SSL *s, record_pqueue *queue, unsigned char *priority) | |||
216 | if (rdata == NULL || item == NULL) | 216 | if (rdata == NULL || item == NULL) |
217 | goto init_err; | 217 | goto init_err; |
218 | 218 | ||
219 | rdata->packet = s->internal->packet; | 219 | rdata->packet = s->packet; |
220 | rdata->packet_length = s->internal->packet_length; | 220 | rdata->packet_length = s->packet_length; |
221 | memcpy(&(rdata->rbuf), &(s->s3->rbuf), sizeof(SSL3_BUFFER_INTERNAL)); | 221 | memcpy(&(rdata->rbuf), &(s->s3->rbuf), sizeof(SSL3_BUFFER_INTERNAL)); |
222 | memcpy(&(rdata->rrec), &(s->s3->rrec), sizeof(SSL3_RECORD_INTERNAL)); | 222 | memcpy(&(rdata->rrec), &(s->s3->rrec), sizeof(SSL3_RECORD_INTERNAL)); |
223 | 223 | ||
224 | item->data = rdata; | 224 | item->data = rdata; |
225 | 225 | ||
226 | s->internal->packet = NULL; | 226 | s->packet = NULL; |
227 | s->internal->packet_length = 0; | 227 | s->packet_length = 0; |
228 | memset(&(s->s3->rbuf), 0, sizeof(SSL3_BUFFER_INTERNAL)); | 228 | memset(&(s->s3->rbuf), 0, sizeof(SSL3_BUFFER_INTERNAL)); |
229 | memset(&(s->s3->rrec), 0, sizeof(SSL3_RECORD_INTERNAL)); | 229 | memset(&(s->s3->rrec), 0, sizeof(SSL3_RECORD_INTERNAL)); |
230 | 230 | ||
@@ -271,13 +271,13 @@ dtls1_process_buffered_record(SSL *s) | |||
271 | { | 271 | { |
272 | /* Check if epoch is current. */ | 272 | /* Check if epoch is current. */ |
273 | if (s->d1->unprocessed_rcds.epoch != | 273 | if (s->d1->unprocessed_rcds.epoch != |
274 | tls12_record_layer_read_epoch(s->internal->rl)) | 274 | tls12_record_layer_read_epoch(s->rl)) |
275 | return (0); | 275 | return (0); |
276 | 276 | ||
277 | /* Update epoch once all unprocessed records have been processed. */ | 277 | /* Update epoch once all unprocessed records have been processed. */ |
278 | if (pqueue_peek(s->d1->unprocessed_rcds.q) == NULL) { | 278 | if (pqueue_peek(s->d1->unprocessed_rcds.q) == NULL) { |
279 | s->d1->unprocessed_rcds.epoch = | 279 | s->d1->unprocessed_rcds.epoch = |
280 | tls12_record_layer_read_epoch(s->internal->rl) + 1; | 280 | tls12_record_layer_read_epoch(s->rl) + 1; |
281 | return (0); | 281 | return (0); |
282 | } | 282 | } |
283 | 283 | ||
@@ -298,11 +298,11 @@ dtls1_process_record(SSL *s) | |||
298 | uint8_t *out; | 298 | uint8_t *out; |
299 | size_t out_len; | 299 | size_t out_len; |
300 | 300 | ||
301 | tls12_record_layer_set_version(s->internal->rl, s->version); | 301 | tls12_record_layer_set_version(s->rl, s->version); |
302 | 302 | ||
303 | if (!tls12_record_layer_open_record(s->internal->rl, s->internal->packet, | 303 | if (!tls12_record_layer_open_record(s->rl, s->packet, |
304 | s->internal->packet_length, &out, &out_len)) { | 304 | s->packet_length, &out, &out_len)) { |
305 | tls12_record_layer_alert(s->internal->rl, &alert_desc); | 305 | tls12_record_layer_alert(s->rl, &alert_desc); |
306 | 306 | ||
307 | if (alert_desc == 0) | 307 | if (alert_desc == 0) |
308 | goto err; | 308 | goto err; |
@@ -327,7 +327,7 @@ dtls1_process_record(SSL *s) | |||
327 | rr->length = out_len; | 327 | rr->length = out_len; |
328 | rr->off = 0; | 328 | rr->off = 0; |
329 | 329 | ||
330 | s->internal->packet_length = 0; | 330 | s->packet_length = 0; |
331 | 331 | ||
332 | return (1); | 332 | return (1); |
333 | 333 | ||
@@ -341,9 +341,9 @@ dtls1_process_record(SSL *s) | |||
341 | * It will return <= 0 if more data is needed, normally due to an error | 341 | * It will return <= 0 if more data is needed, normally due to an error |
342 | * or non-blocking IO. | 342 | * or non-blocking IO. |
343 | * When it finishes, one packet has been decoded and can be found in | 343 | * When it finishes, one packet has been decoded and can be found in |
344 | * ssl->s3->internal->rrec.type - is the type of record | 344 | * ssl->s3->rrec.type - is the type of record |
345 | * ssl->s3->internal->rrec.data, - data | 345 | * ssl->s3->rrec.data, - data |
346 | * ssl->s3->internal->rrec.length, - number of bytes | 346 | * ssl->s3->rrec.length, - number of bytes |
347 | */ | 347 | */ |
348 | /* used only by dtls1_read_bytes */ | 348 | /* used only by dtls1_read_bytes */ |
349 | int | 349 | int |
@@ -364,12 +364,12 @@ dtls1_get_record(SSL *s) | |||
364 | again: | 364 | again: |
365 | /* dump this record on all retries */ | 365 | /* dump this record on all retries */ |
366 | rr->length = 0; | 366 | rr->length = 0; |
367 | s->internal->packet_length = 0; | 367 | s->packet_length = 0; |
368 | } | 368 | } |
369 | 369 | ||
370 | /* check if we have the header */ | 370 | /* check if we have the header */ |
371 | if ((s->internal->rstate != SSL_ST_READ_BODY) || | 371 | if ((s->rstate != SSL_ST_READ_BODY) || |
372 | (s->internal->packet_length < DTLS1_RT_HEADER_LENGTH)) { | 372 | (s->packet_length < DTLS1_RT_HEADER_LENGTH)) { |
373 | CBS header, seq_no; | 373 | CBS header, seq_no; |
374 | uint16_t epoch, len, ssl_version; | 374 | uint16_t epoch, len, ssl_version; |
375 | uint8_t type; | 375 | uint8_t type; |
@@ -382,9 +382,9 @@ dtls1_get_record(SSL *s) | |||
382 | if (n != DTLS1_RT_HEADER_LENGTH) | 382 | if (n != DTLS1_RT_HEADER_LENGTH) |
383 | goto again; | 383 | goto again; |
384 | 384 | ||
385 | s->internal->rstate = SSL_ST_READ_BODY; | 385 | s->rstate = SSL_ST_READ_BODY; |
386 | 386 | ||
387 | CBS_init(&header, s->internal->packet, s->internal->packet_length); | 387 | CBS_init(&header, s->packet, s->packet_length); |
388 | 388 | ||
389 | /* Pull apart the header into the DTLS1_RECORD */ | 389 | /* Pull apart the header into the DTLS1_RECORD */ |
390 | if (!CBS_get_u8(&header, &type)) | 390 | if (!CBS_get_u8(&header, &type)) |
@@ -409,7 +409,7 @@ dtls1_get_record(SSL *s) | |||
409 | rr->length = len; | 409 | rr->length = len; |
410 | 410 | ||
411 | /* unexpected version, silently discard */ | 411 | /* unexpected version, silently discard */ |
412 | if (!s->internal->first_packet && ssl_version != s->version) | 412 | if (!s->first_packet && ssl_version != s->version) |
413 | goto again; | 413 | goto again; |
414 | 414 | ||
415 | /* wrong version, silently discard record */ | 415 | /* wrong version, silently discard record */ |
@@ -420,11 +420,11 @@ dtls1_get_record(SSL *s) | |||
420 | if (rr->length > SSL3_RT_MAX_ENCRYPTED_LENGTH) | 420 | if (rr->length > SSL3_RT_MAX_ENCRYPTED_LENGTH) |
421 | goto again; | 421 | goto again; |
422 | 422 | ||
423 | /* now s->internal->rstate == SSL_ST_READ_BODY */ | 423 | /* now s->rstate == SSL_ST_READ_BODY */ |
424 | p = (unsigned char *)CBS_data(&header); | 424 | p = (unsigned char *)CBS_data(&header); |
425 | } | 425 | } |
426 | 426 | ||
427 | /* s->internal->rstate == SSL_ST_READ_BODY, get and decode the data */ | 427 | /* s->rstate == SSL_ST_READ_BODY, get and decode the data */ |
428 | 428 | ||
429 | n = ssl3_packet_extend(s, DTLS1_RT_HEADER_LENGTH + rr->length); | 429 | n = ssl3_packet_extend(s, DTLS1_RT_HEADER_LENGTH + rr->length); |
430 | if (n <= 0) | 430 | if (n <= 0) |
@@ -434,7 +434,7 @@ dtls1_get_record(SSL *s) | |||
434 | if (n != DTLS1_RT_HEADER_LENGTH + rr->length) | 434 | if (n != DTLS1_RT_HEADER_LENGTH + rr->length) |
435 | goto again; | 435 | goto again; |
436 | 436 | ||
437 | s->internal->rstate = SSL_ST_READ_HEADER; /* set state for later operations */ | 437 | s->rstate = SSL_ST_READ_HEADER; /* set state for later operations */ |
438 | 438 | ||
439 | /* match epochs. NULL means the packet is dropped on the floor */ | 439 | /* match epochs. NULL means the packet is dropped on the floor */ |
440 | bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch); | 440 | bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch); |
@@ -463,7 +463,7 @@ dtls1_get_record(SSL *s) | |||
463 | * anything while listening. | 463 | * anything while listening. |
464 | */ | 464 | */ |
465 | if (is_next_epoch) { | 465 | if (is_next_epoch) { |
466 | if ((SSL_in_init(s) || s->internal->in_handshake) && !s->d1->listen) { | 466 | if ((SSL_in_init(s) || s->in_handshake) && !s->d1->listen) { |
467 | if (dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), | 467 | if (dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), |
468 | rr->seq_num) < 0) | 468 | rr->seq_num) < 0) |
469 | return (-1); | 469 | return (-1); |
@@ -490,7 +490,7 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
490 | CBS cbs; | 490 | CBS cbs; |
491 | int ret; | 491 | int ret; |
492 | 492 | ||
493 | if (s->internal->in_handshake) { | 493 | if (s->in_handshake) { |
494 | SSLerror(s, ERR_R_INTERNAL_ERROR); | 494 | SSLerror(s, ERR_R_INTERNAL_ERROR); |
495 | return -1; | 495 | return -1; |
496 | } | 496 | } |
@@ -506,7 +506,7 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
506 | return -1; /* XXX - probably should drop/continue. */ | 506 | return -1; /* XXX - probably should drop/continue. */ |
507 | 507 | ||
508 | /* This may just be a stale retransmit. */ | 508 | /* This may just be a stale retransmit. */ |
509 | if (rr->epoch != tls12_record_layer_read_epoch(s->internal->rl)) { | 509 | if (rr->epoch != tls12_record_layer_read_epoch(s->rl)) { |
510 | rr->length = 0; | 510 | rr->length = 0; |
511 | return 1; | 511 | return 1; |
512 | } | 512 | } |
@@ -556,7 +556,7 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
556 | s->d1->handshake_read_seq++; | 556 | s->d1->handshake_read_seq++; |
557 | 557 | ||
558 | /* XXX - why is this set here but not in ssl3? */ | 558 | /* XXX - why is this set here but not in ssl3? */ |
559 | s->internal->new_session = 1; | 559 | s->new_session = 1; |
560 | 560 | ||
561 | if (!ssl3_renegotiate(s)) | 561 | if (!ssl3_renegotiate(s)) |
562 | return 1; | 562 | return 1; |
@@ -589,7 +589,7 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
589 | return -1; | 589 | return -1; |
590 | } | 590 | } |
591 | 591 | ||
592 | if ((s->internal->options & SSL_OP_NO_CLIENT_RENEGOTIATION) != 0) { | 592 | if ((s->options & SSL_OP_NO_CLIENT_RENEGOTIATION) != 0) { |
593 | ssl3_send_alert(s, SSL3_AL_FATAL, | 593 | ssl3_send_alert(s, SSL3_AL_FATAL, |
594 | SSL_AD_NO_RENEGOTIATION); | 594 | SSL_AD_NO_RENEGOTIATION); |
595 | return -1; | 595 | return -1; |
@@ -609,8 +609,8 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
609 | } | 609 | } |
610 | 610 | ||
611 | s->s3->hs.state = SSL_ST_ACCEPT; | 611 | s->s3->hs.state = SSL_ST_ACCEPT; |
612 | s->internal->renegotiate = 1; | 612 | s->renegotiate = 1; |
613 | s->internal->new_session = 1; | 613 | s->new_session = 1; |
614 | 614 | ||
615 | } else if (hs_msg_hdr.type == SSL3_MT_FINISHED && s->server) { | 615 | } else if (hs_msg_hdr.type == SSL3_MT_FINISHED && s->server) { |
616 | /* | 616 | /* |
@@ -634,14 +634,14 @@ dtls1_read_handshake_unexpected(SSL *s) | |||
634 | return -1; | 634 | return -1; |
635 | } | 635 | } |
636 | 636 | ||
637 | if ((ret = s->internal->handshake_func(s)) < 0) | 637 | if ((ret = s->handshake_func(s)) < 0) |
638 | return ret; | 638 | return ret; |
639 | if (ret == 0) { | 639 | if (ret == 0) { |
640 | SSLerror(s, SSL_R_SSL_HANDSHAKE_FAILURE); | 640 | SSLerror(s, SSL_R_SSL_HANDSHAKE_FAILURE); |
641 | return -1; | 641 | return -1; |
642 | } | 642 | } |
643 | 643 | ||
644 | if (!(s->internal->mode & SSL_MODE_AUTO_RETRY)) { | 644 | if (!(s->mode & SSL_MODE_AUTO_RETRY)) { |
645 | if (s->s3->rbuf.left == 0) { | 645 | if (s->s3->rbuf.left == 0) { |
646 | ssl_force_want_read(s); | 646 | ssl_force_want_read(s); |
647 | return -1; | 647 | return -1; |
@@ -710,8 +710,8 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
710 | return -1; | 710 | return -1; |
711 | } | 711 | } |
712 | 712 | ||
713 | if (SSL_in_init(s) && !s->internal->in_handshake) { | 713 | if (SSL_in_init(s) && !s->in_handshake) { |
714 | if ((ret = s->internal->handshake_func(s)) < 0) | 714 | if ((ret = s->handshake_func(s)) < 0) |
715 | return ret; | 715 | return ret; |
716 | if (ret == 0) { | 716 | if (ret == 0) { |
717 | SSLerror(s, SSL_R_SSL_HANDSHAKE_FAILURE); | 717 | SSLerror(s, SSL_R_SSL_HANDSHAKE_FAILURE); |
@@ -733,7 +733,7 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
733 | return -1; | 733 | return -1; |
734 | } | 734 | } |
735 | 735 | ||
736 | s->internal->rwstate = SSL_NOTHING; | 736 | s->rwstate = SSL_NOTHING; |
737 | 737 | ||
738 | rr = &s->s3->rrec; | 738 | rr = &s->s3->rrec; |
739 | 739 | ||
@@ -747,7 +747,7 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
747 | if (dtls1_handle_timeout(s) > 0) | 747 | if (dtls1_handle_timeout(s) > 0) |
748 | goto start; | 748 | goto start; |
749 | 749 | ||
750 | if (rr->length == 0 || s->internal->rstate == SSL_ST_READ_BODY) { | 750 | if (rr->length == 0 || s->rstate == SSL_ST_READ_BODY) { |
751 | if ((ret = dtls1_get_record(s)) <= 0) { | 751 | if ((ret = dtls1_get_record(s)) <= 0) { |
752 | /* Anything other than a timeout is an error. */ | 752 | /* Anything other than a timeout is an error. */ |
753 | if ((ret = dtls1_read_failed(s, ret)) <= 0) | 753 | if ((ret = dtls1_read_failed(s, ret)) <= 0) |
@@ -783,8 +783,8 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
783 | * If the other end has shut down, throw anything we read away (even in | 783 | * If the other end has shut down, throw anything we read away (even in |
784 | * 'peek' mode). | 784 | * 'peek' mode). |
785 | */ | 785 | */ |
786 | if (s->internal->shutdown & SSL_RECEIVED_SHUTDOWN) { | 786 | if (s->shutdown & SSL_RECEIVED_SHUTDOWN) { |
787 | s->internal->rwstate = SSL_NOTHING; | 787 | s->rwstate = SSL_NOTHING; |
788 | rr->length = 0; | 788 | rr->length = 0; |
789 | return 0; | 789 | return 0; |
790 | } | 790 | } |
@@ -796,7 +796,7 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
796 | * are doing a handshake for the first time. | 796 | * are doing a handshake for the first time. |
797 | */ | 797 | */ |
798 | if (SSL_in_init(s) && type == SSL3_RT_APPLICATION_DATA && | 798 | if (SSL_in_init(s) && type == SSL3_RT_APPLICATION_DATA && |
799 | !tls12_record_layer_read_protected(s->internal->rl)) { | 799 | !tls12_record_layer_read_protected(s->rl)) { |
800 | SSLerror(s, SSL_R_APP_DATA_IN_HANDSHAKE); | 800 | SSLerror(s, SSL_R_APP_DATA_IN_HANDSHAKE); |
801 | ssl3_send_alert(s, SSL3_AL_FATAL, | 801 | ssl3_send_alert(s, SSL3_AL_FATAL, |
802 | SSL_AD_UNEXPECTED_MESSAGE); | 802 | SSL_AD_UNEXPECTED_MESSAGE); |
@@ -817,7 +817,7 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
817 | rr->length -= n; | 817 | rr->length -= n; |
818 | rr->off += n; | 818 | rr->off += n; |
819 | if (rr->length == 0) { | 819 | if (rr->length == 0) { |
820 | s->internal->rstate = SSL_ST_READ_HEADER; | 820 | s->rstate = SSL_ST_READ_HEADER; |
821 | rr->off = 0; | 821 | rr->off = 0; |
822 | } | 822 | } |
823 | } | 823 | } |
@@ -836,8 +836,8 @@ dtls1_read_bytes(SSL *s, int type, unsigned char *buf, int len, int peek) | |||
836 | goto start; | 836 | goto start; |
837 | } | 837 | } |
838 | 838 | ||
839 | if (s->internal->shutdown & SSL_SENT_SHUTDOWN) { | 839 | if (s->shutdown & SSL_SENT_SHUTDOWN) { |
840 | s->internal->rwstate = SSL_NOTHING; | 840 | s->rwstate = SSL_NOTHING; |
841 | rr->length = 0; | 841 | rr->length = 0; |
842 | return (0); | 842 | return (0); |
843 | } | 843 | } |
@@ -891,9 +891,9 @@ dtls1_write_app_data_bytes(SSL *s, int type, const void *buf_, int len) | |||
891 | { | 891 | { |
892 | int i; | 892 | int i; |
893 | 893 | ||
894 | if (SSL_in_init(s) && !s->internal->in_handshake) | 894 | if (SSL_in_init(s) && !s->in_handshake) |
895 | { | 895 | { |
896 | i = s->internal->handshake_func(s); | 896 | i = s->handshake_func(s); |
897 | if (i < 0) | 897 | if (i < 0) |
898 | return (i); | 898 | return (i); |
899 | if (i == 0) { | 899 | if (i == 0) { |
@@ -920,7 +920,7 @@ dtls1_write_bytes(SSL *s, int type, const void *buf, int len) | |||
920 | int i; | 920 | int i; |
921 | 921 | ||
922 | OPENSSL_assert(len <= SSL3_RT_MAX_PLAIN_LENGTH); | 922 | OPENSSL_assert(len <= SSL3_RT_MAX_PLAIN_LENGTH); |
923 | s->internal->rwstate = SSL_NOTHING; | 923 | s->rwstate = SSL_NOTHING; |
924 | i = do_dtls1_write(s, type, buf, len); | 924 | i = do_dtls1_write(s, type, buf, len); |
925 | return i; | 925 | return i; |
926 | } | 926 | } |
@@ -959,9 +959,9 @@ do_dtls1_write(SSL *s, int type, const unsigned char *buf, unsigned int len) | |||
959 | if (!CBB_init_fixed(&cbb, wb->buf, wb->len)) | 959 | if (!CBB_init_fixed(&cbb, wb->buf, wb->len)) |
960 | goto err; | 960 | goto err; |
961 | 961 | ||
962 | tls12_record_layer_set_version(s->internal->rl, s->version); | 962 | tls12_record_layer_set_version(s->rl, s->version); |
963 | 963 | ||
964 | if (!tls12_record_layer_seal_record(s->internal->rl, type, buf, len, &cbb)) | 964 | if (!tls12_record_layer_seal_record(s->rl, type, buf, len, &cbb)) |
965 | goto err; | 965 | goto err; |
966 | 966 | ||
967 | if (!CBB_finish(&cbb, NULL, &out_len)) | 967 | if (!CBB_finish(&cbb, NULL, &out_len)) |
@@ -1035,7 +1035,7 @@ dtls1_get_bitmap(SSL *s, SSL3_RECORD_INTERNAL *rr, unsigned int *is_next_epoch) | |||
1035 | 1035 | ||
1036 | *is_next_epoch = 0; | 1036 | *is_next_epoch = 0; |
1037 | 1037 | ||
1038 | read_epoch = tls12_record_layer_read_epoch(s->internal->rl); | 1038 | read_epoch = tls12_record_layer_read_epoch(s->rl); |
1039 | read_epoch_next = read_epoch + 1; | 1039 | read_epoch_next = read_epoch + 1; |
1040 | 1040 | ||
1041 | /* In current epoch, accept HM, CCS, DATA, & ALERT */ | 1041 | /* In current epoch, accept HM, CCS, DATA, & ALERT */ |