Fix the incorrect checks of EVP_CIPHER_CTX_rand_key
authorPeiwei Hu <jlu.hpw@foxmail.com>
Tue, 24 May 2022 14:59:41 +0000 (22:59 +0800)
committerTomas Mraz <tomas@openssl.org>
Fri, 27 May 2022 05:57:43 +0000 (07:57 +0200)
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18397)

apps/speed.c
test/evp_libctx_test.c

index 936107c5efc56a3cbbc4086e7acb0aa9f10136c5..c56f8e69f6872ec9079a8e4f841939a21d64bd6d 100644 (file)
@@ -3602,7 +3602,7 @@ static void multiblock_speed(const EVP_CIPHER *evp_cipher, int lengths_single,
         goto err;
     }
     key = app_malloc(keylen, "evp_cipher key");
-    if (!EVP_CIPHER_CTX_rand_key(ctx, key))
+    if (EVP_CIPHER_CTX_rand_key(ctx, key) <= 0)
         app_bail_out("failed to generate random cipher key\n");
     if (!EVP_EncryptInit_ex(ctx, NULL, NULL, key, NULL))
         app_bail_out("failed to set cipher key\n");
index 65f5f694bfdf6749fce8231665ab7ebaa4f4207f..2448c35a149f60892d238e51a7b97857ed8b8628 100644 (file)
@@ -576,7 +576,7 @@ static int test_cipher_tdes_randkey(void)
           && TEST_int_ne(EVP_CIPHER_get_flags(tdes_cipher) & EVP_CIPH_RAND_KEY, 0)
           && TEST_ptr(ctx = EVP_CIPHER_CTX_new())
           && TEST_true(EVP_CipherInit_ex(ctx, tdes_cipher, NULL, NULL, NULL, 1))
-          && TEST_true(EVP_CIPHER_CTX_rand_key(ctx, key));
+          && TEST_int_gt(EVP_CIPHER_CTX_rand_key(ctx, key), 0);
 
     EVP_CIPHER_CTX_free(ctx);
     EVP_CIPHER_free(tdes_cipher);