Use the libctx and properties when constructing an EVP_PKEY_CTX
authorMatt Caswell <matt@openssl.org>
Wed, 18 Mar 2020 12:57:48 +0000 (12:57 +0000)
committerMatt Caswell <matt@openssl.org>
Mon, 23 Mar 2020 11:23:26 +0000 (11:23 +0000)
When constructing an RSA ClientKeyExchange make sure we construct our
EVP_PKEY_CTX using the correct libctx and properties

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/11357)

ssl/statem/statem_clnt.c

index 99459a8c6ae2b8c6ae4891f8ed6d55a43c855a0c..dfc6f5a7211bc2e9f4c3a5fe8053cb9c1e188a42 100644 (file)
@@ -2990,7 +2990,8 @@ static int tls_construct_cke_rsa(SSL *s, WPACKET *pkt)
                  ERR_R_INTERNAL_ERROR);
         goto err;
     }
-    pctx = EVP_PKEY_CTX_new(pkey, NULL);
+
+    pctx = EVP_PKEY_CTX_new_from_pkey(s->ctx->libctx, pkey, s->ctx->propq);
     if (pctx == NULL || EVP_PKEY_encrypt_init(pctx) <= 0
         || EVP_PKEY_encrypt(pctx, NULL, &enclen, pms, pmslen) <= 0) {
         SSLfatal(s, SSL_AD_INTERNAL_ERROR, SSL_F_TLS_CONSTRUCT_CKE_RSA,