summarylogtreecommitdiffstats
path: root/openssl-1.1.0.patch
diff options
context:
space:
mode:
authorJames An2017-04-21 20:37:21 -0400
committerJames An2017-04-21 20:37:21 -0400
commit4045e5c7426b3862e8920bba2a09d771ed4d0fdf (patch)
tree3859997686f104e3abe5f835a31ac8396075d19f /openssl-1.1.0.patch
parent9717bfbf0ba527bb43e15ce2ca16cc6e318fb567 (diff)
downloadaur-openresty-git.tar.gz
Forked off from openresty package, added VCS changes to the PKGBUILD, added a patch to fix upstream build incompatibility issues with openssl>=1.1.0.
Diffstat (limited to 'openssl-1.1.0.patch')
-rw-r--r--openssl-1.1.0.patch255
1 files changed, 255 insertions, 0 deletions
diff --git a/openssl-1.1.0.patch b/openssl-1.1.0.patch
new file mode 100644
index 000000000000..c9a8235112ee
--- /dev/null
+++ b/openssl-1.1.0.patch
@@ -0,0 +1,255 @@
+diff --git a/patches/nginx-1.11.2-guarded_SSL_R_NO_CIPHERS_PASSED_not_present_in_OpenSSL_1.1.0.patch b/patches/nginx-1.11.2-guarded_SSL_R_NO_CIPHERS_PASSED_not_present_in_OpenSSL_1.1.0.patch
+new file mode 100644
+index 0000000..fd59562
+--- /dev/null
++++ b/patches/nginx-1.11.2-guarded_SSL_R_NO_CIPHERS_PASSED_not_present_in_OpenSSL_1.1.0.patch
+@@ -0,0 +1,23 @@
++# HG changeset patch
++# User Sergey Kandaurov <pluknet@nginx.com>
++# Date 1470653089 -10800
++# Node ID 1891b2892b68223dcc8f6bec7205d0d8c03682d5
++# Parent 7d4e33092e2abe92f0b904e5dadad4728eb12257
++SSL: guarded SSL_R_NO_CIPHERS_PASSED not present in OpenSSL 1.1.0.
++
++It was removed in OpenSSL 1.1.0 Beta 3 (pre-release 6). It was
++not used since OpenSSL 1.0.1n and 1.0.2b.
++
++diff -r 7d4e33092e2a -r 1891b2892b68 src/event/ngx_event_openssl.c
++--- a/src/event/ngx_event_openssl.c Thu Aug 04 23:43:10 2016 +0300
+++++ b/src/event/ngx_event_openssl.c Mon Aug 08 13:44:49 2016 +0300
++@@ -2023,7 +2023,9 @@
++ || n == SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST /* 151 */
++ || n == SSL_R_EXCESSIVE_MESSAGE_SIZE /* 152 */
++ || n == SSL_R_LENGTH_MISMATCH /* 159 */
+++#ifdef SSL_R_NO_CIPHERS_PASSED
++ || n == SSL_R_NO_CIPHERS_PASSED /* 182 */
+++#endif
++ || n == SSL_R_NO_CIPHERS_SPECIFIED /* 183 */
++ || n == SSL_R_NO_COMPRESSION_SPECIFIED /* 187 */
++ || n == SSL_R_NO_SHARED_CIPHER /* 193 */
+diff --git a/patches/ngx_http_encrypted_session-0.06-init_cipher_ctx_indirectly.patch b/patches/ngx_http_encrypted_session-0.06-init_cipher_ctx_indirectly.patch
+new file mode 100644
+index 0000000..3a1b7d6
+--- /dev/null
++++ b/patches/ngx_http_encrypted_session-0.06-init_cipher_ctx_indirectly.patch
+@@ -0,0 +1,119 @@
++diff --git a/src/ngx_http_encrypted_session_cipher.c b/src/ngx_http_encrypted_session_cipher.c
++index 5c8da81..3f2fed8 100644
++--- a/src/ngx_http_encrypted_session_cipher.c
+++++ b/src/ngx_http_encrypted_session_cipher.c
++@@ -26,7 +26,7 @@
++ const u_char *in, size_t in_len, ngx_uint_t expires, u_char **dst,
++ size_t *dst_len)
++ {
++- EVP_CIPHER_CTX ctx;
+++ EVP_CIPHER_CTX *ctx;
++ const EVP_CIPHER *cipher;
++ u_char *p, *data;
++ int ret;
++@@ -39,7 +39,7 @@
++ return NGX_ERROR;
++ }
++
++- EVP_CIPHER_CTX_init(&ctx);
+++ EVP_CIPHER_CTX_init(ctx);
++
++ cipher = EVP_aes_256_cbc();
++
++@@ -83,28 +83,28 @@
++
++ p += MD5_DIGEST_LENGTH;
++
++- ret = EVP_EncryptInit(&ctx, cipher, key, iv);
+++ ret = EVP_EncryptInit(ctx, cipher, key, iv);
++ if (!ret) {
++ goto evp_error;
++ }
++
++ /* encrypt the raw input data */
++
++- ret = EVP_EncryptUpdate(&ctx, p, &len, data, data_size);
+++ ret = EVP_EncryptUpdate(ctx, p, &len, data, data_size);
++ if (!ret) {
++ goto evp_error;
++ }
++
++ p += len;
++
++- ret = EVP_EncryptFinal(&ctx, p, &len);
+++ ret = EVP_EncryptFinal(ctx, p, &len);
++ if (!ret) {
++ return NGX_ERROR;
++ }
++
++ /* XXX we should still explicitly release the ctx
++ * or we'll leak memory here */
++- EVP_CIPHER_CTX_cleanup(&ctx);
+++ EVP_CIPHER_CTX_cleanup(ctx);
++
++ p += len;
++
++@@ -121,7 +121,7 @@
++
++ evp_error:
++
++- EVP_CIPHER_CTX_cleanup(&ctx);
+++ EVP_CIPHER_CTX_cleanup(ctx);
++
++ return NGX_ERROR;
++ }
++@@ -132,7 +132,7 @@
++ const u_char *iv, size_t iv_len, const u_char *key, size_t key_len,
++ const u_char *in, size_t in_len, u_char **dst, size_t *dst_len)
++ {
++- EVP_CIPHER_CTX ctx;
+++ EVP_CIPHER_CTX *ctx;
++ const EVP_CIPHER *cipher;
++ int ret;
++ size_t block_size, buf_size;
++@@ -152,11 +152,11 @@
++
++ digest = in;
++
++- EVP_CIPHER_CTX_init(&ctx);
+++ EVP_CIPHER_CTX_init(ctx);
++
++ cipher = EVP_aes_256_cbc();
++
++- ret = EVP_DecryptInit(&ctx, cipher, key, iv);
+++ ret = EVP_DecryptInit(ctx, cipher, key, iv);
++ if (!ret) {
++ goto evp_error;
++ }
++@@ -173,7 +173,7 @@
++
++ *dst = p;
++
++- ret = EVP_DecryptUpdate(&ctx, p, &len, in + MD5_DIGEST_LENGTH,
+++ ret = EVP_DecryptUpdate(ctx, p, &len, in + MD5_DIGEST_LENGTH,
++ in_len - MD5_DIGEST_LENGTH);
++
++ if (!ret) {
++@@ -183,11 +183,11 @@
++
++ p += len;
++
++- ret = EVP_DecryptFinal(&ctx, p, &len);
+++ ret = EVP_DecryptFinal(ctx, p, &len);
++
++ /* XXX we should still explicitly release the ctx
++ * or we'll leak memory here */
++- EVP_CIPHER_CTX_cleanup(&ctx);
+++ EVP_CIPHER_CTX_cleanup(ctx);
++
++ if (!ret) {
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, log, 0,
++@@ -249,7 +249,7 @@
++
++ evp_error:
++
++- EVP_CIPHER_CTX_cleanup(&ctx);
+++ EVP_CIPHER_CTX_cleanup(ctx);
++
++ return NGX_ERROR;
++ }
+diff --git a/patches/ngx_lua-0.10.8-support_openssl_1.1.0.patch b/patches/ngx_lua-0.10.8-support_openssl_1.1.0.patch
+new file mode 100644
+index 0000000..bcfb25e
+--- /dev/null
++++ b/patches/ngx_lua-0.10.8-support_openssl_1.1.0.patch
+@@ -0,0 +1,56 @@
++diff --git a/src/ngx_http_lua_ssl_ocsp.c b/src/ngx_http_lua_ssl_ocsp.c
++index 3904aa8e..71d40e74 100644
++--- a/src/ngx_http_lua_ssl_ocsp.c
+++++ b/src/ngx_http_lua_ssl_ocsp.c
++@@ -468,7 +468,11 @@ ngx_http_lua_ffi_ssl_set_ocsp_status_resp(ngx_http_request_t *r,
++ return NGX_ERROR;
++ }
++
+++#ifdef SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE
+++ if (SSL_get_tlsext_status_type(ssl_conn) == -1) {
+++#else
++ if (ssl_conn->tlsext_status_type == -1) {
+++#endif
++ dd("no ocsp status req from client");
++ return NGX_DECLINED;
++ }
++@@ -490,7 +494,11 @@ ngx_http_lua_ffi_ssl_set_ocsp_status_resp(ngx_http_request_t *r,
++
++ dd("set ocsp resp: resp_len=%d", (int) resp_len);
++ (void) SSL_set_tlsext_status_ocsp_resp(ssl_conn, p, resp_len);
+++#ifdef SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE
+++ SSL_set_tlsext_status_type(ssl_conn, TLSEXT_STATUSTYPE_ocsp);
+++#else
++ ssl_conn->tlsext_status_expected = 1;
+++#endif
++
++ return NGX_OK;
++
++diff --git a/src/ngx_http_lua_ssl_session_storeby.c b/src/ngx_http_lua_ssl_session_storeby.c
++index b5596bc7..6e132a31 100644
++--- a/src/ngx_http_lua_ssl_session_storeby.c
+++++ b/src/ngx_http_lua_ssl_session_storeby.c
++@@ -172,6 +172,8 @@ int
++ ngx_http_lua_ssl_sess_store_handler(ngx_ssl_conn_t *ssl_conn,
++ ngx_ssl_session_t *sess)
++ {
+++ const u_char *sess_id;
+++ unsigned int sess_id_len;
++ lua_State *L;
++ ngx_int_t rc;
++ ngx_connection_t *c, *fc = NULL;
++@@ -246,11 +248,12 @@ ngx_http_lua_ssl_sess_store_handler(ngx_ssl_conn_t *ssl_conn,
++ }
++ }
++
+++ sess_id = SSL_SESSION_get_id(sess, &sess_id_len);
++ cctx->connection = c;
++ cctx->request = r;
++ cctx->session = sess;
++- cctx->session_id.data = sess->session_id;
++- cctx->session_id.len = sess->session_id_length;
+++ cctx->session_id.data = (u_char *) sess_id;
+++ cctx->session_id.len = sess_id_len;
++ cctx->done = 0;
++
++ dd("setting cctx");
+diff --git a/util/mirror-tarballs b/util/mirror-tarballs
+index 2da01f1..cf09f99 100755
+--- a/util/mirror-tarballs
++++ b/util/mirror-tarballs
+@@ -335,6 +335,8 @@ echo
+
+ echo "$info_txt applying the safe_resolver_ipv6_option patch for nginx"
+ patch -p1 < $root/patches/nginx-$main_ver-safe_resolver_ipv6_option.patch || exit 1
++echo "$info_txt applying the guarded_SSL_R_NO_CIPHERS_PASSED_not_present_in_OpenSSL_1.1.0 patch for nginx"
++patch -p1 < $root/patches/nginx-$main_ver-guarded_SSL_R_NO_CIPHERS_PASSED_not_present_in_OpenSSL_1.1.0.patch || exit 1
+ echo
+
+ cp $root/html/index.html docs/html/ || exit 1
+@@ -412,6 +414,12 @@ $root/util/get-tarball "https://github.com/openresty/lua-nginx-module/tarball/v$
+ tar -xzf lua-nginx-module-$ver.tar.gz || exit 1
+ mv openresty-lua-nginx-module-* ngx_lua-$ver || exit 1
+
++cd ngx_lua-$ver
++echo "applying ngx_lua-$ver-support_openssl_1.1.0.patch"
++patch -p1 < $root/patches/ngx_lua-$ver-support_openssl_1.1.0.patch || exit 1
++echo
++cd ..
++
+ #################################
+
+ ver=0.06
+@@ -461,6 +469,12 @@ $root/util/get-tarball "https://github.com/openresty/encrypted-session-nginx-mod
+ tar -xzf encrypted-session-nginx-module-$ver.tar.gz || exit 1
+ mv openresty-encrypted-session-nginx-module-* encrypted-session-nginx-module-$ver || exit 1
+
++cd encrypted-session-nginx-module-$ver
++echo "applying ngx_http_encrypted_session-$ver-init_cipher_ctx_indirectly.patch"
++patch -p1 < $root/patches/ngx_http_encrypted_session-$ver-init_cipher_ctx_indirectly.patch || exit 1
++echo
++cd ..
++
+ #################################
+
+