Mercurial > hg > nginx
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); |