Frederic Lecaille 3095fa27ab BUG/MEDIUM: quic: support some ciphersuites and curves related options
This patch impacts both the QUIC frontends and listeners.

Before this patch "ssl-default-bind-ciphersuites", "ssl-default-bind-curves",
were ignored by QUIC. For the backend, "ssl-default-server-ciphersuites"
and "ssl-default-server-curves" were not ignored but set from set
from ssl_quic_srv_new_ssl_ctx() which is QUIC specific, in place of
ssl_sock_init_srv() as this is done for TCP.

Rename <quic_ciphers> global variable to <default_quic_ciphersuites>
and <quic_groups> to <default_quic_curves> to reflect the OpenSSL API naming.

On frontend side, add support for "ssl-default-bind-ciphersuites" and
"ssl-default-bind-curves" global options and "ciphersuites" and "curves" "bind"
options. These options are taken into an account by ssl_quic_initial_ctx()
which inspects these four variable before calling SSL_CTX_set_ciphersuites()
and SSL_CTX_set_curves(). Note that the bind_conf struct is not modified
when no "ciphersuites" or "curves" option are used on "bind" lines.

Idem on backend side, rely on ssl_sock_init_srv() to set the server ciphersuites
and curves. This function is modified to use respectively <default_quic_ciphersuites>
and <default_quic_curves> if no ciphersuites  and curves were set by
"ssl-default-server-ciphersuites", "ssl-default-server-curves" as global options
or "ciphersuites", "curves" as "server" line options.

Thank to @rwagoner for having reported this issue in GH #3194 when using
an OpenSSL 3.5.4 stack with FIPS support.

Must be backported as far as 2.6
2025-11-26 09:21:47 +01:00
..