ossl_ffc_params_copy: Copy the keylength too

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Paul Dale <pauli@openssl.org>
Reviewed-by: Hugo Landau <hlandau@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18480)
This commit is contained in:
Tomas Mraz 2022-07-14 12:32:03 +02:00 committed by Hugo Landau
parent 2266d1cad0
commit 5f311b10ab
2 changed files with 35 additions and 0 deletions

View File

@ -196,6 +196,7 @@ int ossl_ffc_params_copy(FFC_PARAMS *dst, const FFC_PARAMS *src)
dst->h = src->h;
dst->gindex = src->gindex;
dst->flags = src->flags;
dst->keylength = src->keylength;
return 1;
}

View File

@ -618,6 +618,8 @@ static int ffc_private_gen_test(int index)
ossl_ifc_ffc_compute_security_bits(BN_num_bits(params->p)),
priv)))
goto err;
if (!TEST_int_le(BN_num_bits(priv), 225))
goto err;
if (!TEST_true(ossl_ffc_validate_private_key(params->q, priv, &res)))
goto err;
@ -628,6 +630,37 @@ err:
BN_CTX_free(ctx);
return ret;
}
static int ffc_params_copy_test(void)
{
int ret = 0;
DH *dh = NULL;
FFC_PARAMS *params, copy;
ossl_ffc_params_init(&copy);
if (!TEST_ptr(dh = DH_new_by_nid(NID_ffdhe3072)))
goto err;
params = ossl_dh_get0_params(dh);
if (!TEST_int_eq(params->keylength, 275))
goto err;
if (!TEST_true(ossl_ffc_params_copy(&copy, params)))
goto err;
if (!TEST_int_eq(copy.keylength, 275))
goto err;
if (!TEST_true(ossl_ffc_params_cmp(&copy, params, 0)))
goto err;
ret = 1;
err:
ossl_ffc_params_cleanup(&copy);
DH_free(dh);
return ret;
}
#endif /* OPENSSL_NO_DH */
int setup_tests(void)
@ -643,6 +676,7 @@ int setup_tests(void)
ADD_TEST(ffc_public_validate_test);
ADD_TEST(ffc_private_validate_test);
ADD_ALL_TESTS(ffc_private_gen_test, 10);
ADD_TEST(ffc_params_copy_test);
#endif /* OPENSSL_NO_DH */
return 1;
}