Curl_ssl_peer_key_make() omitted ssl->signature_algorithms, although
match_ssl_primary_config() compares the field. Two handles differing
only in CURLOPT_SSL_SIGNATURE_ALGORITHMS therefore shared a peer key and
could resume each other's sessions across a shared CURLSH SSL session
cache.
Add :SIGALGS-%s next to the other ssl_primary_config fields.
Closes #21651
if(r)
goto out;
}
+ if(ssl->signature_algorithms) {
+ r = curlx_dyn_addf(&buf, ":SIGALGS-%s",
+ ssl->signature_algorithms);
+ if(r)
+ goto out;
+ }
if(ssl->verifypeer) {
r = cf_ssl_peer_key_add_path(&buf, "CA", ssl->CAfile, &is_local);
if(r)