diff options
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r-- | src/lib/libssl/ssl_lib.c | 70 |
1 files changed, 35 insertions, 35 deletions
diff --git a/src/lib/libssl/ssl_lib.c b/src/lib/libssl/ssl_lib.c index 1e529e85de..6e3e042fe6 100644 --- a/src/lib/libssl/ssl_lib.c +++ b/src/lib/libssl/ssl_lib.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_lib.c,v 1.131 2017/01/23 01:22:08 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_lib.c,v 1.132 2017/01/23 04:15:28 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -307,14 +307,14 @@ SSL_new(SSL_CTX *ctx) | |||
307 | s->cert=NULL; /* Cannot really happen (see SSL_CTX_new) */ | 307 | s->cert=NULL; /* Cannot really happen (see SSL_CTX_new) */ |
308 | 308 | ||
309 | s->read_ahead = ctx->read_ahead; | 309 | s->read_ahead = ctx->read_ahead; |
310 | s->msg_callback = ctx->msg_callback; | 310 | s->msg_callback = ctx->internal->msg_callback; |
311 | s->msg_callback_arg = ctx->msg_callback_arg; | 311 | s->msg_callback_arg = ctx->internal->msg_callback_arg; |
312 | s->verify_mode = ctx->verify_mode; | 312 | s->verify_mode = ctx->verify_mode; |
313 | s->sid_ctx_length = ctx->sid_ctx_length; | 313 | s->sid_ctx_length = ctx->sid_ctx_length; |
314 | OPENSSL_assert(s->sid_ctx_length <= sizeof s->sid_ctx); | 314 | OPENSSL_assert(s->sid_ctx_length <= sizeof s->sid_ctx); |
315 | memcpy(&s->sid_ctx, &ctx->sid_ctx, sizeof(s->sid_ctx)); | 315 | memcpy(&s->sid_ctx, &ctx->sid_ctx, sizeof(s->sid_ctx)); |
316 | s->verify_callback = ctx->default_verify_callback; | 316 | s->verify_callback = ctx->internal->default_verify_callback; |
317 | s->generate_session_id = ctx->generate_session_id; | 317 | s->generate_session_id = ctx->internal->generate_session_id; |
318 | 318 | ||
319 | s->param = X509_VERIFY_PARAM_new(); | 319 | s->param = X509_VERIFY_PARAM_new(); |
320 | if (!s->param) | 320 | if (!s->param) |
@@ -406,7 +406,7 @@ int | |||
406 | SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb) | 406 | SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb) |
407 | { | 407 | { |
408 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); | 408 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_CTX); |
409 | ctx->generate_session_id = cb; | 409 | ctx->internal->generate_session_id = cb; |
410 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); | 410 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_CTX); |
411 | return (1); | 411 | return (1); |
412 | } | 412 | } |
@@ -758,7 +758,7 @@ SSL_CTX_get_verify_depth(const SSL_CTX *ctx) | |||
758 | 758 | ||
759 | int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *) | 759 | int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *) |
760 | { | 760 | { |
761 | return (ctx->default_verify_callback); | 761 | return (ctx->internal->default_verify_callback); |
762 | } | 762 | } |
763 | 763 | ||
764 | void | 764 | void |
@@ -1131,7 +1131,7 @@ SSL_CTX_ctrl(SSL_CTX *ctx, int cmd, long larg, void *parg) | |||
1131 | return (l); | 1131 | return (l); |
1132 | 1132 | ||
1133 | case SSL_CTRL_SET_MSG_CALLBACK_ARG: | 1133 | case SSL_CTRL_SET_MSG_CALLBACK_ARG: |
1134 | ctx->msg_callback_arg = parg; | 1134 | ctx->internal->msg_callback_arg = parg; |
1135 | return (1); | 1135 | return (1); |
1136 | 1136 | ||
1137 | case SSL_CTRL_GET_MAX_CERT_LIST: | 1137 | case SSL_CTRL_GET_MAX_CERT_LIST: |
@@ -1201,7 +1201,7 @@ SSL_CTX_callback_ctrl(SSL_CTX *ctx, int cmd, void (*fp)(void)) | |||
1201 | { | 1201 | { |
1202 | switch (cmd) { | 1202 | switch (cmd) { |
1203 | case SSL_CTRL_SET_MSG_CALLBACK: | 1203 | case SSL_CTRL_SET_MSG_CALLBACK: |
1204 | ctx->msg_callback = (void (*)(int write_p, int version, | 1204 | ctx->internal->msg_callback = (void (*)(int write_p, int version, |
1205 | int content_type, const void *buf, size_t len, SSL *ssl, | 1205 | int content_type, const void *buf, size_t len, SSL *ssl, |
1206 | void *arg))(fp); | 1206 | void *arg))(fp); |
1207 | return (1); | 1207 | return (1); |
@@ -1831,36 +1831,36 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
1831 | /* We take the system default */ | 1831 | /* We take the system default */ |
1832 | ret->session_timeout = meth->get_timeout(); | 1832 | ret->session_timeout = meth->get_timeout(); |
1833 | 1833 | ||
1834 | ret->new_session_cb = 0; | 1834 | ret->internal->new_session_cb = 0; |
1835 | ret->remove_session_cb = 0; | 1835 | ret->internal->remove_session_cb = 0; |
1836 | ret->get_session_cb = 0; | 1836 | ret->internal->get_session_cb = 0; |
1837 | ret->generate_session_id = 0; | 1837 | ret->internal->generate_session_id = 0; |
1838 | 1838 | ||
1839 | memset((char *)&ret->internal->stats, 0, sizeof(ret->internal->stats)); | 1839 | memset((char *)&ret->internal->stats, 0, sizeof(ret->internal->stats)); |
1840 | 1840 | ||
1841 | ret->references = 1; | 1841 | ret->references = 1; |
1842 | ret->quiet_shutdown = 0; | 1842 | ret->quiet_shutdown = 0; |
1843 | 1843 | ||
1844 | ret->info_callback = NULL; | 1844 | ret->internal->info_callback = NULL; |
1845 | 1845 | ||
1846 | ret->app_verify_callback = 0; | 1846 | ret->internal->app_verify_callback = 0; |
1847 | ret->app_verify_arg = NULL; | 1847 | ret->internal->app_verify_arg = NULL; |
1848 | 1848 | ||
1849 | ret->max_cert_list = SSL_MAX_CERT_LIST_DEFAULT; | 1849 | ret->max_cert_list = SSL_MAX_CERT_LIST_DEFAULT; |
1850 | ret->read_ahead = 0; | 1850 | ret->read_ahead = 0; |
1851 | ret->msg_callback = 0; | 1851 | ret->internal->msg_callback = 0; |
1852 | ret->msg_callback_arg = NULL; | 1852 | ret->internal->msg_callback_arg = NULL; |
1853 | ret->verify_mode = SSL_VERIFY_NONE; | 1853 | ret->verify_mode = SSL_VERIFY_NONE; |
1854 | ret->sid_ctx_length = 0; | 1854 | ret->sid_ctx_length = 0; |
1855 | ret->default_verify_callback = NULL; | 1855 | ret->internal->default_verify_callback = NULL; |
1856 | if ((ret->cert = ssl_cert_new()) == NULL) | 1856 | if ((ret->cert = ssl_cert_new()) == NULL) |
1857 | goto err; | 1857 | goto err; |
1858 | 1858 | ||
1859 | ret->default_passwd_callback = 0; | 1859 | ret->internal->default_passwd_callback = 0; |
1860 | ret->default_passwd_callback_userdata = NULL; | 1860 | ret->internal->default_passwd_callback_userdata = NULL; |
1861 | ret->client_cert_cb = 0; | 1861 | ret->internal->client_cert_cb = 0; |
1862 | ret->app_gen_cookie_cb = 0; | 1862 | ret->internal->app_gen_cookie_cb = 0; |
1863 | ret->app_verify_cookie_cb = 0; | 1863 | ret->internal->app_verify_cookie_cb = 0; |
1864 | 1864 | ||
1865 | ret->sessions = lh_SSL_SESSION_new(); | 1865 | ret->sessions = lh_SSL_SESSION_new(); |
1866 | if (ret->sessions == NULL) | 1866 | if (ret->sessions == NULL) |
@@ -1901,16 +1901,16 @@ SSL_CTX_new(const SSL_METHOD *meth) | |||
1901 | 1901 | ||
1902 | ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH; | 1902 | ret->max_send_fragment = SSL3_RT_MAX_PLAIN_LENGTH; |
1903 | 1903 | ||
1904 | ret->tlsext_servername_callback = 0; | 1904 | ret->internal->tlsext_servername_callback = 0; |
1905 | ret->tlsext_servername_arg = NULL; | 1905 | ret->internal->tlsext_servername_arg = NULL; |
1906 | 1906 | ||
1907 | /* Setup RFC4507 ticket keys */ | 1907 | /* Setup RFC4507 ticket keys */ |
1908 | arc4random_buf(ret->tlsext_tick_key_name, 16); | 1908 | arc4random_buf(ret->tlsext_tick_key_name, 16); |
1909 | arc4random_buf(ret->tlsext_tick_hmac_key, 16); | 1909 | arc4random_buf(ret->tlsext_tick_hmac_key, 16); |
1910 | arc4random_buf(ret->tlsext_tick_aes_key, 16); | 1910 | arc4random_buf(ret->tlsext_tick_aes_key, 16); |
1911 | 1911 | ||
1912 | ret->tlsext_status_cb = 0; | 1912 | ret->internal->tlsext_status_cb = 0; |
1913 | ret->tlsext_status_arg = NULL; | 1913 | ret->internal->tlsext_status_arg = NULL; |
1914 | 1914 | ||
1915 | ret->internal->next_protos_advertised_cb = 0; | 1915 | ret->internal->next_protos_advertised_cb = 0; |
1916 | ret->internal->next_proto_select_cb = 0; | 1916 | ret->internal->next_proto_select_cb = 0; |
@@ -2012,28 +2012,28 @@ SSL_CTX_free(SSL_CTX *a) | |||
2012 | void | 2012 | void |
2013 | SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb) | 2013 | SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb) |
2014 | { | 2014 | { |
2015 | ctx->default_passwd_callback = cb; | 2015 | ctx->internal->default_passwd_callback = cb; |
2016 | } | 2016 | } |
2017 | 2017 | ||
2018 | void | 2018 | void |
2019 | SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u) | 2019 | SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u) |
2020 | { | 2020 | { |
2021 | ctx->default_passwd_callback_userdata = u; | 2021 | ctx->internal->default_passwd_callback_userdata = u; |
2022 | } | 2022 | } |
2023 | 2023 | ||
2024 | void | 2024 | void |
2025 | SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *, | 2025 | SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *, |
2026 | void *), void *arg) | 2026 | void *), void *arg) |
2027 | { | 2027 | { |
2028 | ctx->app_verify_callback = cb; | 2028 | ctx->internal->app_verify_callback = cb; |
2029 | ctx->app_verify_arg = arg; | 2029 | ctx->internal->app_verify_arg = arg; |
2030 | } | 2030 | } |
2031 | 2031 | ||
2032 | void | 2032 | void |
2033 | SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb)(int, X509_STORE_CTX *)) | 2033 | SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb)(int, X509_STORE_CTX *)) |
2034 | { | 2034 | { |
2035 | ctx->verify_mode = mode; | 2035 | ctx->verify_mode = mode; |
2036 | ctx->default_verify_callback = cb; | 2036 | ctx->internal->default_verify_callback = cb; |
2037 | } | 2037 | } |
2038 | 2038 | ||
2039 | void | 2039 | void |
@@ -2275,9 +2275,9 @@ ssl_update_cache(SSL *s, int mode) | |||
2275 | i = s->session_ctx->session_cache_mode; | 2275 | i = s->session_ctx->session_cache_mode; |
2276 | if ((i & mode) && (!s->hit) && ((i & SSL_SESS_CACHE_NO_INTERNAL_STORE) | 2276 | if ((i & mode) && (!s->hit) && ((i & SSL_SESS_CACHE_NO_INTERNAL_STORE) |
2277 | || SSL_CTX_add_session(s->session_ctx, s->session)) | 2277 | || SSL_CTX_add_session(s->session_ctx, s->session)) |
2278 | && (s->session_ctx->new_session_cb != NULL)) { | 2278 | && (s->session_ctx->internal->new_session_cb != NULL)) { |
2279 | CRYPTO_add(&s->session->references, 1, CRYPTO_LOCK_SSL_SESSION); | 2279 | CRYPTO_add(&s->session->references, 1, CRYPTO_LOCK_SSL_SESSION); |
2280 | if (!s->session_ctx->new_session_cb(s, s->session)) | 2280 | if (!s->session_ctx->internal->new_session_cb(s, s->session)) |
2281 | SSL_SESSION_free(s->session); | 2281 | SSL_SESSION_free(s->session); |
2282 | } | 2282 | } |
2283 | 2283 | ||