]> git.ipfire.org Git - thirdparty/squid.git/commit
Support no-digest X509 certificate keys like ML-DSA/EdDSA (#2165)
authoruhliarik <luhliari@redhat.com>
Mon, 22 Sep 2025 13:46:05 +0000 (13:46 +0000)
committerSquid Anubis <squid-anubis@squid-cache.org>
Tue, 23 Sep 2025 19:44:18 +0000 (19:44 +0000)
commit7bc5ff7e456e076444c2be03d79efdd5f1cd22de
tree46f197e995fea775f7ab32c8bda336cf1ab02c71
parent4022971135dd49add83e867b6e4c0aaae4fe9aca
Support no-digest X509 certificate keys like ML-DSA/EdDSA (#2165)

Recent OpenSSL releases (e.g., OpenSSL v3.5) support several private key
types[^1] for which supplying a message digest algorithm is prohibited
when signing a certificate. Prior to this enhancement, Squid was
rejecting https_port and http_port configurations using such key types
(with the above FATAL message) because OpenSSL X509_sign() call made
with a prohibited (for the given key type) non-nil digest algorithm was
failing.

Technically, only listening ports with generate-host-certificates (and
ssl-bump) parameters need to generate X509 certificates and, hence, call
X509_sign(). However, current Squid code generates so called "untrusted"
certificates even for ports that do not support dynamic host certificate
generation or SslBump (XXX). Thus, this enhancement is applicable to
both regular and SslBump configurations.

[^1]: Known no-message-digest key types are ML-DSA-44, ML-DSA-65,
ML-DSA-87, ED25519, and ED448, but others might exist or will be added.
This change was tested against known types, but should support others.
ML-DSA key types are used in post-quantum cryptography.
acinclude/lib-checks.m4
src/ssl/gadgets.cc