# HG changeset patch # User Sergey Kandaurov # Date 1585910980 -10800 # Node ID c625bde6cb7796faefa5718ac1fc8260bf170342 # Parent 053fa468b04413b1eca63dcdac89c77fc8af692b Fixed computing nonce again, by properly shifting packet number. diff --git a/src/event/ngx_event_quic_protection.c b/src/event/ngx_event_quic_protection.c --- a/src/event/ngx_event_quic_protection.c +++ b/src/event/ngx_event_quic_protection.c @@ -787,10 +787,10 @@ ngx_quic_parse_pn(u_char **pos, ngx_int_ static void ngx_quic_compute_nonce(u_char *nonce, size_t len, uint64_t pn) { - nonce[len - 4] ^= pn & 0xff000000; - nonce[len - 3] ^= pn & 0x00ff0000; - nonce[len - 2] ^= pn & 0x0000ff00; - nonce[len - 1] ^= pn & 0x000000ff; + nonce[len - 4] ^= (pn & 0xff000000) >> 24; + nonce[len - 3] ^= (pn & 0x00ff0000) >> 16; + nonce[len - 2] ^= (pn & 0x0000ff00) >> 8; + nonce[len - 1] ^= (pn & 0x000000ff); }