Mercurial > hg > nginx
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 |