This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat-native.git


The following commit(s) were added to refs/heads/master by this push:
     new 69e884a  Fix BZ 65181 Improve support for using OpenSSL Engines
69e884a is described below

commit 69e884a96a308a2bfdd91c7de3a9b301838031c8
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu Mar 25 20:31:51 2021 +0000

    Fix BZ 65181 Improve support for using OpenSSL Engines
    
    Improve support for using OpenSSL Engines that use proprietary key
    formats. Patch provided by Edin Hodizc.
    
    https://bz.apache.org/bugzilla/show_bug.cgi?id=65181
---
 native/include/ssl_private.h      | 1 +
 native/src/sslcontext.c           | 8 +++++++-
 xdocs/miscellaneous/changelog.xml | 6 ++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/native/include/ssl_private.h b/native/include/ssl_private.h
index b50bf24..f6b2840 100644
--- a/native/include/ssl_private.h
+++ b/native/include/ssl_private.h
@@ -51,6 +51,7 @@
  */
 #ifndef OPENSSL_NO_ENGINE
 #include <openssl/engine.h>
+extern ENGINE *tcn_ssl_engine;
 #endif
 
 #ifndef RAND_MAX
diff --git a/native/src/sslcontext.c b/native/src/sslcontext.c
index f10b55e..5d08a78 100644
--- a/native/src/sslcontext.c
+++ b/native/src/sslcontext.c
@@ -1034,7 +1034,13 @@ TCN_IMPLEMENT_CALL(jboolean, SSLContext, 
setCertificate)(TCN_STDARGS, jlong ctx,
         }
     }
     else {
-        if ((c->keys[idx] = load_pem_key(c, key_file)) == NULL) {
+        if ((c->keys[idx] = load_pem_key(c, key_file)) == NULL
+#ifndef OPENSSL_NO_ENGINE
+                && tcn_ssl_engine != NULL &&
+                (c->keys[idx] = ENGINE_load_private_key(tcn_ssl_engine, 
key_file,
+                                                        NULL, NULL)) == NULL
+#endif
+                ) {
             ERR_error_string(SSL_ERR_get(), err);
             tcn_Throw(e, "Unable to load certificate key %s (%s)",
                       key_file, err);
diff --git a/xdocs/miscellaneous/changelog.xml 
b/xdocs/miscellaneous/changelog.xml
index 5a4379f..f9874cc 100644
--- a/xdocs/miscellaneous/changelog.xml
+++ b/xdocs/miscellaneous/changelog.xml
@@ -35,6 +35,12 @@
   </p>
 </section>
 <section name="Changes in 1.2.27">
+  <changelog>
+    <add>
+      <bug>65181</bug>: Improve support for using OpenSSL Engines that use
+      proprietary key formats. Patch provided by Edin Hodizc. (markt)
+    </add>
+  </changelog>
 </section>
 <section name="Changes in 1.2.26">
   <changelog>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to