]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Avoid calling ssl_load_sigalgs in tls1_set_sigalgs_list
authorViktor Dukhovni <openssl-users@dukhovni.org>
Sat, 8 Feb 2025 06:05:20 +0000 (17:05 +1100)
committerViktor Dukhovni <openssl-users@dukhovni.org>
Tue, 11 Feb 2025 16:13:07 +0000 (03:13 +1100)
- The signature algorithms are already loaded in SSL_CTX_new()

- Calling ssl_load_sigalgs() again is non-productive, and does
  not look thread safe.

- And of course avoiding the call is cheaper.

- Also fix broken loop test in ssl_cert_lookup_by_pkey()

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/26671)

ssl/ssl_cert.c
ssl/t1_lib.c

index 4aef14952006bd1c300487aecc0c533584b91a98..6f48ab2f456993d2d4f779410f22eecd2f2eb450 100644 (file)
@@ -1323,7 +1323,7 @@ const SSL_CERT_LOOKUP *ssl_cert_lookup_by_pkey(const EVP_PKEY *pk, size_t *pidx,
         }
     }
     /* check provider-loaded pk types */
-    for (i = 0; ctx->sigalg_list_len; i++) {
+    for (i = 0; i < ctx->sigalg_list_len; i++) {
         SSL_CERT_LOOKUP *tmp_lu = &(ctx->ssl_cert_info[i]);
 
         if (EVP_PKEY_is_a(pk, OBJ_nid2sn(tmp_lu->nid))
index 8f63128547673613c39dbc27db5bec64b4d65f4b..bf5c0ef444ad57b958e43ad42430067d1e090d57 100644 (file)
@@ -3625,9 +3625,8 @@ int tls1_set_sigalgs_list(SSL_CTX *ctx, CERT *c, const char *str, int client)
     sig_cb_st sig;
     sig.sigalgcnt = 0;
 
-    if (ctx != NULL && ssl_load_sigalgs(ctx)) {
+    if (ctx != NULL)
         sig.ctx = ctx;
-    }
     if (!CONF_parse_list(str, ':', 1, sig_cb, &sig))
         return 0;
     if (sig.sigalgcnt == 0) {