summaryrefslogtreecommitdiffstats
path: root/ssl/tls_depr.c
diff options
context:
space:
mode:
authorTomas Mraz <tomas@openssl.org>2022-06-20 17:11:28 +0200
committerHugo Landau <hlandau@openssl.org>2022-07-28 10:04:28 +0100
commit38b051a1fedc79ebf24a96de2e9a326ad3665baf (patch)
treee32fa2a0a5cf8572b48b3cb8a1aac2a20d0b439f /ssl/tls_depr.c
parentce602bb0a20589e5a84c48a55ce13219ab881e84 (diff)
SSL object refactoring using SSL_CONNECTION object
Make the SSL object polymorphic based on whether this is a traditional SSL connection, QUIC connection, or later to be implemented a QUIC stream. It requires adding if after every SSL_CONNECTION_FROM_SSL() call which itself has to be added to almost every public SSL_ API call. Reviewed-by: Richard Levitte <levitte@openssl.org> Reviewed-by: Hugo Landau <hlandau@openssl.org> Reviewed-by: Paul Dale <pauli@openssl.org> (Merged from https://github.com/openssl/openssl/pull/18612)
Diffstat (limited to 'ssl/tls_depr.c')
-rw-r--r--ssl/tls_depr.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/ssl/tls_depr.c b/ssl/tls_depr.c
index 1761ba1d8e..85ed9f25f9 100644
--- a/ssl/tls_depr.c
+++ b/ssl/tls_depr.c
@@ -64,10 +64,14 @@ const EVP_MD *tls_get_digest_from_engine(int nid)
}
#ifndef OPENSSL_NO_ENGINE
-int tls_engine_load_ssl_client_cert(SSL *s, X509 **px509, EVP_PKEY **ppkey)
+int tls_engine_load_ssl_client_cert(SSL_CONNECTION *s, X509 **px509,
+ EVP_PKEY **ppkey)
{
- return ENGINE_load_ssl_client_cert(s->ctx->client_cert_engine, s,
- SSL_get_client_CA_list(s),
+ SSL *ssl = SSL_CONNECTION_GET_SSL(s);
+
+ return ENGINE_load_ssl_client_cert(SSL_CONNECTION_GET_CTX(s)->client_cert_engine,
+ ssl,
+ SSL_get_client_CA_list(ssl),
px509, ppkey, NULL, NULL, NULL);
}
#endif