-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
On the QUIC interop tests (https://interop.seemann.io/), go-x-net appears as if it doesn't support ChaCha20. (The test is disabled, not failing.) That doesn't tell the whole story.
https://github.com/quic-interop/quic-interop-runner/blob/master/README.md#test-cases says "In this test, client and server are expected to offer only ChaCha20 as a ciphersuite. The client then downloads the files."
Support for ChaCha20 in golang.org/x/net/quic works fine, but crypto/tls doesn't allow configuring TLS 1.3 ciphersuites so we can't make it generate a client hello that will "only offer ChaCha20".
The server side is a different question; if a client were to offer only ChaCha20, that's what we'd negotiate and use. We can simulate the configuration of "only offer ChaCha20" by rejecting the client hello if it mentions any other ciphersuites. Note that the interop test runner itself would report a failure if the client hello offered any other ciphersuites: https://github.com/quic-interop/quic-interop-runner/blob/2dc49baf06552d3343c09755968e488730f88e95/testcases.py#L506
This lets us showcase the level of support that works, and gives those code paths regular exercise. See CL 712120.