summaryrefslogtreecommitdiff
path: root/test/evp_libctx_test.c
diff options
context:
space:
mode:
authorslontis <shane.lontis@oracle.com>2021-09-02 16:50:45 +1000
committerTomas Mraz <tomas@openssl.org>2021-09-03 12:31:59 +0200
commitd7b5f06ede163851d39f5a8b507bd0670deeaa21 (patch)
tree887c6f2748ed401755a999e4535cb6a56c112c53 /test/evp_libctx_test.c
parent21a0d9f3edda78d27d12cd7704de9e32976393ba (diff)
downloadopenssl-new-d7b5f06ede163851d39f5a8b507bd0670deeaa21.tar.gz
Add KEM dupctx test
Reviewed-by: Paul Dale <pauli@openssl.org> Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/16495)
Diffstat (limited to 'test/evp_libctx_test.c')
-rw-r--r--test/evp_libctx_test.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/test/evp_libctx_test.c b/test/evp_libctx_test.c
index bfbbafdbab..e3eac8a068 100644
--- a/test/evp_libctx_test.c
+++ b/test/evp_libctx_test.c
@@ -525,7 +525,7 @@ static int kem_rsa_gen_recover(void)
int ret = 0;
EVP_PKEY *pub = NULL;
EVP_PKEY *priv = NULL;
- EVP_PKEY_CTX *sctx = NULL, *rctx = NULL;
+ EVP_PKEY_CTX *sctx = NULL, *rctx = NULL, *dctx = NULL;
unsigned char secret[256] = { 0, };
unsigned char ct[256] = { 0, };
unsigned char unwrap[256] = { 0, };
@@ -536,11 +536,12 @@ static int kem_rsa_gen_recover(void)
&& TEST_ptr(sctx = EVP_PKEY_CTX_new_from_pkey(libctx, pub, NULL))
&& TEST_int_eq(EVP_PKEY_encapsulate_init(sctx, NULL), 1)
&& TEST_int_eq(EVP_PKEY_CTX_set_kem_op(sctx, "RSASVE"), 1)
- && TEST_int_eq(EVP_PKEY_encapsulate(sctx, NULL, &ctlen, NULL,
+ && TEST_ptr(dctx = EVP_PKEY_CTX_dup(sctx))
+ && TEST_int_eq(EVP_PKEY_encapsulate(dctx, NULL, &ctlen, NULL,
&secretlen), 1)
&& TEST_int_eq(ctlen, secretlen)
&& TEST_int_eq(ctlen, bits / 8)
- && TEST_int_eq(EVP_PKEY_encapsulate(sctx, ct, &ctlen, secret,
+ && TEST_int_eq(EVP_PKEY_encapsulate(dctx, ct, &ctlen, secret,
&secretlen), 1)
&& TEST_ptr(rctx = EVP_PKEY_CTX_new_from_pkey(libctx, priv, NULL))
&& TEST_int_eq(EVP_PKEY_decapsulate_init(rctx, NULL), 1)
@@ -553,6 +554,7 @@ static int kem_rsa_gen_recover(void)
EVP_PKEY_free(pub);
EVP_PKEY_free(priv);
EVP_PKEY_CTX_free(rctx);
+ EVP_PKEY_CTX_free(dctx);
EVP_PKEY_CTX_free(sctx);
return ret;
}