diff options
| author | jsing <> | 2017-01-23 04:15:28 +0000 |
|---|---|---|
| committer | jsing <> | 2017-01-23 04:15:28 +0000 |
| commit | 779cc82ab96e48a0162ed5caa96bbc04dd3a5c72 (patch) | |
| tree | d2bcfe381c02ccf528bdd3f18dcabbc4bec0aa3c /src/lib/libssl/ssl_lib.c | |
| parent | 8c3e82ca039c1de2d07ceb9033058fc6bb5791a2 (diff) | |
| download | openbsd-779cc82ab96e48a0162ed5caa96bbc04dd3a5c72.tar.gz openbsd-779cc82ab96e48a0162ed5caa96bbc04dd3a5c72.tar.bz2 openbsd-779cc82ab96e48a0162ed5caa96bbc04dd3a5c72.zip | |
Move callback function pointers and argument pointers from SSL_CTX to
internal.
ok beck@
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 | ||
