diff --git a/include/haproxy/quic_tls.h b/include/haproxy/quic_tls.h index 9f964398c..cc63709c3 100644 --- a/include/haproxy/quic_tls.h +++ b/include/haproxy/quic_tls.h @@ -685,8 +685,11 @@ static inline void quic_tls_ctx_reset(struct quic_tls_ctx *ctx) ctx->rx.hp_ctx = NULL; ctx->rx.hp = NULL; ctx->rx.secret = NULL; + ctx->rx.secretlen = 0; ctx->rx.iv = NULL; + ctx->rx.ivlen = 0; ctx->rx.key = NULL; + ctx->rx.keylen = 0; ctx->rx.pn = 0; ctx->tx.ctx = NULL; @@ -695,8 +698,11 @@ static inline void quic_tls_ctx_reset(struct quic_tls_ctx *ctx) ctx->tx.hp_ctx = NULL; ctx->tx.hp = NULL; ctx->tx.secret = NULL; + ctx->tx.secretlen = 0; ctx->tx.iv = NULL; + ctx->tx.ivlen = 0; ctx->tx.key = NULL; + ctx->tx.keylen = 0; /* Not used on the TX path. */ ctx->tx.pn = 0; @@ -835,6 +841,20 @@ static inline int quic_initial_tls_ctx_init(struct quic_tls_ctx *ctx) ctx->rx.md = ctx->tx.md = EVP_sha256(); ctx->rx.hp = ctx->tx.hp = EVP_aes_128_ctr(); + ctx->rx.iv = NULL; + ctx->rx.ivlen = 0; + ctx->rx.key = NULL; + ctx->rx.keylen = 0; + ctx->rx.secret = NULL; + ctx->rx.secretlen = 0; + + ctx->tx.iv = NULL; + ctx->tx.ivlen = 0; + ctx->tx.key = NULL; + ctx->tx.keylen = 0; + ctx->tx.secret = NULL; + ctx->tx.secretlen = 0; + return quic_tls_ctx_keys_alloc(ctx); }