diff options
author | Matt Caswell <matt@openssl.org> | 2019-12-09 12:03:02 +0000 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2019-12-16 14:27:26 +0000 |
commit | e295de1d8433ed07092845cb6c56aa424ff35c6d (patch) | |
tree | 1a04bfda9aaa55a7d4b7b15b09540bc67ac2eea4 | |
parent | 32c869ffaba67822602ea9fec611272ff8e8db58 (diff) |
Test that EVP_PKEY_set1_DH() correctly identifies the DH type
Provide a test to check tat when we assign a DH object we know whether
we are dealing with PKCS#3 or X9.42 DH keys.
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/10593)
-rw-r--r-- | test/evp_extra_test.c | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c index ce487049f3..93680796ea 100644 --- a/test/evp_extra_test.c +++ b/test/evp_extra_test.c @@ -22,6 +22,7 @@ #include <openssl/provider.h> #include <openssl/core_names.h> #include <openssl/dsa.h> +#include <openssl/dh.h> #include "testutil.h" #include "internal/nelem.h" #include "crypto/evp.h" @@ -1412,6 +1413,41 @@ static int test_decrypt_null_chunks(void) } #endif /* !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) */ +static int test_EVP_PKEY_set1_DH(void) +{ + DH *x942dh, *pkcs3dh; + EVP_PKEY *pkey1, *pkey2; + int ret = 0; + + x942dh = DH_get_2048_256(); + pkcs3dh = DH_new_by_nid(NID_ffdhe2048); + pkey1 = EVP_PKEY_new(); + pkey2 = EVP_PKEY_new(); + if (!TEST_ptr(x942dh) + || !TEST_ptr(pkcs3dh) + || !TEST_ptr(pkey1) + || !TEST_ptr(pkey2)) + goto err; + + if(!TEST_true(EVP_PKEY_set1_DH(pkey1, x942dh)) + || !TEST_int_eq(EVP_PKEY_id(pkey1), EVP_PKEY_DHX)) + goto err; + + + if(!TEST_true(EVP_PKEY_set1_DH(pkey2, pkcs3dh)) + || !TEST_int_eq(EVP_PKEY_id(pkey2), EVP_PKEY_DH)) + goto err; + + ret = 1; + err: + EVP_PKEY_free(pkey1); + EVP_PKEY_free(pkey2); + DH_free(x942dh); + DH_free(pkcs3dh); + + return ret; +} + int setup_tests(void) { ADD_ALL_TESTS(test_EVP_DigestSignInit, 4); @@ -1447,5 +1483,7 @@ int setup_tests(void) #if !defined(OPENSSL_NO_CHACHA) && !defined(OPENSSL_NO_POLY1305) ADD_TEST(test_decrypt_null_chunks); #endif + ADD_TEST(test_EVP_PKEY_set1_DH); + return 1; } |