|
|
|
@ -216,7 +216,8 @@ mod_openssl_session_ticket_key_generate (time_t active_ts, time_t expire_ts)
|
|
|
|
|
* The 4th element of session_ticket_keys[] is used for STEK construction
|
|
|
|
|
*/
|
|
|
|
|
/*(RAND_priv_bytes() not in openssl 1.1.0; introduced in openssl 1.1.1)*/
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10101000L
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10101000L \
|
|
|
|
|
|| defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
#define RAND_priv_bytes(x,sz) RAND_bytes((x),(sz))
|
|
|
|
|
#endif
|
|
|
|
|
if (RAND_bytes(session_ticket_keys[3].tick_key_name,
|
|
|
|
@ -607,7 +608,8 @@ PEM_ASN1_read_bio_secmem(d2i_of_void *d2i, const char *name, BIO *bp, void **x,
|
|
|
|
|
long len = 0;
|
|
|
|
|
char *ret = NULL;
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10101000L
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10101000L \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
if (!PEM_bytes_read_bio_secmem(&data, &len, NULL, name, bp, cb, u))
|
|
|
|
|
#else
|
|
|
|
|
if (!PEM_bytes_read_bio(&data, &len, NULL, name, bp, cb, u))
|
|
|
|
@ -617,7 +619,8 @@ PEM_ASN1_read_bio_secmem(d2i_of_void *d2i, const char *name, BIO *bp, void **x,
|
|
|
|
|
ret = d2i(x, &p, len);
|
|
|
|
|
if (ret == NULL)
|
|
|
|
|
PEMerr(PEM_F_PEM_ASN1_READ_BIO, ERR_R_ASN1_LIB);
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10101000L
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10101000L \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
OPENSSL_secure_clear_free(data, len);
|
|
|
|
|
#else
|
|
|
|
|
OPENSSL_cleanse(data, len);
|
|
|
|
@ -748,7 +751,8 @@ mod_openssl_load_cacrls (X509_STORE *store, const buffer *ssl_ca_crl_file, serve
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10002000
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10002000 \
|
|
|
|
|
|| defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
static int
|
|
|
|
|
mod_openssl_load_verify_locn (SSL_CTX *ssl_ctx, const buffer *b, server *srv)
|
|
|
|
|
{
|
|
|
|
@ -1018,7 +1022,8 @@ mod_openssl_cert_cb (SSL *ssl, void *arg)
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000 \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
if (pc->ssl_pemfile_chain)
|
|
|
|
|
SSL_set1_chain(ssl, pc->ssl_pemfile_chain);
|
|
|
|
|
else if (hctx->conf.ssl_ca_file) {
|
|
|
|
@ -1061,7 +1066,8 @@ mod_openssl_cert_cb (SSL *ssl, void *arg)
|
|
|
|
|
"for TLS server name %s", hctx->r->uri.authority.ptr);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000 \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
SSL_set1_verify_cert_store(ssl, hctx->conf.ssl_ca_file->certs);
|
|
|
|
|
#endif
|
|
|
|
|
/* WTH openssl? SSL_set_client_CA_list() calls set0_CA_list(),
|
|
|
|
@ -1114,7 +1120,8 @@ mod_openssl_SNI (handler_ctx *hctx, const char *servername, size_t len)
|
|
|
|
|
/*config_cond_cache_reset_item(r, COMP_HTTP_HOST);*/
|
|
|
|
|
/*buffer_clear(&r->uri.authority);*/
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000L
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000L \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
return SSL_TLSEXT_ERR_OK;
|
|
|
|
|
#else
|
|
|
|
|
return (mod_openssl_cert_cb(hctx->ssl, NULL) == 1)
|
|
|
|
@ -1740,7 +1747,8 @@ network_init_ssl (server *srv, plugin_config_socket *s, plugin_data *p)
|
|
|
|
|
SSL_CTX_set_tlsext_ticket_key_cb(s->ssl_ctx, ssl_tlsext_ticket_key_cb);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER >= 0x10002000 \
|
|
|
|
|
&& !defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
|
|
|
|
|
SSL_CTX_set_cert_cb(s->ssl_ctx, mod_openssl_cert_cb, NULL);
|
|
|
|
|
UNUSED(p);
|
|
|
|
@ -2228,7 +2236,8 @@ SETDEFAULTS_FUNC(mod_openssl_set_defaults)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10002000 /* p->cafiles for legacy only */
|
|
|
|
|
#if OPENSSL_VERSION_NUMBER < 0x10002000 /* p->cafiles for legacy only */ \
|
|
|
|
|
|| defined(LIBRESSL_VERSION_NUMBER)
|
|
|
|
|
/* load all ssl.ca-files into a single chain */
|
|
|
|
|
/*(certificate load order might matter)*/
|
|
|
|
|
if (ssl_ca_dn_file)
|
|
|
|
|