Skip to content
Snippets Groups Projects
Commit 1964ec3d authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa
Browse files

Add ngtcp2_pkt_verify

parent 21011259
No related merge requests found
...@@ -312,10 +312,7 @@ NGTCP2_EXTERN size_t ngtcp2_upe_final(ngtcp2_upe *upe, const uint8_t **ppkt); ...@@ -312,10 +312,7 @@ NGTCP2_EXTERN size_t ngtcp2_upe_final(ngtcp2_upe *upe, const uint8_t **ppkt);
* `ngtcp2_pkt_verify` verifies the integrity of QUIC unprotected * `ngtcp2_pkt_verify` verifies the integrity of QUIC unprotected
* packet included in |pkt| of length |pktlen|. * packet included in |pkt| of length |pktlen|.
* *
* This function returns 0 if it succeeds, or one of the following * This function returns 0 if it succeeds, or -1.
* negative error codes:
*
* TBD
*/ */
NGTCP2_EXTERN int ngtcp2_pkt_verify(const uint8_t *pkt, size_t pktlen); NGTCP2_EXTERN int ngtcp2_pkt_verify(const uint8_t *pkt, size_t pktlen);
......
...@@ -747,3 +747,16 @@ ssize_t ngtcp2_pkt_encode_padding_frame(uint8_t *out, size_t outlen, ...@@ -747,3 +747,16 @@ ssize_t ngtcp2_pkt_encode_padding_frame(uint8_t *out, size_t outlen,
return (ssize_t)fm->len; return (ssize_t)fm->len;
} }
int ngtcp2_pkt_verify(const uint8_t *pkt, size_t pktlen) {
uint64_t a, b;
if (pktlen <= NGTCP2_PKT_MDLEN) {
return -1;
}
a = ngtcp2_get_uint64(pkt + (pktlen - NGTCP2_PKT_MDLEN));
b = ngtcp2_fnv1a(pkt, pktlen - NGTCP2_PKT_MDLEN);
return a == b ? 0 : -1;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment