Fix the defective check of EVP_PKEY_get_params
authorPeiwei Hu <jlu.hpw@foxmail.com>
Sat, 21 May 2022 07:27:04 +0000 (15:27 +0800)
committerPauli <pauli@openssl.org>
Thu, 26 May 2022 01:48:48 +0000 (11:48 +1000)
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18367)

crypto/evp/p_lib.c
doc/man3/EVP_PKEY_gettable_params.pod

index a4ad904f773929073e966e7b4d555a39c2645ecc..46883255c6e4a6cc19e6850d057513b24f02da49 100644 (file)
@@ -2343,10 +2343,10 @@ int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[])
 {
     if (pkey != NULL) {
         if (evp_pkey_is_provided(pkey))
-            return evp_keymgmt_get_params(pkey->keymgmt, pkey->keydata, params);
+            return evp_keymgmt_get_params(pkey->keymgmt, pkey->keydata, params) > 0;
 #ifndef FIPS_MODULE
         else if (evp_pkey_is_legacy(pkey))
-            return evp_pkey_get_params_to_ctrl(pkey, params);
+            return evp_pkey_get_params_to_ctrl(pkey, params) > 0;
 #endif
     }
     ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_KEY);
index d85ff52cbb3ed639d16426c64de8311ee141db1c..20bba142e517e1b16af8314ff450026844e66c8c 100644 (file)
@@ -79,7 +79,7 @@ These functions only work for B<EVP_PKEY>s that contain a provider side key.
 
 =head1 RETURN VALUES
 
-EVP_PKEY_gettable_params() returns NULL on error or if it is not supported,
+EVP_PKEY_gettable_params() returns NULL on error or if it is not supported.
 
 All other methods return 1 if a value associated with the key's I<key_name> was
 successfully returned, or 0 if there was an error.