forked from Lainports/opnsense-ports
110 lines
3.8 KiB
C
110 lines
3.8 KiB
C
--- src/ssl.c.orig 2017-02-09 11:46:11 UTC
|
|
+++ src/ssl.c
|
|
@@ -38,7 +38,7 @@ tcn_pass_cb_t tcn_password_callback;
|
|
static jclass byteArrayClass;
|
|
static jclass stringClass;
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
/* Global reference to the pool used by the dynamic mutexes */
|
|
static apr_pool_t *dynlockpool = NULL;
|
|
|
|
@@ -201,7 +201,7 @@ static const jint supported_ssl_opts = 0
|
|
#endif
|
|
| 0;
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
/* OpenSSL Pre-1.1.0 compatibility */
|
|
/* Taken from OpenSSL 1.1.0 snapshot 20160410 */
|
|
int DH_set0_pqg(DH *dh, BIGNUM *p, BIGNUM *q, BIGNUM *g)
|
|
@@ -303,7 +303,7 @@ DH *SSL_get_dh_params(unsigned keylen)
|
|
return NULL; /* impossible to reach. */
|
|
}
|
|
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
|
static void init_bio_methods(void);
|
|
static void free_bio_methods(void);
|
|
#endif
|
|
@@ -338,7 +338,7 @@ static apr_status_t ssl_init_cleanup(voi
|
|
tcn_password_callback.cb.obj);
|
|
}
|
|
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
|
free_bio_methods();
|
|
#endif
|
|
free_dh_params();
|
|
@@ -357,7 +357,7 @@ static apr_status_t ssl_init_cleanup(voi
|
|
ENGINE_cleanup();
|
|
#endif
|
|
CRYPTO_cleanup_all_ex_data();
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
ERR_remove_thread_state(NULL);
|
|
#endif
|
|
|
|
@@ -393,7 +393,7 @@ static ENGINE *ssl_try_load_engine(const
|
|
* To ensure thread-safetyness in OpenSSL
|
|
*/
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
static apr_thread_mutex_t **ssl_lock_cs;
|
|
static int ssl_lock_num_locks;
|
|
|
|
@@ -439,7 +439,7 @@ static unsigned long ssl_thread_id(void)
|
|
#endif
|
|
}
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
#if ! (defined(WIN32) || defined(WIN64))
|
|
void SSL_thread_exit(void) {
|
|
ERR_remove_thread_state(NULL);
|
|
@@ -757,7 +757,7 @@ TCN_IMPLEMENT_CALL(jint, SSL, initialize
|
|
#endif
|
|
OPENSSL_load_builtin_modules();
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
#if ! (defined(WIN32) || defined(WIN64))
|
|
err = apr_threadkey_private_create(&thread_exit_key, _ssl_thread_exit,
|
|
tcn_global_pool);
|
|
@@ -811,7 +811,7 @@ TCN_IMPLEMENT_CALL(jint, SSL, initialize
|
|
SSL_init_app_data2_3_idx();
|
|
|
|
init_dh_params();
|
|
-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER)
|
|
init_bio_methods();
|
|
#endif
|
|
|
|
@@ -973,7 +973,7 @@ static int jbs_new(BIO *bi)
|
|
j->refcount = 1;
|
|
BIO_set_shutdown(bi, 1);
|
|
BIO_set_init(bi, 0);
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
/* No setter method for OpenSSL 1.1.0 available,
|
|
* but I can't find any functional use of the
|
|
* "num" field there either.
|
|
@@ -1109,7 +1109,7 @@ static long jbs_ctrl(BIO *b, int cmd, lo
|
|
return ret;
|
|
}
|
|
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
static BIO_METHOD jbs_methods = {
|
|
BIO_TYPE_FILE,
|
|
"Java Callback",
|
|
@@ -1145,7 +1145,7 @@ static void free_bio_methods(void)
|
|
|
|
static BIO_METHOD *BIO_jbs()
|
|
{
|
|
-#if OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
+#if OPENSSL_VERSION_NUMBER < 0x10100000L || defined(LIBRESSL_VERSION_NUMBER)
|
|
return(&jbs_methods);
|
|
#else
|
|
return jbs_methods;
|