summaryrefslogtreecommitdiff
path: root/src/lib/libssl/t1_clnt.c
diff options
context:
space:
mode:
authorjsing <>2017-01-23 13:36:13 +0000
committerjsing <>2017-01-23 13:36:13 +0000
commit0eff443f2ac1ae9043870f2d40d9dc0d57f236d6 (patch)
tree84ee9c4c985fe1078df40f818b7697846dba1c18 /src/lib/libssl/t1_clnt.c
parent76088a8d37b68292f56046a6a4dea9544ad5ab89 (diff)
downloadopenbsd-0eff443f2ac1ae9043870f2d40d9dc0d57f236d6.tar.gz
openbsd-0eff443f2ac1ae9043870f2d40d9dc0d57f236d6.tar.bz2
openbsd-0eff443f2ac1ae9043870f2d40d9dc0d57f236d6.zip
Split most of SSL_METHOD out into an internal variant, which is opaque.
Discussed with beck@
Diffstat (limited to 'src/lib/libssl/t1_clnt.c')
-rw-r--r--src/lib/libssl/t1_clnt.c82
1 files changed, 49 insertions, 33 deletions
diff --git a/src/lib/libssl/t1_clnt.c b/src/lib/libssl/t1_clnt.c
index d07e54d9f7..5b8f7cd412 100644
--- a/src/lib/libssl/t1_clnt.c
+++ b/src/lib/libssl/t1_clnt.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: t1_clnt.c,v 1.21 2017/01/23 10:22:06 jsing Exp $ */ 1/* $OpenBSD: t1_clnt.c,v 1.22 2017/01/23 13:36:13 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 *
@@ -66,7 +66,7 @@
66 66
67static const SSL_METHOD *tls1_get_client_method(int ver); 67static const SSL_METHOD *tls1_get_client_method(int ver);
68 68
69static const SSL_METHOD TLS_client_method_data = { 69static const SSL_METHOD_INTERNAL TLS_client_method_internal_data = {
70 .version = TLS1_2_VERSION, 70 .version = TLS1_2_VERSION,
71 .min_version = TLS1_VERSION, 71 .min_version = TLS1_VERSION,
72 .max_version = TLS1_2_VERSION, 72 .max_version = TLS1_2_VERSION,
@@ -79,24 +79,28 @@ static const SSL_METHOD TLS_client_method_data = {
79 .ssl_peek = ssl23_peek, 79 .ssl_peek = ssl23_peek,
80 .ssl_write = ssl23_write, 80 .ssl_write = ssl23_write,
81 .ssl_shutdown = ssl_undefined_function, 81 .ssl_shutdown = ssl_undefined_function,
82 .ssl_pending = ssl_undefined_const_function,
83 .get_ssl_method = tls1_get_client_method,
84 .get_timeout = ssl23_default_timeout,
85 .ssl_version = ssl_undefined_void_function,
82 .ssl_renegotiate = ssl_undefined_function, 86 .ssl_renegotiate = ssl_undefined_function,
83 .ssl_renegotiate_check = ssl_ok, 87 .ssl_renegotiate_check = ssl_ok,
84 .ssl_get_message = ssl3_get_message, 88 .ssl_get_message = ssl3_get_message,
85 .ssl_read_bytes = ssl3_read_bytes, 89 .ssl_read_bytes = ssl3_read_bytes,
86 .ssl_write_bytes = ssl3_write_bytes, 90 .ssl_write_bytes = ssl3_write_bytes,
91 .ssl3_enc = &ssl3_undef_enc_method,
92};
93
94static const SSL_METHOD TLS_client_method_data = {
87 .ssl_dispatch_alert = ssl3_dispatch_alert, 95 .ssl_dispatch_alert = ssl3_dispatch_alert,
88 .get_cipher_by_char = ssl3_get_cipher_by_char,
89 .put_cipher_by_char = ssl3_put_cipher_by_char,
90 .ssl_pending = ssl_undefined_const_function,
91 .num_ciphers = ssl3_num_ciphers, 96 .num_ciphers = ssl3_num_ciphers,
92 .get_cipher = ssl3_get_cipher, 97 .get_cipher = ssl3_get_cipher,
93 .get_ssl_method = tls1_get_client_method, 98 .get_cipher_by_char = ssl3_get_cipher_by_char,
94 .get_timeout = ssl23_default_timeout, 99 .put_cipher_by_char = ssl3_put_cipher_by_char,
95 .ssl3_enc = &ssl3_undef_enc_method, 100 .internal = &TLS_client_method_internal_data,
96 .ssl_version = ssl_undefined_void_function,
97}; 101};
98 102
99static const SSL_METHOD TLSv1_client_method_data = { 103static const SSL_METHOD_INTERNAL TLSv1_client_method_internal_data = {
100 .version = TLS1_VERSION, 104 .version = TLS1_VERSION,
101 .min_version = TLS1_VERSION, 105 .min_version = TLS1_VERSION,
102 .max_version = TLS1_VERSION, 106 .max_version = TLS1_VERSION,
@@ -109,24 +113,28 @@ static const SSL_METHOD TLSv1_client_method_data = {
109 .ssl_peek = ssl3_peek, 113 .ssl_peek = ssl3_peek,
110 .ssl_write = ssl3_write, 114 .ssl_write = ssl3_write,
111 .ssl_shutdown = ssl3_shutdown, 115 .ssl_shutdown = ssl3_shutdown,
116 .ssl_pending = ssl3_pending,
117 .get_ssl_method = tls1_get_client_method,
118 .get_timeout = tls1_default_timeout,
119 .ssl_version = ssl_undefined_void_function,
112 .ssl_renegotiate = ssl3_renegotiate, 120 .ssl_renegotiate = ssl3_renegotiate,
113 .ssl_renegotiate_check = ssl3_renegotiate_check, 121 .ssl_renegotiate_check = ssl3_renegotiate_check,
114 .ssl_get_message = ssl3_get_message, 122 .ssl_get_message = ssl3_get_message,
115 .ssl_read_bytes = ssl3_read_bytes, 123 .ssl_read_bytes = ssl3_read_bytes,
116 .ssl_write_bytes = ssl3_write_bytes, 124 .ssl_write_bytes = ssl3_write_bytes,
125 .ssl3_enc = &TLSv1_enc_data,
126};
127
128static const SSL_METHOD TLSv1_client_method_data = {
117 .ssl_dispatch_alert = ssl3_dispatch_alert, 129 .ssl_dispatch_alert = ssl3_dispatch_alert,
118 .get_cipher_by_char = ssl3_get_cipher_by_char,
119 .put_cipher_by_char = ssl3_put_cipher_by_char,
120 .ssl_pending = ssl3_pending,
121 .num_ciphers = ssl3_num_ciphers, 130 .num_ciphers = ssl3_num_ciphers,
122 .get_cipher = ssl3_get_cipher, 131 .get_cipher = ssl3_get_cipher,
123 .get_ssl_method = tls1_get_client_method, 132 .get_cipher_by_char = ssl3_get_cipher_by_char,
124 .get_timeout = tls1_default_timeout, 133 .put_cipher_by_char = ssl3_put_cipher_by_char,
125 .ssl3_enc = &TLSv1_enc_data, 134 .internal = &TLSv1_client_method_internal_data,
126 .ssl_version = ssl_undefined_void_function,
127}; 135};
128 136
129static const SSL_METHOD TLSv1_1_client_method_data = { 137static const SSL_METHOD_INTERNAL TLSv1_1_client_method_internal_data = {
130 .version = TLS1_1_VERSION, 138 .version = TLS1_1_VERSION,
131 .min_version = TLS1_1_VERSION, 139 .min_version = TLS1_1_VERSION,
132 .max_version = TLS1_1_VERSION, 140 .max_version = TLS1_1_VERSION,
@@ -139,24 +147,28 @@ static const SSL_METHOD TLSv1_1_client_method_data = {
139 .ssl_peek = ssl3_peek, 147 .ssl_peek = ssl3_peek,
140 .ssl_write = ssl3_write, 148 .ssl_write = ssl3_write,
141 .ssl_shutdown = ssl3_shutdown, 149 .ssl_shutdown = ssl3_shutdown,
150 .ssl_pending = ssl3_pending,
151 .get_ssl_method = tls1_get_client_method,
152 .get_timeout = tls1_default_timeout,
153 .ssl_version = ssl_undefined_void_function,
142 .ssl_renegotiate = ssl3_renegotiate, 154 .ssl_renegotiate = ssl3_renegotiate,
143 .ssl_renegotiate_check = ssl3_renegotiate_check, 155 .ssl_renegotiate_check = ssl3_renegotiate_check,
144 .ssl_get_message = ssl3_get_message, 156 .ssl_get_message = ssl3_get_message,
145 .ssl_read_bytes = ssl3_read_bytes, 157 .ssl_read_bytes = ssl3_read_bytes,
146 .ssl_write_bytes = ssl3_write_bytes, 158 .ssl_write_bytes = ssl3_write_bytes,
159 .ssl3_enc = &TLSv1_1_enc_data,
160};
161
162static const SSL_METHOD TLSv1_1_client_method_data = {
147 .ssl_dispatch_alert = ssl3_dispatch_alert, 163 .ssl_dispatch_alert = ssl3_dispatch_alert,
148 .get_cipher_by_char = ssl3_get_cipher_by_char,
149 .put_cipher_by_char = ssl3_put_cipher_by_char,
150 .ssl_pending = ssl3_pending,
151 .num_ciphers = ssl3_num_ciphers, 164 .num_ciphers = ssl3_num_ciphers,
152 .get_cipher = ssl3_get_cipher, 165 .get_cipher = ssl3_get_cipher,
153 .get_ssl_method = tls1_get_client_method, 166 .get_cipher_by_char = ssl3_get_cipher_by_char,
154 .get_timeout = tls1_default_timeout, 167 .put_cipher_by_char = ssl3_put_cipher_by_char,
155 .ssl3_enc = &TLSv1_1_enc_data, 168 .internal = &TLSv1_1_client_method_internal_data,
156 .ssl_version = ssl_undefined_void_function,
157}; 169};
158 170
159static const SSL_METHOD TLSv1_2_client_method_data = { 171static const SSL_METHOD_INTERNAL TLSv1_2_client_method_internal_data = {
160 .version = TLS1_2_VERSION, 172 .version = TLS1_2_VERSION,
161 .min_version = TLS1_2_VERSION, 173 .min_version = TLS1_2_VERSION,
162 .max_version = TLS1_2_VERSION, 174 .max_version = TLS1_2_VERSION,
@@ -169,21 +181,25 @@ static const SSL_METHOD TLSv1_2_client_method_data = {
169 .ssl_peek = ssl3_peek, 181 .ssl_peek = ssl3_peek,
170 .ssl_write = ssl3_write, 182 .ssl_write = ssl3_write,
171 .ssl_shutdown = ssl3_shutdown, 183 .ssl_shutdown = ssl3_shutdown,
184 .ssl_pending = ssl3_pending,
185 .get_ssl_method = tls1_get_client_method,
186 .get_timeout = tls1_default_timeout,
187 .ssl_version = ssl_undefined_void_function,
172 .ssl_renegotiate = ssl3_renegotiate, 188 .ssl_renegotiate = ssl3_renegotiate,
173 .ssl_renegotiate_check = ssl3_renegotiate_check, 189 .ssl_renegotiate_check = ssl3_renegotiate_check,
174 .ssl_get_message = ssl3_get_message, 190 .ssl_get_message = ssl3_get_message,
175 .ssl_read_bytes = ssl3_read_bytes, 191 .ssl_read_bytes = ssl3_read_bytes,
176 .ssl_write_bytes = ssl3_write_bytes, 192 .ssl_write_bytes = ssl3_write_bytes,
193 .ssl3_enc = &TLSv1_2_enc_data,
194};
195
196static const SSL_METHOD TLSv1_2_client_method_data = {
177 .ssl_dispatch_alert = ssl3_dispatch_alert, 197 .ssl_dispatch_alert = ssl3_dispatch_alert,
178 .get_cipher_by_char = ssl3_get_cipher_by_char,
179 .put_cipher_by_char = ssl3_put_cipher_by_char,
180 .ssl_pending = ssl3_pending,
181 .num_ciphers = ssl3_num_ciphers, 198 .num_ciphers = ssl3_num_ciphers,
182 .get_cipher = ssl3_get_cipher, 199 .get_cipher = ssl3_get_cipher,
183 .get_ssl_method = tls1_get_client_method, 200 .get_cipher_by_char = ssl3_get_cipher_by_char,
184 .get_timeout = tls1_default_timeout, 201 .put_cipher_by_char = ssl3_put_cipher_by_char,
185 .ssl3_enc = &TLSv1_2_enc_data, 202 .internal = &TLSv1_2_client_method_internal_data,
186 .ssl_version = ssl_undefined_void_function,
187}; 203};
188 204
189static const SSL_METHOD * 205static const SSL_METHOD *