summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_lib.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_lib.c')
-rw-r--r--src/lib/libssl/ssl_lib.c70
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
406SSL_CTX_set_generate_session_id(SSL_CTX *ctx, GEN_SESSION_CB cb) 406SSL_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
759int (*SSL_CTX_get_verify_callback(const SSL_CTX *ctx))(int, X509_STORE_CTX *) 759int (*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
764void 764void
@@ -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)
2012void 2012void
2013SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb) 2013SSL_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
2018void 2018void
2019SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u) 2019SSL_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
2024void 2024void
2025SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(X509_STORE_CTX *, 2025SSL_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
2032void 2032void
2033SSL_CTX_set_verify(SSL_CTX *ctx, int mode, int (*cb)(int, X509_STORE_CTX *)) 2033SSL_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
2039void 2039void
@@ -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