Fix the checks of EVP_PKEY_CTX_get/set_rsa_pss_saltlen
authorPeiwei Hu <jlu.hpw@foxmail.com>
Tue, 24 May 2022 15:38:39 +0000 (23:38 +0800)
committerTomas Mraz <tomas@openssl.org>
Thu, 2 Jun 2022 09:06:35 +0000 (11:06 +0200)
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18399)

crypto/rsa/rsa_ameth.c
test/evp_extra_test.c

index 5195f673c6e57dd8541f2ccc777fb48799563522..bd32700599ccebb6d89a1e55e375e089595e8c00 100644 (file)
@@ -454,7 +454,7 @@ static RSA_PSS_PARAMS *rsa_ctx_to_pss(EVP_PKEY_CTX *pkctx)
         return NULL;
     if (EVP_PKEY_CTX_get_rsa_mgf1_md(pkctx, &mgf1md) <= 0)
         return NULL;
-    if (!EVP_PKEY_CTX_get_rsa_pss_saltlen(pkctx, &saltlen))
+    if (EVP_PKEY_CTX_get_rsa_pss_saltlen(pkctx, &saltlen) <= 0)
         return NULL;
     if (saltlen == -1) {
         saltlen = EVP_MD_get_size(sigmd);
index 4518271a823a07a9bd169b7168aeb04b40460101..174b0890d346c985acbc7a8996cfe582d97f1f7e 100644 (file)
@@ -3404,8 +3404,8 @@ static int test_EVP_rsa_pss_set_saltlen(void)
         && TEST_ptr(sha256_ctx = EVP_MD_CTX_new())
         && TEST_true(EVP_DigestSignInit(sha256_ctx, &pkey_ctx, sha256, NULL, pkey))
         && TEST_true(EVP_PKEY_CTX_set_rsa_padding(pkey_ctx, RSA_PKCS1_PSS_PADDING))
-        && TEST_true(EVP_PKEY_CTX_set_rsa_pss_saltlen(pkey_ctx, test_value))
-        && TEST_true(EVP_PKEY_CTX_get_rsa_pss_saltlen(pkey_ctx, &saltlen))
+        && TEST_int_gt(EVP_PKEY_CTX_set_rsa_pss_saltlen(pkey_ctx, test_value), 0)
+        && TEST_int_gt(EVP_PKEY_CTX_get_rsa_pss_saltlen(pkey_ctx, &saltlen), 0)
         && TEST_int_eq(saltlen, test_value);
 
     EVP_MD_CTX_free(sha256_ctx);