comparison src/event/ngx_event_openssl.c @ 6490:ddf761495ce6

SSL: EVP_MD_CTX was made opaque in OpenSSL 1.1.0.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 31 Mar 2016 23:38:36 +0300
parents c256dfdd469d
children a873b4d9cd80 12c65ff24fd3
comparison
equal deleted inserted replaced
6489:c256dfdd469d 6490:ddf761495ce6
2155 ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx) 2155 ngx_ssl_session_id_context(ngx_ssl_t *ssl, ngx_str_t *sess_ctx)
2156 { 2156 {
2157 int n, i; 2157 int n, i;
2158 X509 *cert; 2158 X509 *cert;
2159 X509_NAME *name; 2159 X509_NAME *name;
2160 EVP_MD_CTX md; 2160 EVP_MD_CTX *md;
2161 unsigned int len; 2161 unsigned int len;
2162 STACK_OF(X509_NAME) *list; 2162 STACK_OF(X509_NAME) *list;
2163 u_char buf[EVP_MAX_MD_SIZE]; 2163 u_char buf[EVP_MAX_MD_SIZE];
2164 2164
2165 /* 2165 /*
2166 * Session ID context is set based on the string provided, 2166 * Session ID context is set based on the string provided,
2167 * the server certificate, and the client CA list. 2167 * the server certificate, and the client CA list.
2168 */ 2168 */
2169 2169
2170 EVP_MD_CTX_init(&md); 2170 md = EVP_MD_CTX_create();
2171 2171 if (md == NULL) {
2172 if (EVP_DigestInit_ex(&md, EVP_sha1(), NULL) == 0) { 2172 return NGX_ERROR;
2173 }
2174
2175 if (EVP_DigestInit_ex(md, EVP_sha1(), NULL) == 0) {
2173 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2176 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2174 "EVP_DigestInit_ex() failed"); 2177 "EVP_DigestInit_ex() failed");
2175 goto failed; 2178 goto failed;
2176 } 2179 }
2177 2180
2178 if (EVP_DigestUpdate(&md, sess_ctx->data, sess_ctx->len) == 0) { 2181 if (EVP_DigestUpdate(md, sess_ctx->data, sess_ctx->len) == 0) {
2179 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2182 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2180 "EVP_DigestUpdate() failed"); 2183 "EVP_DigestUpdate() failed");
2181 goto failed; 2184 goto failed;
2182 } 2185 }
2183 2186
2187 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2190 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2188 "X509_digest() failed"); 2191 "X509_digest() failed");
2189 goto failed; 2192 goto failed;
2190 } 2193 }
2191 2194
2192 if (EVP_DigestUpdate(&md, buf, len) == 0) { 2195 if (EVP_DigestUpdate(md, buf, len) == 0) {
2193 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2196 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2194 "EVP_DigestUpdate() failed"); 2197 "EVP_DigestUpdate() failed");
2195 goto failed; 2198 goto failed;
2196 } 2199 }
2197 2200
2207 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2210 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2208 "X509_NAME_digest() failed"); 2211 "X509_NAME_digest() failed");
2209 goto failed; 2212 goto failed;
2210 } 2213 }
2211 2214
2212 if (EVP_DigestUpdate(&md, buf, len) == 0) { 2215 if (EVP_DigestUpdate(md, buf, len) == 0) {
2213 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2216 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2214 "EVP_DigestUpdate() failed"); 2217 "EVP_DigestUpdate() failed");
2215 goto failed; 2218 goto failed;
2216 } 2219 }
2217 } 2220 }
2218 } 2221 }
2219 2222
2220 if (EVP_DigestFinal_ex(&md, buf, &len) == 0) { 2223 if (EVP_DigestFinal_ex(md, buf, &len) == 0) {
2221 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2224 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2222 "EVP_DigestUpdate() failed"); 2225 "EVP_DigestUpdate() failed");
2223 goto failed; 2226 goto failed;
2224 } 2227 }
2225 2228
2226 EVP_MD_CTX_cleanup(&md); 2229 EVP_MD_CTX_destroy(md);
2227 2230
2228 if (SSL_CTX_set_session_id_context(ssl->ctx, buf, len) == 0) { 2231 if (SSL_CTX_set_session_id_context(ssl->ctx, buf, len) == 0) {
2229 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0, 2232 ngx_ssl_error(NGX_LOG_EMERG, ssl->log, 0,
2230 "SSL_CTX_set_session_id_context() failed"); 2233 "SSL_CTX_set_session_id_context() failed");
2231 return NGX_ERROR; 2234 return NGX_ERROR;
2233 2236
2234 return NGX_OK; 2237 return NGX_OK;
2235 2238
2236 failed: 2239 failed:
2237 2240
2238 EVP_MD_CTX_cleanup(&md); 2241 EVP_MD_CTX_destroy(md);
2239 2242
2240 return NGX_ERROR; 2243 return NGX_ERROR;
2241 } 2244 }
2242 2245
2243 2246