summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorjsing <>2017-08-09 15:25:27 +0000
committerjsing <>2017-08-09 15:25:27 +0000
commit897828878ba1ebc40c255d2b04fe4df8d6c521e4 (patch)
tree9d967077d10cbf78cdc5b35af350ae1457c01e6d /src/lib
parent8c3a7a98a3334624cdc20829fd1d766fd15386f2 (diff)
downloadopenbsd-897828878ba1ebc40c255d2b04fe4df8d6c521e4.tar.gz
openbsd-897828878ba1ebc40c255d2b04fe4df8d6c521e4.tar.bz2
openbsd-897828878ba1ebc40c255d2b04fe4df8d6c521e4.zip
Start splitting out controls into individual functions, so that they can
eventually be exposed as direct functions/symbols.
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/libssl/s3_lib.c92
1 files changed, 63 insertions, 29 deletions
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c
index 2508c7dd72..274b2daf81 100644
--- a/src/lib/libssl/s3_lib.c
+++ b/src/lib/libssl/s3_lib.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: s3_lib.c,v 1.147 2017/08/09 15:02:53 jsing Exp $ */ 1/* $OpenBSD: s3_lib.c,v 1.148 2017/08/09 15:25:27 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 *
@@ -1773,6 +1773,49 @@ ssl_ctrl_get_server_tmp_key(SSL *s, EVP_PKEY **pkey_tmp)
1773 return (ret); 1773 return (ret);
1774} 1774}
1775 1775
1776static int
1777_SSL_session_reused(SSL *s)
1778{
1779 return s->internal->hit;
1780}
1781
1782static int
1783_SSL_num_renegotiations(SSL *s)
1784{
1785 return S3I(s)->num_renegotiations;
1786}
1787
1788static int
1789_SSL_clear_num_renegotiations(SSL *s)
1790{
1791 int renegs;
1792
1793 renegs = S3I(s)->num_renegotiations;
1794 S3I(s)->num_renegotiations = 0;
1795
1796 return renegs;
1797}
1798
1799static int
1800_SSL_total_renegotiations(SSL *s)
1801{
1802 return S3I(s)->total_renegotiations;
1803}
1804
1805int
1806SSL_set1_groups(SSL *s, const int *groups, size_t groups_len)
1807{
1808 return tls1_set_groups(&s->internal->tlsext_supportedgroups,
1809 &s->internal->tlsext_supportedgroups_length, groups, groups_len);
1810}
1811
1812int
1813SSL_set1_groups_list(SSL *s, const char *groups)
1814{
1815 return tls1_set_groups_list(&s->internal->tlsext_supportedgroups,
1816 &s->internal->tlsext_supportedgroups_length, groups);
1817}
1818
1776long 1819long
1777ssl3_ctrl(SSL *s, int cmd, long larg, void *parg) 1820ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
1778{ 1821{
@@ -1787,26 +1830,21 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
1787 1830
1788 switch (cmd) { 1831 switch (cmd) {
1789 case SSL_CTRL_GET_SESSION_REUSED: 1832 case SSL_CTRL_GET_SESSION_REUSED:
1790 ret = s->internal->hit; 1833 return _SSL_session_reused(s);
1791 break; 1834
1792 case SSL_CTRL_GET_CLIENT_CERT_REQUEST:
1793 break;
1794 case SSL_CTRL_GET_NUM_RENEGOTIATIONS: 1835 case SSL_CTRL_GET_NUM_RENEGOTIATIONS:
1795 ret = S3I(s)->num_renegotiations; 1836 return _SSL_num_renegotiations(s);
1796 break; 1837
1797 case SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS: 1838 case SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS:
1798 ret = S3I(s)->num_renegotiations; 1839 return _SSL_clear_num_renegotiations(s);
1799 S3I(s)->num_renegotiations = 0; 1840
1800 break;
1801 case SSL_CTRL_GET_TOTAL_RENEGOTIATIONS: 1841 case SSL_CTRL_GET_TOTAL_RENEGOTIATIONS:
1802 ret = S3I(s)->total_renegotiations; 1842 return _SSL_total_renegotiations(s);
1803 break; 1843
1804 case SSL_CTRL_GET_FLAGS:
1805 ret = (int)(s->s3->flags);
1806 break;
1807 case SSL_CTRL_NEED_TMP_RSA: 1844 case SSL_CTRL_NEED_TMP_RSA:
1808 ret = 0; 1845 ret = 0;
1809 break; 1846 break;
1847
1810 case SSL_CTRL_SET_TMP_RSA: 1848 case SSL_CTRL_SET_TMP_RSA:
1811 case SSL_CTRL_SET_TMP_RSA_CB: 1849 case SSL_CTRL_SET_TMP_RSA_CB:
1812 SSLerror(s, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED); 1850 SSLerror(s, ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED);
@@ -1954,6 +1992,16 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
1954 return (0); 1992 return (0);
1955 return SSL_set_max_proto_version(s, larg); 1993 return SSL_set_max_proto_version(s, larg);
1956 1994
1995 /*
1996 * Legacy controls that should be removed.
1997 */
1998 case SSL_CTRL_GET_CLIENT_CERT_REQUEST:
1999 break;
2000
2001 case SSL_CTRL_GET_FLAGS:
2002 ret = (int)(s->s3->flags);
2003 break;
2004
1957 default: 2005 default:
1958 break; 2006 break;
1959 } 2007 }
@@ -1961,20 +2009,6 @@ ssl3_ctrl(SSL *s, int cmd, long larg, void *parg)
1961 return (ret); 2009 return (ret);
1962} 2010}
1963 2011
1964int
1965SSL_set1_groups(SSL *s, const int *groups, size_t groups_len)
1966{
1967 return tls1_set_groups(&s->internal->tlsext_supportedgroups,
1968 &s->internal->tlsext_supportedgroups_length, groups, groups_len);
1969}
1970
1971int
1972SSL_set1_groups_list(SSL *s, const char *groups)
1973{
1974 return tls1_set_groups_list(&s->internal->tlsext_supportedgroups,
1975 &s->internal->tlsext_supportedgroups_length, groups);
1976}
1977
1978long 2012long
1979ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void)) 2013ssl3_callback_ctrl(SSL *s, int cmd, void (*fp)(void))
1980{ 2014{