diff --git a/crypto/ffc/ffc_params_generate.c b/crypto/ffc/ffc_params_generate.c index 8294fbec36..14834e5f7e 100644 --- a/crypto/ffc/ffc_params_generate.c +++ b/crypto/ffc/ffc_params_generate.c @@ -814,6 +814,7 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, BIGNUM *r0, *test, *tmp, *g = NULL, *q = NULL, *p = NULL; BN_MONT_CTX *mont = NULL; EVP_MD *md = NULL; + int md_size; size_t qsize; int n = 0, m = 0; int counter = 0, pcounter = 0, use_random_seed; @@ -842,8 +843,11 @@ int ossl_ffc_params_FIPS186_2_gen_verify(OSSL_LIB_CTX *libctx, } if (md == NULL) goto err; + md_size = EVP_MD_get_size(md); + if (md_size <= 0) + goto err; if (N == 0) - N = EVP_MD_get_size(md) * 8; + N = md_size * 8; qsize = N >> 3; /*