Fix CID-1464802
authorShane Lontis <shane.lontis@oracle.com>
Tue, 23 Jun 2020 02:30:40 +0000 (12:30 +1000)
committerShane Lontis <shane.lontis@oracle.com>
Tue, 30 Jun 2020 01:52:15 +0000 (11:52 +1000)
Improper use of negative value (It just needs to pass zero instead of -1).

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Matthias St. Pierre <Matthias.St.Pierre@ncp-e.com>
(Merged from https://github.com/openssl/openssl/pull/12237)

crypto/dsa/dsa_gen.c
crypto/ffc/ffc_params_generate.c

index 9d5e91de291defde8a4317f3d671a20119597e75..94b3da87544aaa75951d117f04028b8008240ed0 100644 (file)
@@ -63,7 +63,7 @@ int DSA_generate_parameters_ex(DSA *dsa, int bits,
             return 0;
     } else {
         if (!dsa_generate_ffc_parameters(dsa, DSA_PARAMGEN_TYPE_FIPS_186_4,
-                                         bits, -1, cb))
+                                         bits, 0, cb))
             return 0;
     }
 
index b3ab476f3f7d15ae038cf0a6b35df8cf12edd644..325eb6768f429ac9a9a11dc326f3a5d121363db7 100644 (file)
@@ -504,7 +504,7 @@ int ffc_params_FIPS186_4_gen_verify(OPENSSL_CTX *libctx, FFC_PARAMS *params,
     if (params->mdname != NULL) {
         md = EVP_MD_fetch(libctx, params->mdname, params->mdprops);
     } else {
-        if (N <= 0)
+        if (N == 0)
             N = (L >= 2048 ? SHA256_DIGEST_LENGTH : SHA_DIGEST_LENGTH) * 8;
         md = EVP_MD_fetch(libctx, default_mdname(N), NULL);
     }
@@ -514,7 +514,7 @@ int ffc_params_FIPS186_4_gen_verify(OPENSSL_CTX *libctx, FFC_PARAMS *params,
     if (mdsize <= 0)
         goto err;
 
-    if (N <= 0)
+    if (N == 0)
         N = mdsize * 8;
     qsize = N >> 3;
 
@@ -790,13 +790,13 @@ int ffc_params_FIPS186_2_gen_verify(OPENSSL_CTX *libctx, FFC_PARAMS *params,
     if (params->mdname != NULL) {
         md = EVP_MD_fetch(libctx, params->mdname, params->mdprops);
     } else {
-        if (N <= 0)
+        if (N == 0)
             N = (L >= 2048 ? SHA256_DIGEST_LENGTH : SHA_DIGEST_LENGTH) * 8;
         md = EVP_MD_fetch(libctx, default_mdname(N), NULL);
     }
     if (md == NULL)
         goto err;
-    if (N <= 0)
+    if (N == 0)
         N = EVP_MD_size(md) * 8;
     qsize = N >> 3;