Skip to content

fix: Propagate ECH keys to the QUIC listener#7670

Merged
mholt merged 1 commit intomasterfrom
fix-quic-ech-key-propagation
Apr 23, 2026
Merged

fix: Propagate ECH keys to the QUIC listener#7670
mholt merged 1 commit intomasterfrom
fix-quic-ech-key-propagation

Conversation

@steadytao
Copy link
Copy Markdown
Member

@steadytao steadytao commented Apr 23, 2026

Touches a small follow-up to #7653.

Summary

This preserves ECH handling on the QUIC / HTTP/3 path by forwarding GetEncryptedClientHelloKeys through Caddy's shared QUIC TLS config.

#7653 fixes the HTTPS RR alpn omission but that was only part of the problem. Found in #7667, QUIC was still rebuilding a minimal TLS config with GetConfigForClient only which meant the HTTP/3 listener could not process ECH even though the normal TLS path could.

This change keeps the existing shared-config model for QUIC listeners and adds the missing ECH key callback so the QUIC path sees the same ECH-capable behaviour as the TCP TLS path.

Tests

Added a listener regression test to verify:

  • shared QUIC state exposes the active config's ECH keys
  • ECH key lookup follows active config changes
go test . -run TestSharedQUICStateGetEncryptedClientHelloKeys -v
go test . -run "Test(SplitNetworkAddress|JoinNetworkAddress|ParseNetworkAddress|SharedQUICStateGetEncryptedClientHelloKeys)$" -count=1

Should close #7667.

Assistance Disclosure

No AI was used.

@steadytao steadytao added the bug 🐞 Something isn't working label Apr 23, 2026
@steadytao steadytao added this to the v2.11.3 milestone Apr 23, 2026
Copy link
Copy Markdown
Member

@mholt mholt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Huh, thanks. Makes sense I guess!

@mholt mholt merged commit 41aee97 into master Apr 23, 2026
35 of 36 checks passed
@mholt mholt deleted the fix-quic-ech-key-propagation branch April 23, 2026 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug 🐞 Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Managed ECH HTTPS records omit ALPN, causing clients to prefer h2 over h3

2 participants