]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
p_lib.c: Remove engine from pkey_set_type
authorNorbert Pocs <norbertp@openssl.org>
Tue, 16 Sep 2025 08:18:54 +0000 (10:18 +0200)
committerNeil Horman <nhorman@openssl.org>
Thu, 4 Dec 2025 12:31:06 +0000 (07:31 -0500)
Resolves: https://github.com/openssl/project/issues/1437

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

crypto/evp/p_lib.c

index 715fe062bf575a5792c3edc9408e1e84ecb6689d..9912bd515fc0310acecb051bdc6467a7abf570f2 100644 (file)
@@ -50,7 +50,7 @@
 #include "internal/provider.h"
 #include "evp_local.h"
 
-static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str,
+static int pkey_set_type(EVP_PKEY *pkey, int type, const char *str,
                          int len, EVP_KEYMGMT *keymgmt);
 static void evp_pkey_free_it(EVP_PKEY *key);
 
@@ -464,7 +464,7 @@ static EVP_PKEY *new_raw_key_int(OSSL_LIB_CTX *libctx,
         goto err;
     }
 
-    if (!pkey_set_type(pkey, NULL, nidtype, strtype, -1, NULL)) {
+    if (!pkey_set_type(pkey, nidtype, strtype, -1, NULL)) {
         /* ERR_raise(ERR_LIB_EVP, ...) already called */
         goto err;
     }
@@ -692,12 +692,12 @@ EVP_PKEY *EVP_PKEY_new_CMAC_key(ENGINE *e, const unsigned char *priv,
 
 int EVP_PKEY_set_type(EVP_PKEY *pkey, int type)
 {
-    return pkey_set_type(pkey, NULL, type, NULL, -1, NULL);
+    return pkey_set_type(pkey, type, NULL, -1, NULL);
 }
 
 int EVP_PKEY_set_type_str(EVP_PKEY *pkey, const char *str, int len)
 {
-    return pkey_set_type(pkey, NULL, EVP_PKEY_NONE, str, len, NULL);
+    return pkey_set_type(pkey, EVP_PKEY_NONE, str, len, NULL);
 }
 
 # ifndef OPENSSL_NO_DEPRECATED_3_0
@@ -1472,8 +1472,8 @@ EVP_PKEY *EVP_PKEY_new(void)
  * Setup a public key management method.
  *
  * For legacy keys, either |type| or |str| is expected to have the type
- * information.  In this case, the setup consists of finding an ASN1 method
- * and potentially an ENGINE, and setting those fields in |pkey|.
+ * information. In this case, the setup consists of finding an ASN1 method
+ * and setting those fields in |pkey|.
  *
  * For provider side keys, |keymgmt| is expected to be non-NULL.  In this
  * case, the setup consists of setting the |keymgmt| field in |pkey|.
@@ -1481,21 +1481,18 @@ EVP_PKEY *EVP_PKEY_new(void)
  * If pkey is NULL just return 1 or 0 if the key management method exists.
  */
 
-/* TODO - remove engine parameter */
-static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str,
+static int pkey_set_type(EVP_PKEY *pkey, int type, const char *str,
                          int len, EVP_KEYMGMT *keymgmt)
 {
 #ifndef FIPS_MODULE
     const EVP_PKEY_ASN1_METHOD *ameth = NULL;
-    ENGINE **eptr = (e == NULL) ? &e : NULL;
 #endif
 
     /*
      * The setups can't set both legacy and provider side methods.
      * It is forbidden
      */
-    if (!ossl_assert(type == EVP_PKEY_NONE || keymgmt == NULL)
-        || !ossl_assert(e == NULL || keymgmt == NULL)) {
+    if (!ossl_assert(type == EVP_PKEY_NONE || keymgmt == NULL)) {
         ERR_raise(ERR_LIB_EVP, ERR_R_INTERNAL_ERROR);
         return 0;
     }
@@ -1522,9 +1519,9 @@ static int pkey_set_type(EVP_PKEY *pkey, ENGINE *e, int type, const char *str,
     }
 #ifndef FIPS_MODULE
     if (str != NULL)
-        ameth = EVP_PKEY_asn1_find_str(eptr, str, len);
+        ameth = EVP_PKEY_asn1_find_str(NULL, str, len);
     else if (type != EVP_PKEY_NONE)
-        ameth = EVP_PKEY_asn1_find(eptr, type);
+        ameth = EVP_PKEY_asn1_find(NULL, type);
 #endif
 
 
@@ -1590,7 +1587,7 @@ static void find_ameth(const char *name, void *data)
      */
     ERR_set_mark();
 
-    if (pkey_set_type(NULL, NULL, EVP_PKEY_NONE, name, (int)strlen(name),
+    if (pkey_set_type(NULL, EVP_PKEY_NONE, name, (int)strlen(name),
                       NULL)) {
         if (str[0] == NULL)
             str[0] = name;
@@ -1623,7 +1620,7 @@ int EVP_PKEY_set_type_by_keymgmt(EVP_PKEY *pkey, EVP_KEYMGMT *keymgmt)
 # define EVP_PKEY_TYPE_STR NULL
 # define EVP_PKEY_TYPE_STRLEN -1
 #endif
-    return pkey_set_type(pkey, NULL, EVP_PKEY_NONE,
+    return pkey_set_type(pkey, EVP_PKEY_NONE,
                          EVP_PKEY_TYPE_STR, EVP_PKEY_TYPE_STRLEN,
                          keymgmt);