summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-11-09 13:36:21 +0100
committerTomas Mraz <tomas@openssl.org>2022-11-11 12:02:02 +0100
commitb697ae10287f1bf6ee3cb2af256096f11f520d21 (patch)
tree6b1ecc025bdd624f8d5a0b2265e3b97bd15518d9
parent0f68f59dd4517fd462aad6432401167e1086d833 (diff)
Add test for generating safeprime DH parameters
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com> Reviewed-by: Matt Caswell <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/19635) (cherry picked from commit 10119e7475bb198e13b1722b186303b8a7528dfe)
-rw-r--r--test/evp_extra_test2.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/evp_extra_test2.c b/test/evp_extra_test2.c
index cacd04ce3c..c549334467 100644
--- a/test/evp_extra_test2.c
+++ b/test/evp_extra_test2.c
@@ -356,6 +356,30 @@ static int test_dh_tofrom_data_select(void)
EVP_PKEY_CTX_free(gctx);
return ret;
}
+
+static int test_dh_paramgen(void)
+{
+ int ret;
+ OSSL_PARAM params[3];
+ EVP_PKEY *pkey = NULL;
+ EVP_PKEY_CTX *gctx = NULL;
+ unsigned int pbits = 512; /* minimum allowed for speed */
+
+ params[0] = OSSL_PARAM_construct_uint(OSSL_PKEY_PARAM_FFC_PBITS, &pbits);
+ params[1] = OSSL_PARAM_construct_utf8_string(OSSL_PKEY_PARAM_FFC_TYPE,
+ "generator", 0);
+ params[2] = OSSL_PARAM_construct_end();
+
+ ret = TEST_ptr(gctx = EVP_PKEY_CTX_new_from_name(mainctx, "DH", NULL))
+ && TEST_int_gt(EVP_PKEY_paramgen_init(gctx), 0)
+ && TEST_true(EVP_PKEY_CTX_set_params(gctx, params))
+ && TEST_true(EVP_PKEY_paramgen(gctx, &pkey))
+ && TEST_ptr(pkey);
+
+ EVP_PKEY_CTX_free(gctx);
+ EVP_PKEY_free(pkey);
+ return ret;
+}
#endif
#ifndef OPENSSL_NO_EC
@@ -1111,6 +1135,7 @@ int setup_tests(void)
#endif
#ifndef OPENSSL_NO_DH
ADD_TEST(test_dh_tofrom_data_select);
+ ADD_TEST(test_dh_paramgen);
#endif
ADD_TEST(test_rsa_tofrom_data_select);