comparison src/event/quic/ngx_event_quic_transport.c @ 9126:29a6c0e11f75

QUIC: a new constant for AEAD tag length. Previously used constant EVP_GCM_TLS_TAG_LEN had misleading name since it was used not only with GCM, but also with CHACHAPOLY. Now a new constant NGX_QUIC_TAG_LEN introduced. Luckily all AEAD algorithms used by QUIC have the same tag length of 16.
author Roman Arutyunyan <arut@nginx.com>
date Fri, 09 Jun 2023 10:25:54 +0400
parents b9230e37b8a1
children ad3d34ddfdcc
comparison
equal deleted inserted replaced
9125:31c8c1a713bc 9126:29a6c0e11f75
576 { 576 {
577 size_t len; 577 size_t len;
578 578
579 if (ngx_quic_short_pkt(pkt->flags)) { 579 if (ngx_quic_short_pkt(pkt->flags)) {
580 580
581 len = 1 + pkt->dcid.len + pkt->num_len + EVP_GCM_TLS_TAG_LEN; 581 len = 1 + pkt->dcid.len + pkt->num_len + NGX_QUIC_TAG_LEN;
582 if (len > pkt_len) { 582 if (len > pkt_len) {
583 return 0; 583 return 0;
584 } 584 }
585 585
586 return pkt_len - len; 586 return pkt_len - len;
594 return 0; 594 return 0;
595 } 595 }
596 596
597 /* (pkt_len - len) is 'remainder' packet length (see RFC 9000, 17.2) */ 597 /* (pkt_len - len) is 'remainder' packet length (see RFC 9000, 17.2) */
598 len += ngx_quic_varint_len(pkt_len - len) 598 len += ngx_quic_varint_len(pkt_len - len)
599 + pkt->num_len + EVP_GCM_TLS_TAG_LEN; 599 + pkt->num_len + NGX_QUIC_TAG_LEN;
600 600
601 if (len > pkt_len) { 601 if (len > pkt_len) {
602 return 0; 602 return 0;
603 } 603 }
604 604
620 u_char **pnp) 620 u_char **pnp)
621 { 621 {
622 size_t rem_len; 622 size_t rem_len;
623 u_char *p, *start; 623 u_char *p, *start;
624 624
625 rem_len = pkt->num_len + pkt->payload.len + EVP_GCM_TLS_TAG_LEN; 625 rem_len = pkt->num_len + pkt->payload.len + NGX_QUIC_TAG_LEN;
626 626
627 if (out == NULL) { 627 if (out == NULL) {
628 return 5 + 2 + pkt->dcid.len + pkt->scid.len 628 return 5 + 2 + pkt->dcid.len + pkt->scid.len
629 + ngx_quic_varint_len(rem_len) + pkt->num_len 629 + ngx_quic_varint_len(rem_len) + pkt->num_len
630 + (pkt->level == ssl_encryption_initial ? 1 : 0); 630 + (pkt->level == ssl_encryption_initial ? 1 : 0);