summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorMatt Caswell <matt@openssl.org>2019-12-09 12:03:02 +0000
committerMatt Caswell <matt@openssl.org>2019-12-16 14:35:04 +0000
commit517f24130e83b9b3c2262758f34a7c09a7f63089 (patch)
treef65939038bb0033af2bb63503a87c100c28ebd19 /test
parente6d06e11e9cea84e41b0b68f63dacb4d4db356cc (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) (cherry picked from commit e295de1d8433ed07092845cb6c56aa424ff35c6d)
Diffstat (limited to 'test')
-rw-r--r--test/evp_extra_test.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/evp_extra_test.c b/test/evp_extra_test.c
index b9caa30d2e..2ca78a921f 100644
--- a/test/evp_extra_test.c
+++ b/test/evp_extra_test.c
@@ -18,6 +18,7 @@
#include <openssl/x509.h>
#include <openssl/pem.h>
#include <openssl/kdf.h>
+#include <openssl/dh.h>
#include "testutil.h"
#include "internal/nelem.h"
#include "crypto/evp.h"
@@ -1135,6 +1136,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_TEST(test_EVP_DigestSignInit);
@@ -1167,5 +1203,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;
}