diff options
author | jsing <> | 2014-05-24 12:44:48 +0000 |
---|---|---|
committer | jsing <> | 2014-05-24 12:44:48 +0000 |
commit | 52c89a2661760a5549aeb55a62ea9957c3379e64 (patch) | |
tree | d69c2da4faf1b7f2a4d061a5b3cf3601197a246a | |
parent | 423deaf23c5a306d0f9bc96d6e1e9584d85f7c16 (diff) | |
download | openbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.tar.gz openbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.tar.bz2 openbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.zip |
DeIMPLEMENT libssl. Expand the IMPLEMENT_* macros since it is far more
readable and one less layer of abstraction. Use C99 initialisers for
clarity, grepability and to protect from future field reordering/removal.
ok miod@ (tedu@ also thought it was a wonderful idea, beck@ also agreed,
but ran away squealing since it reminded him of the VOP layer...)
24 files changed, 1308 insertions, 412 deletions
diff --git a/src/lib/libssl/d1_clnt.c b/src/lib/libssl/d1_clnt.c index 8967879f70..8f304a75ff 100644 --- a/src/lib/libssl/d1_clnt.c +++ b/src/lib/libssl/d1_clnt.c | |||
@@ -128,6 +128,44 @@ | |||
128 | static const SSL_METHOD *dtls1_get_client_method(int ver); | 128 | static const SSL_METHOD *dtls1_get_client_method(int ver); |
129 | static int dtls1_get_hello_verify(SSL *s); | 129 | static int dtls1_get_hello_verify(SSL *s); |
130 | 130 | ||
131 | const SSL_METHOD DTLSv1_client_method_data = { | ||
132 | .version = DTLS1_VERSION, | ||
133 | .ssl_new = dtls1_new, | ||
134 | .ssl_clear = dtls1_clear, | ||
135 | .ssl_free = dtls1_free, | ||
136 | .ssl_accept = ssl_undefined_function, | ||
137 | .ssl_connect = dtls1_connect, | ||
138 | .ssl_read = ssl3_read, | ||
139 | .ssl_peek = ssl3_peek, | ||
140 | .ssl_write = ssl3_write, | ||
141 | .ssl_shutdown = dtls1_shutdown, | ||
142 | .ssl_renegotiate = ssl3_renegotiate, | ||
143 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
144 | .ssl_get_message = dtls1_get_message, | ||
145 | .ssl_read_bytes = dtls1_read_bytes, | ||
146 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
147 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
148 | .ssl_ctrl = dtls1_ctrl, | ||
149 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
150 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
151 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
152 | .ssl_pending = ssl3_pending, | ||
153 | .num_ciphers = ssl3_num_ciphers, | ||
154 | .get_cipher = dtls1_get_cipher, | ||
155 | .get_ssl_method = dtls1_get_client_method, | ||
156 | .get_timeout = dtls1_default_timeout, | ||
157 | .ssl3_enc = &DTLSv1_enc_data, | ||
158 | .ssl_version = ssl_undefined_void_function, | ||
159 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
160 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
161 | }; | ||
162 | |||
163 | const SSL_METHOD * | ||
164 | DTLSv1_client_method(void) | ||
165 | { | ||
166 | return &DTLSv1_client_method_data; | ||
167 | } | ||
168 | |||
131 | static const SSL_METHOD * | 169 | static const SSL_METHOD * |
132 | dtls1_get_client_method(int ver) | 170 | dtls1_get_client_method(int ver) |
133 | { | 171 | { |
@@ -136,9 +174,6 @@ dtls1_get_client_method(int ver) | |||
136 | return (NULL); | 174 | return (NULL); |
137 | } | 175 | } |
138 | 176 | ||
139 | IMPLEMENT_dtls1_meth_func(DTLSv1_client_method, | ||
140 | ssl_undefined_function, dtls1_connect, dtls1_get_client_method) | ||
141 | |||
142 | int | 177 | int |
143 | dtls1_connect(SSL *s) | 178 | dtls1_connect(SSL *s) |
144 | { | 179 | { |
diff --git a/src/lib/libssl/d1_meth.c b/src/lib/libssl/d1_meth.c index 1140da6825..5e4bf0230c 100644 --- a/src/lib/libssl/d1_meth.c +++ b/src/lib/libssl/d1_meth.c | |||
@@ -62,6 +62,45 @@ | |||
62 | #include "ssl_locl.h" | 62 | #include "ssl_locl.h" |
63 | 63 | ||
64 | static const SSL_METHOD *dtls1_get_method(int ver); | 64 | static const SSL_METHOD *dtls1_get_method(int ver); |
65 | |||
66 | const SSL_METHOD DTLSv1_method_data = { | ||
67 | .version = DTLS1_VERSION, | ||
68 | .ssl_new = dtls1_new, | ||
69 | .ssl_clear = dtls1_clear, | ||
70 | .ssl_free = dtls1_free, | ||
71 | .ssl_accept = dtls1_accept, | ||
72 | .ssl_connect = dtls1_connect, | ||
73 | .ssl_read = ssl3_read, | ||
74 | .ssl_peek = ssl3_peek, | ||
75 | .ssl_write = ssl3_write, | ||
76 | .ssl_shutdown = dtls1_shutdown, | ||
77 | .ssl_renegotiate = ssl3_renegotiate, | ||
78 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
79 | .ssl_get_message = dtls1_get_message, | ||
80 | .ssl_read_bytes = dtls1_read_bytes, | ||
81 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
82 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
83 | .ssl_ctrl = dtls1_ctrl, | ||
84 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
85 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
86 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
87 | .ssl_pending = ssl3_pending, | ||
88 | .num_ciphers = ssl3_num_ciphers, | ||
89 | .get_cipher = dtls1_get_cipher, | ||
90 | .get_ssl_method = dtls1_get_method, | ||
91 | .get_timeout = dtls1_default_timeout, | ||
92 | .ssl3_enc = &DTLSv1_enc_data, | ||
93 | .ssl_version = ssl_undefined_void_function, | ||
94 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
95 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
96 | }; | ||
97 | |||
98 | const SSL_METHOD * | ||
99 | DTLSv1_method(void) | ||
100 | { | ||
101 | return &DTLSv1_method_data; | ||
102 | } | ||
103 | |||
65 | static const SSL_METHOD * | 104 | static const SSL_METHOD * |
66 | dtls1_get_method(int ver) | 105 | dtls1_get_method(int ver) |
67 | { | 106 | { |
@@ -69,6 +108,3 @@ dtls1_get_method(int ver) | |||
69 | return (DTLSv1_method()); | 108 | return (DTLSv1_method()); |
70 | return (NULL); | 109 | return (NULL); |
71 | } | 110 | } |
72 | |||
73 | IMPLEMENT_dtls1_meth_func(DTLSv1_method, | ||
74 | dtls1_accept, dtls1_connect, dtls1_get_method) | ||
diff --git a/src/lib/libssl/d1_srvr.c b/src/lib/libssl/d1_srvr.c index 6183815a6d..2c22a25bce 100644 --- a/src/lib/libssl/d1_srvr.c +++ b/src/lib/libssl/d1_srvr.c | |||
@@ -129,6 +129,44 @@ | |||
129 | static const SSL_METHOD *dtls1_get_server_method(int ver); | 129 | static const SSL_METHOD *dtls1_get_server_method(int ver); |
130 | static int dtls1_send_hello_verify_request(SSL *s); | 130 | static int dtls1_send_hello_verify_request(SSL *s); |
131 | 131 | ||
132 | const SSL_METHOD DTLSv1_server_method_data = { | ||
133 | .version = DTLS1_VERSION, | ||
134 | .ssl_new = dtls1_new, | ||
135 | .ssl_clear = dtls1_clear, | ||
136 | .ssl_free = dtls1_free, | ||
137 | .ssl_accept = dtls1_accept, | ||
138 | .ssl_connect = ssl_undefined_function, | ||
139 | .ssl_read = ssl3_read, | ||
140 | .ssl_peek = ssl3_peek, | ||
141 | .ssl_write = ssl3_write, | ||
142 | .ssl_shutdown = dtls1_shutdown, | ||
143 | .ssl_renegotiate = ssl3_renegotiate, | ||
144 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
145 | .ssl_get_message = dtls1_get_message, | ||
146 | .ssl_read_bytes = dtls1_read_bytes, | ||
147 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
148 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
149 | .ssl_ctrl = dtls1_ctrl, | ||
150 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
151 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
152 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
153 | .ssl_pending = ssl3_pending, | ||
154 | .num_ciphers = ssl3_num_ciphers, | ||
155 | .get_cipher = dtls1_get_cipher, | ||
156 | .get_ssl_method = dtls1_get_server_method, | ||
157 | .get_timeout = dtls1_default_timeout, | ||
158 | .ssl3_enc = &DTLSv1_enc_data, | ||
159 | .ssl_version = ssl_undefined_void_function, | ||
160 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
161 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
162 | }; | ||
163 | |||
164 | const SSL_METHOD * | ||
165 | DTLSv1_server_method(void) | ||
166 | { | ||
167 | return &DTLSv1_server_method_data; | ||
168 | } | ||
169 | |||
132 | static const SSL_METHOD * | 170 | static const SSL_METHOD * |
133 | dtls1_get_server_method(int ver) | 171 | dtls1_get_server_method(int ver) |
134 | { | 172 | { |
@@ -137,9 +175,6 @@ dtls1_get_server_method(int ver) | |||
137 | return (NULL); | 175 | return (NULL); |
138 | } | 176 | } |
139 | 177 | ||
140 | IMPLEMENT_dtls1_meth_func(DTLSv1_server_method, | ||
141 | dtls1_accept, ssl_undefined_function, dtls1_get_server_method) | ||
142 | |||
143 | int | 178 | int |
144 | dtls1_accept(SSL *s) | 179 | dtls1_accept(SSL *s) |
145 | { | 180 | { |
diff --git a/src/lib/libssl/s23_clnt.c b/src/lib/libssl/s23_clnt.c index 293b1e5da2..897ac7efe3 100644 --- a/src/lib/libssl/s23_clnt.c +++ b/src/lib/libssl/s23_clnt.c | |||
@@ -119,6 +119,45 @@ | |||
119 | static const SSL_METHOD *ssl23_get_client_method(int ver); | 119 | static const SSL_METHOD *ssl23_get_client_method(int ver); |
120 | static int ssl23_client_hello(SSL *s); | 120 | static int ssl23_client_hello(SSL *s); |
121 | static int ssl23_get_server_hello(SSL *s); | 121 | static int ssl23_get_server_hello(SSL *s); |
122 | |||
123 | const SSL_METHOD SSLv23_client_method_data = { | ||
124 | .version = TLS1_2_VERSION, | ||
125 | .ssl_new = tls1_new, | ||
126 | .ssl_clear = tls1_clear, | ||
127 | .ssl_free = tls1_free, | ||
128 | .ssl_accept = ssl_undefined_function, | ||
129 | .ssl_connect = ssl23_connect, | ||
130 | .ssl_read = ssl23_read, | ||
131 | .ssl_peek = ssl23_peek, | ||
132 | .ssl_write = ssl23_write, | ||
133 | .ssl_shutdown = ssl_undefined_function, | ||
134 | .ssl_renegotiate = ssl_undefined_function, | ||
135 | .ssl_renegotiate_check = ssl_ok, | ||
136 | .ssl_get_message = ssl3_get_message, | ||
137 | .ssl_read_bytes = ssl3_read_bytes, | ||
138 | .ssl_write_bytes = ssl3_write_bytes, | ||
139 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
140 | .ssl_ctrl = ssl3_ctrl, | ||
141 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
142 | .get_cipher_by_char = ssl23_get_cipher_by_char, | ||
143 | .put_cipher_by_char = ssl23_put_cipher_by_char, | ||
144 | .ssl_pending = ssl_undefined_const_function, | ||
145 | .num_ciphers = ssl23_num_ciphers, | ||
146 | .get_cipher = ssl23_get_cipher, | ||
147 | .get_ssl_method = ssl23_get_client_method, | ||
148 | .get_timeout = ssl23_default_timeout, | ||
149 | .ssl3_enc = &ssl3_undef_enc_method, | ||
150 | .ssl_version = ssl_undefined_void_function, | ||
151 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
152 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
153 | }; | ||
154 | |||
155 | const SSL_METHOD * | ||
156 | SSLv23_client_method(void) | ||
157 | { | ||
158 | return &SSLv23_client_method_data; | ||
159 | } | ||
160 | |||
122 | static const SSL_METHOD * | 161 | static const SSL_METHOD * |
123 | ssl23_get_client_method(int ver) | 162 | ssl23_get_client_method(int ver) |
124 | { | 163 | { |
@@ -133,9 +172,6 @@ ssl23_get_client_method(int ver) | |||
133 | return (NULL); | 172 | return (NULL); |
134 | } | 173 | } |
135 | 174 | ||
136 | IMPLEMENT_ssl23_meth_func(SSLv23_client_method, | ||
137 | ssl_undefined_function, ssl23_connect, ssl23_get_client_method) | ||
138 | |||
139 | int | 175 | int |
140 | ssl23_connect(SSL *s) | 176 | ssl23_connect(SSL *s) |
141 | { | 177 | { |
diff --git a/src/lib/libssl/s23_srvr.c b/src/lib/libssl/s23_srvr.c index 1f17c19c06..94e669ae14 100644 --- a/src/lib/libssl/s23_srvr.c +++ b/src/lib/libssl/s23_srvr.c | |||
@@ -118,6 +118,45 @@ | |||
118 | 118 | ||
119 | static const SSL_METHOD *ssl23_get_server_method(int ver); | 119 | static const SSL_METHOD *ssl23_get_server_method(int ver); |
120 | int ssl23_get_client_hello(SSL *s); | 120 | int ssl23_get_client_hello(SSL *s); |
121 | |||
122 | const SSL_METHOD SSLv23_server_method_data = { | ||
123 | .version = TLS1_2_VERSION, | ||
124 | .ssl_new = tls1_new, | ||
125 | .ssl_clear = tls1_clear, | ||
126 | .ssl_free = tls1_free, | ||
127 | .ssl_accept = ssl23_accept, | ||
128 | .ssl_connect = ssl_undefined_function, | ||
129 | .ssl_read = ssl23_read, | ||
130 | .ssl_peek = ssl23_peek, | ||
131 | .ssl_write = ssl23_write, | ||
132 | .ssl_shutdown = ssl_undefined_function, | ||
133 | .ssl_renegotiate = ssl_undefined_function, | ||
134 | .ssl_renegotiate_check = ssl_ok, | ||
135 | .ssl_get_message = ssl3_get_message, | ||
136 | .ssl_read_bytes = ssl3_read_bytes, | ||
137 | .ssl_write_bytes = ssl3_write_bytes, | ||
138 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
139 | .ssl_ctrl = ssl3_ctrl, | ||
140 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
141 | .get_cipher_by_char = ssl23_get_cipher_by_char, | ||
142 | .put_cipher_by_char = ssl23_put_cipher_by_char, | ||
143 | .ssl_pending = ssl_undefined_const_function, | ||
144 | .num_ciphers = ssl23_num_ciphers, | ||
145 | .get_cipher = ssl23_get_cipher, | ||
146 | .get_ssl_method = ssl23_get_server_method, | ||
147 | .get_timeout = ssl23_default_timeout, | ||
148 | .ssl3_enc = &ssl3_undef_enc_method, | ||
149 | .ssl_version = ssl_undefined_void_function, | ||
150 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
151 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
152 | }; | ||
153 | |||
154 | const SSL_METHOD * | ||
155 | SSLv23_server_method(void) | ||
156 | { | ||
157 | return &SSLv23_server_method_data; | ||
158 | } | ||
159 | |||
121 | static const SSL_METHOD * | 160 | static const SSL_METHOD * |
122 | ssl23_get_server_method(int ver) | 161 | ssl23_get_server_method(int ver) |
123 | { | 162 | { |
@@ -132,9 +171,6 @@ ssl23_get_server_method(int ver) | |||
132 | return (NULL); | 171 | return (NULL); |
133 | } | 172 | } |
134 | 173 | ||
135 | IMPLEMENT_ssl23_meth_func(SSLv23_server_method, | ||
136 | ssl23_accept, ssl_undefined_function, ssl23_get_server_method) | ||
137 | |||
138 | int | 174 | int |
139 | ssl23_accept(SSL *s) | 175 | ssl23_accept(SSL *s) |
140 | { | 176 | { |
diff --git a/src/lib/libssl/s3_clnt.c b/src/lib/libssl/s3_clnt.c index 010f9e4e12..16d5dacfc4 100644 --- a/src/lib/libssl/s3_clnt.c +++ b/src/lib/libssl/s3_clnt.c | |||
@@ -166,6 +166,44 @@ | |||
166 | static const SSL_METHOD *ssl3_get_client_method(int ver); | 166 | static const SSL_METHOD *ssl3_get_client_method(int ver); |
167 | static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b); | 167 | static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b); |
168 | 168 | ||
169 | const SSL_METHOD SSLv3_client_method_data = { | ||
170 | .version = SSL3_VERSION, | ||
171 | .ssl_new = ssl3_new, | ||
172 | .ssl_clear = ssl3_clear, | ||
173 | .ssl_free = ssl3_free, | ||
174 | .ssl_accept = ssl_undefined_function, | ||
175 | .ssl_connect = ssl3_connect, | ||
176 | .ssl_read = ssl3_read, | ||
177 | .ssl_peek = ssl3_peek, | ||
178 | .ssl_write = ssl3_write, | ||
179 | .ssl_shutdown = ssl3_shutdown, | ||
180 | .ssl_renegotiate = ssl3_renegotiate, | ||
181 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
182 | .ssl_get_message = ssl3_get_message, | ||
183 | .ssl_read_bytes = ssl3_read_bytes, | ||
184 | .ssl_write_bytes = ssl3_write_bytes, | ||
185 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
186 | .ssl_ctrl = ssl3_ctrl, | ||
187 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
188 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
189 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
190 | .ssl_pending = ssl3_pending, | ||
191 | .num_ciphers = ssl3_num_ciphers, | ||
192 | .get_cipher = ssl3_get_cipher, | ||
193 | .get_ssl_method = ssl3_get_client_method, | ||
194 | .get_timeout = ssl3_default_timeout, | ||
195 | .ssl3_enc = &SSLv3_enc_data, | ||
196 | .ssl_version = ssl_undefined_void_function, | ||
197 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
198 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
199 | }; | ||
200 | |||
201 | const SSL_METHOD * | ||
202 | SSLv3_client_method(void) | ||
203 | { | ||
204 | return &SSLv3_client_method_data; | ||
205 | } | ||
206 | |||
169 | static const SSL_METHOD * | 207 | static const SSL_METHOD * |
170 | ssl3_get_client_method(int ver) | 208 | ssl3_get_client_method(int ver) |
171 | { | 209 | { |
@@ -174,9 +212,6 @@ ssl3_get_client_method(int ver) | |||
174 | return (NULL); | 212 | return (NULL); |
175 | } | 213 | } |
176 | 214 | ||
177 | IMPLEMENT_ssl3_meth_func(SSLv3_client_method, | ||
178 | ssl_undefined_function, ssl3_connect, ssl3_get_client_method) | ||
179 | |||
180 | int | 215 | int |
181 | ssl3_connect(SSL *s) | 216 | ssl3_connect(SSL *s) |
182 | { | 217 | { |
diff --git a/src/lib/libssl/s3_srvr.c b/src/lib/libssl/s3_srvr.c index ff86ec3f1a..6f788cd080 100644 --- a/src/lib/libssl/s3_srvr.c +++ b/src/lib/libssl/s3_srvr.c | |||
@@ -167,6 +167,44 @@ | |||
167 | 167 | ||
168 | static const SSL_METHOD *ssl3_get_server_method(int ver); | 168 | static const SSL_METHOD *ssl3_get_server_method(int ver); |
169 | 169 | ||
170 | const SSL_METHOD SSLv3_server_method_data = { | ||
171 | .version = SSL3_VERSION, | ||
172 | .ssl_new = ssl3_new, | ||
173 | .ssl_clear = ssl3_clear, | ||
174 | .ssl_free = ssl3_free, | ||
175 | .ssl_accept = ssl3_accept, | ||
176 | .ssl_connect = ssl_undefined_function, | ||
177 | .ssl_read = ssl3_read, | ||
178 | .ssl_peek = ssl3_peek, | ||
179 | .ssl_write = ssl3_write, | ||
180 | .ssl_shutdown = ssl3_shutdown, | ||
181 | .ssl_renegotiate = ssl3_renegotiate, | ||
182 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
183 | .ssl_get_message = ssl3_get_message, | ||
184 | .ssl_read_bytes = ssl3_read_bytes, | ||
185 | .ssl_write_bytes = ssl3_write_bytes, | ||
186 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
187 | .ssl_ctrl = ssl3_ctrl, | ||
188 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
189 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
190 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
191 | .ssl_pending = ssl3_pending, | ||
192 | .num_ciphers = ssl3_num_ciphers, | ||
193 | .get_cipher = ssl3_get_cipher, | ||
194 | .get_ssl_method = ssl3_get_server_method, | ||
195 | .get_timeout = ssl3_default_timeout, | ||
196 | .ssl3_enc = &SSLv3_enc_data, | ||
197 | .ssl_version = ssl_undefined_void_function, | ||
198 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
199 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
200 | }; | ||
201 | |||
202 | const SSL_METHOD * | ||
203 | SSLv3_server_method(void) | ||
204 | { | ||
205 | return &SSLv3_server_method_data; | ||
206 | } | ||
207 | |||
170 | static const SSL_METHOD * | 208 | static const SSL_METHOD * |
171 | ssl3_get_server_method(int ver) | 209 | ssl3_get_server_method(int ver) |
172 | { | 210 | { |
@@ -175,10 +213,6 @@ ssl3_get_server_method(int ver) | |||
175 | return (NULL); | 213 | return (NULL); |
176 | } | 214 | } |
177 | 215 | ||
178 | |||
179 | IMPLEMENT_ssl3_meth_func(SSLv3_server_method, | ||
180 | ssl3_accept, ssl_undefined_function, ssl3_get_server_method) | ||
181 | |||
182 | int | 216 | int |
183 | ssl3_accept(SSL *s) | 217 | ssl3_accept(SSL *s) |
184 | { | 218 | { |
diff --git a/src/lib/libssl/src/ssl/d1_clnt.c b/src/lib/libssl/src/ssl/d1_clnt.c index 8967879f70..8f304a75ff 100644 --- a/src/lib/libssl/src/ssl/d1_clnt.c +++ b/src/lib/libssl/src/ssl/d1_clnt.c | |||
@@ -128,6 +128,44 @@ | |||
128 | static const SSL_METHOD *dtls1_get_client_method(int ver); | 128 | static const SSL_METHOD *dtls1_get_client_method(int ver); |
129 | static int dtls1_get_hello_verify(SSL *s); | 129 | static int dtls1_get_hello_verify(SSL *s); |
130 | 130 | ||
131 | const SSL_METHOD DTLSv1_client_method_data = { | ||
132 | .version = DTLS1_VERSION, | ||
133 | .ssl_new = dtls1_new, | ||
134 | .ssl_clear = dtls1_clear, | ||
135 | .ssl_free = dtls1_free, | ||
136 | .ssl_accept = ssl_undefined_function, | ||
137 | .ssl_connect = dtls1_connect, | ||
138 | .ssl_read = ssl3_read, | ||
139 | .ssl_peek = ssl3_peek, | ||
140 | .ssl_write = ssl3_write, | ||
141 | .ssl_shutdown = dtls1_shutdown, | ||
142 | .ssl_renegotiate = ssl3_renegotiate, | ||
143 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
144 | .ssl_get_message = dtls1_get_message, | ||
145 | .ssl_read_bytes = dtls1_read_bytes, | ||
146 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
147 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
148 | .ssl_ctrl = dtls1_ctrl, | ||
149 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
150 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
151 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
152 | .ssl_pending = ssl3_pending, | ||
153 | .num_ciphers = ssl3_num_ciphers, | ||
154 | .get_cipher = dtls1_get_cipher, | ||
155 | .get_ssl_method = dtls1_get_client_method, | ||
156 | .get_timeout = dtls1_default_timeout, | ||
157 | .ssl3_enc = &DTLSv1_enc_data, | ||
158 | .ssl_version = ssl_undefined_void_function, | ||
159 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
160 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
161 | }; | ||
162 | |||
163 | const SSL_METHOD * | ||
164 | DTLSv1_client_method(void) | ||
165 | { | ||
166 | return &DTLSv1_client_method_data; | ||
167 | } | ||
168 | |||
131 | static const SSL_METHOD * | 169 | static const SSL_METHOD * |
132 | dtls1_get_client_method(int ver) | 170 | dtls1_get_client_method(int ver) |
133 | { | 171 | { |
@@ -136,9 +174,6 @@ dtls1_get_client_method(int ver) | |||
136 | return (NULL); | 174 | return (NULL); |
137 | } | 175 | } |
138 | 176 | ||
139 | IMPLEMENT_dtls1_meth_func(DTLSv1_client_method, | ||
140 | ssl_undefined_function, dtls1_connect, dtls1_get_client_method) | ||
141 | |||
142 | int | 177 | int |
143 | dtls1_connect(SSL *s) | 178 | dtls1_connect(SSL *s) |
144 | { | 179 | { |
diff --git a/src/lib/libssl/src/ssl/d1_meth.c b/src/lib/libssl/src/ssl/d1_meth.c index 1140da6825..5e4bf0230c 100644 --- a/src/lib/libssl/src/ssl/d1_meth.c +++ b/src/lib/libssl/src/ssl/d1_meth.c | |||
@@ -62,6 +62,45 @@ | |||
62 | #include "ssl_locl.h" | 62 | #include "ssl_locl.h" |
63 | 63 | ||
64 | static const SSL_METHOD *dtls1_get_method(int ver); | 64 | static const SSL_METHOD *dtls1_get_method(int ver); |
65 | |||
66 | const SSL_METHOD DTLSv1_method_data = { | ||
67 | .version = DTLS1_VERSION, | ||
68 | .ssl_new = dtls1_new, | ||
69 | .ssl_clear = dtls1_clear, | ||
70 | .ssl_free = dtls1_free, | ||
71 | .ssl_accept = dtls1_accept, | ||
72 | .ssl_connect = dtls1_connect, | ||
73 | .ssl_read = ssl3_read, | ||
74 | .ssl_peek = ssl3_peek, | ||
75 | .ssl_write = ssl3_write, | ||
76 | .ssl_shutdown = dtls1_shutdown, | ||
77 | .ssl_renegotiate = ssl3_renegotiate, | ||
78 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
79 | .ssl_get_message = dtls1_get_message, | ||
80 | .ssl_read_bytes = dtls1_read_bytes, | ||
81 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
82 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
83 | .ssl_ctrl = dtls1_ctrl, | ||
84 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
85 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
86 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
87 | .ssl_pending = ssl3_pending, | ||
88 | .num_ciphers = ssl3_num_ciphers, | ||
89 | .get_cipher = dtls1_get_cipher, | ||
90 | .get_ssl_method = dtls1_get_method, | ||
91 | .get_timeout = dtls1_default_timeout, | ||
92 | .ssl3_enc = &DTLSv1_enc_data, | ||
93 | .ssl_version = ssl_undefined_void_function, | ||
94 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
95 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
96 | }; | ||
97 | |||
98 | const SSL_METHOD * | ||
99 | DTLSv1_method(void) | ||
100 | { | ||
101 | return &DTLSv1_method_data; | ||
102 | } | ||
103 | |||
65 | static const SSL_METHOD * | 104 | static const SSL_METHOD * |
66 | dtls1_get_method(int ver) | 105 | dtls1_get_method(int ver) |
67 | { | 106 | { |
@@ -69,6 +108,3 @@ dtls1_get_method(int ver) | |||
69 | return (DTLSv1_method()); | 108 | return (DTLSv1_method()); |
70 | return (NULL); | 109 | return (NULL); |
71 | } | 110 | } |
72 | |||
73 | IMPLEMENT_dtls1_meth_func(DTLSv1_method, | ||
74 | dtls1_accept, dtls1_connect, dtls1_get_method) | ||
diff --git a/src/lib/libssl/src/ssl/d1_srvr.c b/src/lib/libssl/src/ssl/d1_srvr.c index 6183815a6d..2c22a25bce 100644 --- a/src/lib/libssl/src/ssl/d1_srvr.c +++ b/src/lib/libssl/src/ssl/d1_srvr.c | |||
@@ -129,6 +129,44 @@ | |||
129 | static const SSL_METHOD *dtls1_get_server_method(int ver); | 129 | static const SSL_METHOD *dtls1_get_server_method(int ver); |
130 | static int dtls1_send_hello_verify_request(SSL *s); | 130 | static int dtls1_send_hello_verify_request(SSL *s); |
131 | 131 | ||
132 | const SSL_METHOD DTLSv1_server_method_data = { | ||
133 | .version = DTLS1_VERSION, | ||
134 | .ssl_new = dtls1_new, | ||
135 | .ssl_clear = dtls1_clear, | ||
136 | .ssl_free = dtls1_free, | ||
137 | .ssl_accept = dtls1_accept, | ||
138 | .ssl_connect = ssl_undefined_function, | ||
139 | .ssl_read = ssl3_read, | ||
140 | .ssl_peek = ssl3_peek, | ||
141 | .ssl_write = ssl3_write, | ||
142 | .ssl_shutdown = dtls1_shutdown, | ||
143 | .ssl_renegotiate = ssl3_renegotiate, | ||
144 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
145 | .ssl_get_message = dtls1_get_message, | ||
146 | .ssl_read_bytes = dtls1_read_bytes, | ||
147 | .ssl_write_bytes = dtls1_write_app_data_bytes, | ||
148 | .ssl_dispatch_alert = dtls1_dispatch_alert, | ||
149 | .ssl_ctrl = dtls1_ctrl, | ||
150 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
151 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
152 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
153 | .ssl_pending = ssl3_pending, | ||
154 | .num_ciphers = ssl3_num_ciphers, | ||
155 | .get_cipher = dtls1_get_cipher, | ||
156 | .get_ssl_method = dtls1_get_server_method, | ||
157 | .get_timeout = dtls1_default_timeout, | ||
158 | .ssl3_enc = &DTLSv1_enc_data, | ||
159 | .ssl_version = ssl_undefined_void_function, | ||
160 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
161 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
162 | }; | ||
163 | |||
164 | const SSL_METHOD * | ||
165 | DTLSv1_server_method(void) | ||
166 | { | ||
167 | return &DTLSv1_server_method_data; | ||
168 | } | ||
169 | |||
132 | static const SSL_METHOD * | 170 | static const SSL_METHOD * |
133 | dtls1_get_server_method(int ver) | 171 | dtls1_get_server_method(int ver) |
134 | { | 172 | { |
@@ -137,9 +175,6 @@ dtls1_get_server_method(int ver) | |||
137 | return (NULL); | 175 | return (NULL); |
138 | } | 176 | } |
139 | 177 | ||
140 | IMPLEMENT_dtls1_meth_func(DTLSv1_server_method, | ||
141 | dtls1_accept, ssl_undefined_function, dtls1_get_server_method) | ||
142 | |||
143 | int | 178 | int |
144 | dtls1_accept(SSL *s) | 179 | dtls1_accept(SSL *s) |
145 | { | 180 | { |
diff --git a/src/lib/libssl/src/ssl/s23_clnt.c b/src/lib/libssl/src/ssl/s23_clnt.c index 293b1e5da2..897ac7efe3 100644 --- a/src/lib/libssl/src/ssl/s23_clnt.c +++ b/src/lib/libssl/src/ssl/s23_clnt.c | |||
@@ -119,6 +119,45 @@ | |||
119 | static const SSL_METHOD *ssl23_get_client_method(int ver); | 119 | static const SSL_METHOD *ssl23_get_client_method(int ver); |
120 | static int ssl23_client_hello(SSL *s); | 120 | static int ssl23_client_hello(SSL *s); |
121 | static int ssl23_get_server_hello(SSL *s); | 121 | static int ssl23_get_server_hello(SSL *s); |
122 | |||
123 | const SSL_METHOD SSLv23_client_method_data = { | ||
124 | .version = TLS1_2_VERSION, | ||
125 | .ssl_new = tls1_new, | ||
126 | .ssl_clear = tls1_clear, | ||
127 | .ssl_free = tls1_free, | ||
128 | .ssl_accept = ssl_undefined_function, | ||
129 | .ssl_connect = ssl23_connect, | ||
130 | .ssl_read = ssl23_read, | ||
131 | .ssl_peek = ssl23_peek, | ||
132 | .ssl_write = ssl23_write, | ||
133 | .ssl_shutdown = ssl_undefined_function, | ||
134 | .ssl_renegotiate = ssl_undefined_function, | ||
135 | .ssl_renegotiate_check = ssl_ok, | ||
136 | .ssl_get_message = ssl3_get_message, | ||
137 | .ssl_read_bytes = ssl3_read_bytes, | ||
138 | .ssl_write_bytes = ssl3_write_bytes, | ||
139 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
140 | .ssl_ctrl = ssl3_ctrl, | ||
141 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
142 | .get_cipher_by_char = ssl23_get_cipher_by_char, | ||
143 | .put_cipher_by_char = ssl23_put_cipher_by_char, | ||
144 | .ssl_pending = ssl_undefined_const_function, | ||
145 | .num_ciphers = ssl23_num_ciphers, | ||
146 | .get_cipher = ssl23_get_cipher, | ||
147 | .get_ssl_method = ssl23_get_client_method, | ||
148 | .get_timeout = ssl23_default_timeout, | ||
149 | .ssl3_enc = &ssl3_undef_enc_method, | ||
150 | .ssl_version = ssl_undefined_void_function, | ||
151 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
152 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
153 | }; | ||
154 | |||
155 | const SSL_METHOD * | ||
156 | SSLv23_client_method(void) | ||
157 | { | ||
158 | return &SSLv23_client_method_data; | ||
159 | } | ||
160 | |||
122 | static const SSL_METHOD * | 161 | static const SSL_METHOD * |
123 | ssl23_get_client_method(int ver) | 162 | ssl23_get_client_method(int ver) |
124 | { | 163 | { |
@@ -133,9 +172,6 @@ ssl23_get_client_method(int ver) | |||
133 | return (NULL); | 172 | return (NULL); |
134 | } | 173 | } |
135 | 174 | ||
136 | IMPLEMENT_ssl23_meth_func(SSLv23_client_method, | ||
137 | ssl_undefined_function, ssl23_connect, ssl23_get_client_method) | ||
138 | |||
139 | int | 175 | int |
140 | ssl23_connect(SSL *s) | 176 | ssl23_connect(SSL *s) |
141 | { | 177 | { |
diff --git a/src/lib/libssl/src/ssl/s23_meth.c b/src/lib/libssl/src/ssl/s23_meth.c index d19d96a9b7..f26faf296e 100644 --- a/src/lib/libssl/src/ssl/s23_meth.c +++ b/src/lib/libssl/src/ssl/s23_meth.c | |||
@@ -61,6 +61,45 @@ | |||
61 | #include "ssl_locl.h" | 61 | #include "ssl_locl.h" |
62 | 62 | ||
63 | static const SSL_METHOD *ssl23_get_method(int ver); | 63 | static const SSL_METHOD *ssl23_get_method(int ver); |
64 | |||
65 | const SSL_METHOD SSLv23_method_data = { | ||
66 | .version = TLS1_2_VERSION, | ||
67 | .ssl_new = tls1_new, | ||
68 | .ssl_clear = tls1_clear, | ||
69 | .ssl_free = tls1_free, | ||
70 | .ssl_accept = ssl23_accept, | ||
71 | .ssl_connect = ssl23_connect, | ||
72 | .ssl_read = ssl23_read, | ||
73 | .ssl_peek = ssl23_peek, | ||
74 | .ssl_write = ssl23_write, | ||
75 | .ssl_shutdown = ssl_undefined_function, | ||
76 | .ssl_renegotiate = ssl_undefined_function, | ||
77 | .ssl_renegotiate_check = ssl_ok, | ||
78 | .ssl_get_message = ssl3_get_message, | ||
79 | .ssl_read_bytes = ssl3_read_bytes, | ||
80 | .ssl_write_bytes = ssl3_write_bytes, | ||
81 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
82 | .ssl_ctrl = ssl3_ctrl, | ||
83 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
84 | .get_cipher_by_char = ssl23_get_cipher_by_char, | ||
85 | .put_cipher_by_char = ssl23_put_cipher_by_char, | ||
86 | .ssl_pending = ssl_undefined_const_function, | ||
87 | .num_ciphers = ssl23_num_ciphers, | ||
88 | .get_cipher = ssl23_get_cipher, | ||
89 | .get_ssl_method = ssl23_get_method, | ||
90 | .get_timeout = ssl23_default_timeout, | ||
91 | .ssl3_enc = &ssl3_undef_enc_method, | ||
92 | .ssl_version = ssl_undefined_void_function, | ||
93 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
94 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
95 | }; | ||
96 | |||
97 | const SSL_METHOD * | ||
98 | SSLv23_method(void) | ||
99 | { | ||
100 | return &SSLv23_method_data; | ||
101 | } | ||
102 | |||
64 | static const SSL_METHOD * | 103 | static const SSL_METHOD * |
65 | ssl23_get_method(int ver) | 104 | ssl23_get_method(int ver) |
66 | { | 105 | { |
@@ -74,7 +113,3 @@ ssl23_get_method(int ver) | |||
74 | return (TLSv1_2_method()); | 113 | return (TLSv1_2_method()); |
75 | return (NULL); | 114 | return (NULL); |
76 | } | 115 | } |
77 | |||
78 | IMPLEMENT_ssl23_meth_func(SSLv23_method, | ||
79 | ssl23_accept, ssl23_connect, ssl23_get_method) | ||
80 | |||
diff --git a/src/lib/libssl/src/ssl/s23_srvr.c b/src/lib/libssl/src/ssl/s23_srvr.c index 1f17c19c06..94e669ae14 100644 --- a/src/lib/libssl/src/ssl/s23_srvr.c +++ b/src/lib/libssl/src/ssl/s23_srvr.c | |||
@@ -118,6 +118,45 @@ | |||
118 | 118 | ||
119 | static const SSL_METHOD *ssl23_get_server_method(int ver); | 119 | static const SSL_METHOD *ssl23_get_server_method(int ver); |
120 | int ssl23_get_client_hello(SSL *s); | 120 | int ssl23_get_client_hello(SSL *s); |
121 | |||
122 | const SSL_METHOD SSLv23_server_method_data = { | ||
123 | .version = TLS1_2_VERSION, | ||
124 | .ssl_new = tls1_new, | ||
125 | .ssl_clear = tls1_clear, | ||
126 | .ssl_free = tls1_free, | ||
127 | .ssl_accept = ssl23_accept, | ||
128 | .ssl_connect = ssl_undefined_function, | ||
129 | .ssl_read = ssl23_read, | ||
130 | .ssl_peek = ssl23_peek, | ||
131 | .ssl_write = ssl23_write, | ||
132 | .ssl_shutdown = ssl_undefined_function, | ||
133 | .ssl_renegotiate = ssl_undefined_function, | ||
134 | .ssl_renegotiate_check = ssl_ok, | ||
135 | .ssl_get_message = ssl3_get_message, | ||
136 | .ssl_read_bytes = ssl3_read_bytes, | ||
137 | .ssl_write_bytes = ssl3_write_bytes, | ||
138 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
139 | .ssl_ctrl = ssl3_ctrl, | ||
140 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
141 | .get_cipher_by_char = ssl23_get_cipher_by_char, | ||
142 | .put_cipher_by_char = ssl23_put_cipher_by_char, | ||
143 | .ssl_pending = ssl_undefined_const_function, | ||
144 | .num_ciphers = ssl23_num_ciphers, | ||
145 | .get_cipher = ssl23_get_cipher, | ||
146 | .get_ssl_method = ssl23_get_server_method, | ||
147 | .get_timeout = ssl23_default_timeout, | ||
148 | .ssl3_enc = &ssl3_undef_enc_method, | ||
149 | .ssl_version = ssl_undefined_void_function, | ||
150 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
151 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
152 | }; | ||
153 | |||
154 | const SSL_METHOD * | ||
155 | SSLv23_server_method(void) | ||
156 | { | ||
157 | return &SSLv23_server_method_data; | ||
158 | } | ||
159 | |||
121 | static const SSL_METHOD * | 160 | static const SSL_METHOD * |
122 | ssl23_get_server_method(int ver) | 161 | ssl23_get_server_method(int ver) |
123 | { | 162 | { |
@@ -132,9 +171,6 @@ ssl23_get_server_method(int ver) | |||
132 | return (NULL); | 171 | return (NULL); |
133 | } | 172 | } |
134 | 173 | ||
135 | IMPLEMENT_ssl23_meth_func(SSLv23_server_method, | ||
136 | ssl23_accept, ssl_undefined_function, ssl23_get_server_method) | ||
137 | |||
138 | int | 174 | int |
139 | ssl23_accept(SSL *s) | 175 | ssl23_accept(SSL *s) |
140 | { | 176 | { |
diff --git a/src/lib/libssl/src/ssl/s3_clnt.c b/src/lib/libssl/src/ssl/s3_clnt.c index 010f9e4e12..16d5dacfc4 100644 --- a/src/lib/libssl/src/ssl/s3_clnt.c +++ b/src/lib/libssl/src/ssl/s3_clnt.c | |||
@@ -166,6 +166,44 @@ | |||
166 | static const SSL_METHOD *ssl3_get_client_method(int ver); | 166 | static const SSL_METHOD *ssl3_get_client_method(int ver); |
167 | static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b); | 167 | static int ca_dn_cmp(const X509_NAME * const *a, const X509_NAME * const *b); |
168 | 168 | ||
169 | const SSL_METHOD SSLv3_client_method_data = { | ||
170 | .version = SSL3_VERSION, | ||
171 | .ssl_new = ssl3_new, | ||
172 | .ssl_clear = ssl3_clear, | ||
173 | .ssl_free = ssl3_free, | ||
174 | .ssl_accept = ssl_undefined_function, | ||
175 | .ssl_connect = ssl3_connect, | ||
176 | .ssl_read = ssl3_read, | ||
177 | .ssl_peek = ssl3_peek, | ||
178 | .ssl_write = ssl3_write, | ||
179 | .ssl_shutdown = ssl3_shutdown, | ||
180 | .ssl_renegotiate = ssl3_renegotiate, | ||
181 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
182 | .ssl_get_message = ssl3_get_message, | ||
183 | .ssl_read_bytes = ssl3_read_bytes, | ||
184 | .ssl_write_bytes = ssl3_write_bytes, | ||
185 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
186 | .ssl_ctrl = ssl3_ctrl, | ||
187 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
188 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
189 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
190 | .ssl_pending = ssl3_pending, | ||
191 | .num_ciphers = ssl3_num_ciphers, | ||
192 | .get_cipher = ssl3_get_cipher, | ||
193 | .get_ssl_method = ssl3_get_client_method, | ||
194 | .get_timeout = ssl3_default_timeout, | ||
195 | .ssl3_enc = &SSLv3_enc_data, | ||
196 | .ssl_version = ssl_undefined_void_function, | ||
197 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
198 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
199 | }; | ||
200 | |||
201 | const SSL_METHOD * | ||
202 | SSLv3_client_method(void) | ||
203 | { | ||
204 | return &SSLv3_client_method_data; | ||
205 | } | ||
206 | |||
169 | static const SSL_METHOD * | 207 | static const SSL_METHOD * |
170 | ssl3_get_client_method(int ver) | 208 | ssl3_get_client_method(int ver) |
171 | { | 209 | { |
@@ -174,9 +212,6 @@ ssl3_get_client_method(int ver) | |||
174 | return (NULL); | 212 | return (NULL); |
175 | } | 213 | } |
176 | 214 | ||
177 | IMPLEMENT_ssl3_meth_func(SSLv3_client_method, | ||
178 | ssl_undefined_function, ssl3_connect, ssl3_get_client_method) | ||
179 | |||
180 | int | 215 | int |
181 | ssl3_connect(SSL *s) | 216 | ssl3_connect(SSL *s) |
182 | { | 217 | { |
diff --git a/src/lib/libssl/src/ssl/s3_meth.c b/src/lib/libssl/src/ssl/s3_meth.c index b6d6771a21..04a72d99d3 100644 --- a/src/lib/libssl/src/ssl/s3_meth.c +++ b/src/lib/libssl/src/ssl/s3_meth.c | |||
@@ -61,6 +61,45 @@ | |||
61 | #include "ssl_locl.h" | 61 | #include "ssl_locl.h" |
62 | 62 | ||
63 | static const SSL_METHOD *ssl3_get_method(int ver); | 63 | static const SSL_METHOD *ssl3_get_method(int ver); |
64 | |||
65 | const SSL_METHOD SSLv3_method_data = { | ||
66 | .version = SSL3_VERSION, | ||
67 | .ssl_new = ssl3_new, | ||
68 | .ssl_clear = ssl3_clear, | ||
69 | .ssl_free = ssl3_free, | ||
70 | .ssl_accept = ssl3_accept, | ||
71 | .ssl_connect = ssl3_connect, | ||
72 | .ssl_read = ssl3_read, | ||
73 | .ssl_peek = ssl3_peek, | ||
74 | .ssl_write = ssl3_write, | ||
75 | .ssl_shutdown = ssl3_shutdown, | ||
76 | .ssl_renegotiate = ssl3_renegotiate, | ||
77 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
78 | .ssl_get_message = ssl3_get_message, | ||
79 | .ssl_read_bytes = ssl3_read_bytes, | ||
80 | .ssl_write_bytes = ssl3_write_bytes, | ||
81 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
82 | .ssl_ctrl = ssl3_ctrl, | ||
83 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
84 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
85 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
86 | .ssl_pending = ssl3_pending, | ||
87 | .num_ciphers = ssl3_num_ciphers, | ||
88 | .get_cipher = ssl3_get_cipher, | ||
89 | .get_ssl_method = ssl3_get_method, | ||
90 | .get_timeout = ssl3_default_timeout, | ||
91 | .ssl3_enc = &SSLv3_enc_data, | ||
92 | .ssl_version = ssl_undefined_void_function, | ||
93 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
94 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
95 | }; | ||
96 | |||
97 | const SSL_METHOD * | ||
98 | SSLv3_method(void) | ||
99 | { | ||
100 | return &SSLv3_method_data; | ||
101 | } | ||
102 | |||
64 | static const SSL_METHOD * | 103 | static const SSL_METHOD * |
65 | ssl3_get_method(int ver) | 104 | ssl3_get_method(int ver) |
66 | { | 105 | { |
@@ -68,7 +107,3 @@ ssl3_get_method(int ver) | |||
68 | return (SSLv3_method()); | 107 | return (SSLv3_method()); |
69 | return (NULL); | 108 | return (NULL); |
70 | } | 109 | } |
71 | |||
72 | IMPLEMENT_ssl3_meth_func(SSLv3_method, | ||
73 | ssl3_accept, ssl3_connect, ssl3_get_method) | ||
74 | |||
diff --git a/src/lib/libssl/src/ssl/s3_srvr.c b/src/lib/libssl/src/ssl/s3_srvr.c index ff86ec3f1a..6f788cd080 100644 --- a/src/lib/libssl/src/ssl/s3_srvr.c +++ b/src/lib/libssl/src/ssl/s3_srvr.c | |||
@@ -167,6 +167,44 @@ | |||
167 | 167 | ||
168 | static const SSL_METHOD *ssl3_get_server_method(int ver); | 168 | static const SSL_METHOD *ssl3_get_server_method(int ver); |
169 | 169 | ||
170 | const SSL_METHOD SSLv3_server_method_data = { | ||
171 | .version = SSL3_VERSION, | ||
172 | .ssl_new = ssl3_new, | ||
173 | .ssl_clear = ssl3_clear, | ||
174 | .ssl_free = ssl3_free, | ||
175 | .ssl_accept = ssl3_accept, | ||
176 | .ssl_connect = ssl_undefined_function, | ||
177 | .ssl_read = ssl3_read, | ||
178 | .ssl_peek = ssl3_peek, | ||
179 | .ssl_write = ssl3_write, | ||
180 | .ssl_shutdown = ssl3_shutdown, | ||
181 | .ssl_renegotiate = ssl3_renegotiate, | ||
182 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
183 | .ssl_get_message = ssl3_get_message, | ||
184 | .ssl_read_bytes = ssl3_read_bytes, | ||
185 | .ssl_write_bytes = ssl3_write_bytes, | ||
186 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
187 | .ssl_ctrl = ssl3_ctrl, | ||
188 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
189 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
190 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
191 | .ssl_pending = ssl3_pending, | ||
192 | .num_ciphers = ssl3_num_ciphers, | ||
193 | .get_cipher = ssl3_get_cipher, | ||
194 | .get_ssl_method = ssl3_get_server_method, | ||
195 | .get_timeout = ssl3_default_timeout, | ||
196 | .ssl3_enc = &SSLv3_enc_data, | ||
197 | .ssl_version = ssl_undefined_void_function, | ||
198 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
199 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
200 | }; | ||
201 | |||
202 | const SSL_METHOD * | ||
203 | SSLv3_server_method(void) | ||
204 | { | ||
205 | return &SSLv3_server_method_data; | ||
206 | } | ||
207 | |||
170 | static const SSL_METHOD * | 208 | static const SSL_METHOD * |
171 | ssl3_get_server_method(int ver) | 209 | ssl3_get_server_method(int ver) |
172 | { | 210 | { |
@@ -175,10 +213,6 @@ ssl3_get_server_method(int ver) | |||
175 | return (NULL); | 213 | return (NULL); |
176 | } | 214 | } |
177 | 215 | ||
178 | |||
179 | IMPLEMENT_ssl3_meth_func(SSLv3_server_method, | ||
180 | ssl3_accept, ssl_undefined_function, ssl3_get_server_method) | ||
181 | |||
182 | int | 216 | int |
183 | ssl3_accept(SSL *s) | 217 | ssl3_accept(SSL *s) |
184 | { | 218 | { |
diff --git a/src/lib/libssl/src/ssl/ssl_locl.h b/src/lib/libssl/src/ssl/ssl_locl.h index fc9d6a1027..3a4656ef62 100644 --- a/src/lib/libssl/src/ssl/ssl_locl.h +++ b/src/lib/libssl/src/ssl/ssl_locl.h | |||
@@ -575,155 +575,6 @@ extern SSL3_ENC_METHOD DTLSv1_enc_data; | |||
575 | 575 | ||
576 | #define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION) | 576 | #define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION) |
577 | 577 | ||
578 | #define IMPLEMENT_tls_meth_func(version, func_name, s_accept, s_connect, \ | ||
579 | s_get_meth) \ | ||
580 | const SSL_METHOD *func_name(void) \ | ||
581 | { \ | ||
582 | static const SSL_METHOD func_name##_data= { \ | ||
583 | version, \ | ||
584 | tls1_new, \ | ||
585 | tls1_clear, \ | ||
586 | tls1_free, \ | ||
587 | s_accept, \ | ||
588 | s_connect, \ | ||
589 | ssl3_read, \ | ||
590 | ssl3_peek, \ | ||
591 | ssl3_write, \ | ||
592 | ssl3_shutdown, \ | ||
593 | ssl3_renegotiate, \ | ||
594 | ssl3_renegotiate_check, \ | ||
595 | ssl3_get_message, \ | ||
596 | ssl3_read_bytes, \ | ||
597 | ssl3_write_bytes, \ | ||
598 | ssl3_dispatch_alert, \ | ||
599 | ssl3_ctrl, \ | ||
600 | ssl3_ctx_ctrl, \ | ||
601 | ssl3_get_cipher_by_char, \ | ||
602 | ssl3_put_cipher_by_char, \ | ||
603 | ssl3_pending, \ | ||
604 | ssl3_num_ciphers, \ | ||
605 | ssl3_get_cipher, \ | ||
606 | s_get_meth, \ | ||
607 | tls1_default_timeout, \ | ||
608 | &TLSv1_enc_data, \ | ||
609 | ssl_undefined_void_function, \ | ||
610 | ssl3_callback_ctrl, \ | ||
611 | ssl3_ctx_callback_ctrl, \ | ||
612 | }; \ | ||
613 | return &func_name##_data; \ | ||
614 | } | ||
615 | |||
616 | #define IMPLEMENT_ssl3_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
617 | const SSL_METHOD *func_name(void) \ | ||
618 | { \ | ||
619 | static const SSL_METHOD func_name##_data= { \ | ||
620 | SSL3_VERSION, \ | ||
621 | ssl3_new, \ | ||
622 | ssl3_clear, \ | ||
623 | ssl3_free, \ | ||
624 | s_accept, \ | ||
625 | s_connect, \ | ||
626 | ssl3_read, \ | ||
627 | ssl3_peek, \ | ||
628 | ssl3_write, \ | ||
629 | ssl3_shutdown, \ | ||
630 | ssl3_renegotiate, \ | ||
631 | ssl3_renegotiate_check, \ | ||
632 | ssl3_get_message, \ | ||
633 | ssl3_read_bytes, \ | ||
634 | ssl3_write_bytes, \ | ||
635 | ssl3_dispatch_alert, \ | ||
636 | ssl3_ctrl, \ | ||
637 | ssl3_ctx_ctrl, \ | ||
638 | ssl3_get_cipher_by_char, \ | ||
639 | ssl3_put_cipher_by_char, \ | ||
640 | ssl3_pending, \ | ||
641 | ssl3_num_ciphers, \ | ||
642 | ssl3_get_cipher, \ | ||
643 | s_get_meth, \ | ||
644 | ssl3_default_timeout, \ | ||
645 | &SSLv3_enc_data, \ | ||
646 | ssl_undefined_void_function, \ | ||
647 | ssl3_callback_ctrl, \ | ||
648 | ssl3_ctx_callback_ctrl, \ | ||
649 | }; \ | ||
650 | return &func_name##_data; \ | ||
651 | } | ||
652 | |||
653 | #define IMPLEMENT_ssl23_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
654 | const SSL_METHOD *func_name(void) \ | ||
655 | { \ | ||
656 | static const SSL_METHOD func_name##_data= { \ | ||
657 | TLS1_2_VERSION, \ | ||
658 | tls1_new, \ | ||
659 | tls1_clear, \ | ||
660 | tls1_free, \ | ||
661 | s_accept, \ | ||
662 | s_connect, \ | ||
663 | ssl23_read, \ | ||
664 | ssl23_peek, \ | ||
665 | ssl23_write, \ | ||
666 | ssl_undefined_function, \ | ||
667 | ssl_undefined_function, \ | ||
668 | ssl_ok, \ | ||
669 | ssl3_get_message, \ | ||
670 | ssl3_read_bytes, \ | ||
671 | ssl3_write_bytes, \ | ||
672 | ssl3_dispatch_alert, \ | ||
673 | ssl3_ctrl, \ | ||
674 | ssl3_ctx_ctrl, \ | ||
675 | ssl23_get_cipher_by_char, \ | ||
676 | ssl23_put_cipher_by_char, \ | ||
677 | ssl_undefined_const_function, \ | ||
678 | ssl23_num_ciphers, \ | ||
679 | ssl23_get_cipher, \ | ||
680 | s_get_meth, \ | ||
681 | ssl23_default_timeout, \ | ||
682 | &ssl3_undef_enc_method, \ | ||
683 | ssl_undefined_void_function, \ | ||
684 | ssl3_callback_ctrl, \ | ||
685 | ssl3_ctx_callback_ctrl, \ | ||
686 | }; \ | ||
687 | return &func_name##_data; \ | ||
688 | } | ||
689 | |||
690 | #define IMPLEMENT_dtls1_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
691 | const SSL_METHOD *func_name(void) \ | ||
692 | { \ | ||
693 | static const SSL_METHOD func_name##_data= { \ | ||
694 | DTLS1_VERSION, \ | ||
695 | dtls1_new, \ | ||
696 | dtls1_clear, \ | ||
697 | dtls1_free, \ | ||
698 | s_accept, \ | ||
699 | s_connect, \ | ||
700 | ssl3_read, \ | ||
701 | ssl3_peek, \ | ||
702 | ssl3_write, \ | ||
703 | dtls1_shutdown, \ | ||
704 | ssl3_renegotiate, \ | ||
705 | ssl3_renegotiate_check, \ | ||
706 | dtls1_get_message, \ | ||
707 | dtls1_read_bytes, \ | ||
708 | dtls1_write_app_data_bytes, \ | ||
709 | dtls1_dispatch_alert, \ | ||
710 | dtls1_ctrl, \ | ||
711 | ssl3_ctx_ctrl, \ | ||
712 | ssl3_get_cipher_by_char, \ | ||
713 | ssl3_put_cipher_by_char, \ | ||
714 | ssl3_pending, \ | ||
715 | ssl3_num_ciphers, \ | ||
716 | dtls1_get_cipher, \ | ||
717 | s_get_meth, \ | ||
718 | dtls1_default_timeout, \ | ||
719 | &DTLSv1_enc_data, \ | ||
720 | ssl_undefined_void_function, \ | ||
721 | ssl3_callback_ctrl, \ | ||
722 | ssl3_ctx_callback_ctrl, \ | ||
723 | }; \ | ||
724 | return &func_name##_data; \ | ||
725 | } | ||
726 | |||
727 | void ssl_clear_cipher_ctx(SSL *s); | 578 | void ssl_clear_cipher_ctx(SSL *s); |
728 | int ssl_clear_bad_session(SSL *s); | 579 | int ssl_clear_bad_session(SSL *s); |
729 | CERT *ssl_cert_new(void); | 580 | CERT *ssl_cert_new(void); |
@@ -926,8 +777,6 @@ int dtls1_send_server_key_exchange(SSL *s); | |||
926 | int dtls1_send_certificate_request(SSL *s); | 777 | int dtls1_send_certificate_request(SSL *s); |
927 | int dtls1_send_server_done(SSL *s); | 778 | int dtls1_send_server_done(SSL *s); |
928 | 779 | ||
929 | |||
930 | |||
931 | int ssl23_accept(SSL *s); | 780 | int ssl23_accept(SSL *s); |
932 | int ssl23_connect(SSL *s); | 781 | int ssl23_connect(SSL *s); |
933 | int ssl23_read_bytes(SSL *s, int n); | 782 | int ssl23_read_bytes(SSL *s, int n); |
@@ -940,8 +789,8 @@ long tls1_ctrl(SSL *s, int cmd, long larg, void *parg); | |||
940 | long tls1_callback_ctrl(SSL *s, int cmd, void (*fp)(void)); | 789 | long tls1_callback_ctrl(SSL *s, int cmd, void (*fp)(void)); |
941 | 790 | ||
942 | int dtls1_new(SSL *s); | 791 | int dtls1_new(SSL *s); |
943 | int dtls1_accept(SSL *s); | 792 | int dtls1_accept(SSL *s); |
944 | int dtls1_connect(SSL *s); | 793 | int dtls1_connect(SSL *s); |
945 | void dtls1_free(SSL *s); | 794 | void dtls1_free(SSL *s); |
946 | void dtls1_clear(SSL *s); | 795 | void dtls1_clear(SSL *s); |
947 | long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg); | 796 | long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg); |
diff --git a/src/lib/libssl/src/ssl/t1_clnt.c b/src/lib/libssl/src/ssl/t1_clnt.c index 180843c1f5..2223422d93 100644 --- a/src/lib/libssl/src/ssl/t1_clnt.c +++ b/src/lib/libssl/src/ssl/t1_clnt.c | |||
@@ -65,6 +65,120 @@ | |||
65 | 65 | ||
66 | static const SSL_METHOD *tls1_get_client_method(int ver); | 66 | static const SSL_METHOD *tls1_get_client_method(int ver); |
67 | 67 | ||
68 | const SSL_METHOD TLSv1_client_method_data = { | ||
69 | .version = TLS1_VERSION, | ||
70 | .ssl_new = tls1_new, | ||
71 | .ssl_clear = tls1_clear, | ||
72 | .ssl_free = tls1_free, | ||
73 | .ssl_accept = ssl_undefined_function, | ||
74 | .ssl_connect = ssl3_connect, | ||
75 | .ssl_read = ssl3_read, | ||
76 | .ssl_peek = ssl3_peek, | ||
77 | .ssl_write = ssl3_write, | ||
78 | .ssl_shutdown = ssl3_shutdown, | ||
79 | .ssl_renegotiate = ssl3_renegotiate, | ||
80 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
81 | .ssl_get_message = ssl3_get_message, | ||
82 | .ssl_read_bytes = ssl3_read_bytes, | ||
83 | .ssl_write_bytes = ssl3_write_bytes, | ||
84 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
85 | .ssl_ctrl = ssl3_ctrl, | ||
86 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
87 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
88 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
89 | .ssl_pending = ssl3_pending, | ||
90 | .num_ciphers = ssl3_num_ciphers, | ||
91 | .get_cipher = ssl3_get_cipher, | ||
92 | .get_ssl_method = tls1_get_client_method, | ||
93 | .get_timeout = tls1_default_timeout, | ||
94 | .ssl3_enc = &TLSv1_enc_data, | ||
95 | .ssl_version = ssl_undefined_void_function, | ||
96 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
97 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
98 | }; | ||
99 | |||
100 | const SSL_METHOD TLSv1_1_client_method_data = { | ||
101 | .version = TLS1_1_VERSION, | ||
102 | .ssl_new = tls1_new, | ||
103 | .ssl_clear = tls1_clear, | ||
104 | .ssl_free = tls1_free, | ||
105 | .ssl_accept = ssl_undefined_function, | ||
106 | .ssl_connect = ssl3_connect, | ||
107 | .ssl_read = ssl3_read, | ||
108 | .ssl_peek = ssl3_peek, | ||
109 | .ssl_write = ssl3_write, | ||
110 | .ssl_shutdown = ssl3_shutdown, | ||
111 | .ssl_renegotiate = ssl3_renegotiate, | ||
112 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
113 | .ssl_get_message = ssl3_get_message, | ||
114 | .ssl_read_bytes = ssl3_read_bytes, | ||
115 | .ssl_write_bytes = ssl3_write_bytes, | ||
116 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
117 | .ssl_ctrl = ssl3_ctrl, | ||
118 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
119 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
120 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
121 | .ssl_pending = ssl3_pending, | ||
122 | .num_ciphers = ssl3_num_ciphers, | ||
123 | .get_cipher = ssl3_get_cipher, | ||
124 | .get_ssl_method = tls1_get_client_method, | ||
125 | .get_timeout = tls1_default_timeout, | ||
126 | .ssl3_enc = &TLSv1_enc_data, | ||
127 | .ssl_version = ssl_undefined_void_function, | ||
128 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
129 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
130 | }; | ||
131 | |||
132 | const SSL_METHOD TLSv1_2_client_method_data = { | ||
133 | .version = TLS1_2_VERSION, | ||
134 | .ssl_new = tls1_new, | ||
135 | .ssl_clear = tls1_clear, | ||
136 | .ssl_free = tls1_free, | ||
137 | .ssl_accept = ssl_undefined_function, | ||
138 | .ssl_connect = ssl3_connect, | ||
139 | .ssl_read = ssl3_read, | ||
140 | .ssl_peek = ssl3_peek, | ||
141 | .ssl_write = ssl3_write, | ||
142 | .ssl_shutdown = ssl3_shutdown, | ||
143 | .ssl_renegotiate = ssl3_renegotiate, | ||
144 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
145 | .ssl_get_message = ssl3_get_message, | ||
146 | .ssl_read_bytes = ssl3_read_bytes, | ||
147 | .ssl_write_bytes = ssl3_write_bytes, | ||
148 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
149 | .ssl_ctrl = ssl3_ctrl, | ||
150 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
151 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
152 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
153 | .ssl_pending = ssl3_pending, | ||
154 | .num_ciphers = ssl3_num_ciphers, | ||
155 | .get_cipher = ssl3_get_cipher, | ||
156 | .get_ssl_method = tls1_get_client_method, | ||
157 | .get_timeout = tls1_default_timeout, | ||
158 | .ssl3_enc = &TLSv1_enc_data, | ||
159 | .ssl_version = ssl_undefined_void_function, | ||
160 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
161 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
162 | }; | ||
163 | |||
164 | const SSL_METHOD * | ||
165 | TLSv1_client_method(void) | ||
166 | { | ||
167 | return &TLSv1_client_method_data; | ||
168 | } | ||
169 | |||
170 | const SSL_METHOD * | ||
171 | TLSv1_1_client_method(void) | ||
172 | { | ||
173 | return &TLSv1_1_client_method_data; | ||
174 | } | ||
175 | |||
176 | const SSL_METHOD * | ||
177 | TLSv1_2_client_method(void) | ||
178 | { | ||
179 | return &TLSv1_2_client_method_data; | ||
180 | } | ||
181 | |||
68 | static const SSL_METHOD * | 182 | static const SSL_METHOD * |
69 | tls1_get_client_method(int ver) | 183 | tls1_get_client_method(int ver) |
70 | { | 184 | { |
@@ -76,12 +190,3 @@ tls1_get_client_method(int ver) | |||
76 | return (TLSv1_client_method()); | 190 | return (TLSv1_client_method()); |
77 | return (NULL); | 191 | return (NULL); |
78 | } | 192 | } |
79 | |||
80 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_client_method, | ||
81 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
82 | |||
83 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_client_method, | ||
84 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
85 | |||
86 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_client_method, | ||
87 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
diff --git a/src/lib/libssl/src/ssl/t1_meth.c b/src/lib/libssl/src/ssl/t1_meth.c index 49fe9624a2..b39303b369 100644 --- a/src/lib/libssl/src/ssl/t1_meth.c +++ b/src/lib/libssl/src/ssl/t1_meth.c | |||
@@ -60,6 +60,122 @@ | |||
60 | #include <openssl/objects.h> | 60 | #include <openssl/objects.h> |
61 | #include "ssl_locl.h" | 61 | #include "ssl_locl.h" |
62 | 62 | ||
63 | static const SSL_METHOD *tls1_get_method(int ver); | ||
64 | |||
65 | const SSL_METHOD TLSv1_method_data = { | ||
66 | .version = TLS1_VERSION, | ||
67 | .ssl_new = tls1_new, | ||
68 | .ssl_clear = tls1_clear, | ||
69 | .ssl_free = tls1_free, | ||
70 | .ssl_accept = ssl3_accept, | ||
71 | .ssl_connect = ssl3_connect, | ||
72 | .ssl_read = ssl3_read, | ||
73 | .ssl_peek = ssl3_peek, | ||
74 | .ssl_write = ssl3_write, | ||
75 | .ssl_shutdown = ssl3_shutdown, | ||
76 | .ssl_renegotiate = ssl3_renegotiate, | ||
77 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
78 | .ssl_get_message = ssl3_get_message, | ||
79 | .ssl_read_bytes = ssl3_read_bytes, | ||
80 | .ssl_write_bytes = ssl3_write_bytes, | ||
81 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
82 | .ssl_ctrl = ssl3_ctrl, | ||
83 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
84 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
85 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
86 | .ssl_pending = ssl3_pending, | ||
87 | .num_ciphers = ssl3_num_ciphers, | ||
88 | .get_cipher = ssl3_get_cipher, | ||
89 | .get_ssl_method = tls1_get_method, | ||
90 | .get_timeout = tls1_default_timeout, | ||
91 | .ssl3_enc = &TLSv1_enc_data, | ||
92 | .ssl_version = ssl_undefined_void_function, | ||
93 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
94 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
95 | }; | ||
96 | |||
97 | const SSL_METHOD TLSv1_1_method_data = { | ||
98 | .version = TLS1_1_VERSION, | ||
99 | .ssl_new = tls1_new, | ||
100 | .ssl_clear = tls1_clear, | ||
101 | .ssl_free = tls1_free, | ||
102 | .ssl_accept = ssl3_accept, | ||
103 | .ssl_connect = ssl3_connect, | ||
104 | .ssl_read = ssl3_read, | ||
105 | .ssl_peek = ssl3_peek, | ||
106 | .ssl_write = ssl3_write, | ||
107 | .ssl_shutdown = ssl3_shutdown, | ||
108 | .ssl_renegotiate = ssl3_renegotiate, | ||
109 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
110 | .ssl_get_message = ssl3_get_message, | ||
111 | .ssl_read_bytes = ssl3_read_bytes, | ||
112 | .ssl_write_bytes = ssl3_write_bytes, | ||
113 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
114 | .ssl_ctrl = ssl3_ctrl, | ||
115 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
116 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
117 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
118 | .ssl_pending = ssl3_pending, | ||
119 | .num_ciphers = ssl3_num_ciphers, | ||
120 | .get_cipher = ssl3_get_cipher, | ||
121 | .get_ssl_method = tls1_get_method, | ||
122 | .get_timeout = tls1_default_timeout, | ||
123 | .ssl3_enc = &TLSv1_enc_data, | ||
124 | .ssl_version = ssl_undefined_void_function, | ||
125 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
126 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
127 | }; | ||
128 | |||
129 | const SSL_METHOD TLSv1_2_method_data = { | ||
130 | .version = TLS1_2_VERSION, | ||
131 | .ssl_new = tls1_new, | ||
132 | .ssl_clear = tls1_clear, | ||
133 | .ssl_free = tls1_free, | ||
134 | .ssl_accept = ssl3_accept, | ||
135 | .ssl_connect = ssl3_connect, | ||
136 | .ssl_read = ssl3_read, | ||
137 | .ssl_peek = ssl3_peek, | ||
138 | .ssl_write = ssl3_write, | ||
139 | .ssl_shutdown = ssl3_shutdown, | ||
140 | .ssl_renegotiate = ssl3_renegotiate, | ||
141 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
142 | .ssl_get_message = ssl3_get_message, | ||
143 | .ssl_read_bytes = ssl3_read_bytes, | ||
144 | .ssl_write_bytes = ssl3_write_bytes, | ||
145 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
146 | .ssl_ctrl = ssl3_ctrl, | ||
147 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
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, | ||
152 | .get_cipher = ssl3_get_cipher, | ||
153 | .get_ssl_method = tls1_get_method, | ||
154 | .get_timeout = tls1_default_timeout, | ||
155 | .ssl3_enc = &TLSv1_enc_data, | ||
156 | .ssl_version = ssl_undefined_void_function, | ||
157 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
158 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
159 | }; | ||
160 | |||
161 | const SSL_METHOD * | ||
162 | TLSv1_method(void) | ||
163 | { | ||
164 | return &TLSv1_method_data; | ||
165 | } | ||
166 | |||
167 | const SSL_METHOD * | ||
168 | TLSv1_1_method(void) | ||
169 | { | ||
170 | return &TLSv1_1_method_data; | ||
171 | } | ||
172 | |||
173 | const SSL_METHOD * | ||
174 | TLSv1_2_method(void) | ||
175 | { | ||
176 | return &TLSv1_2_method_data; | ||
177 | } | ||
178 | |||
63 | static const SSL_METHOD * | 179 | static const SSL_METHOD * |
64 | tls1_get_method(int ver) | 180 | tls1_get_method(int ver) |
65 | { | 181 | { |
@@ -71,12 +187,3 @@ tls1_get_method(int ver) | |||
71 | return (TLSv1_method()); | 187 | return (TLSv1_method()); |
72 | return (NULL); | 188 | return (NULL); |
73 | } | 189 | } |
74 | |||
75 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_method, | ||
76 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
77 | |||
78 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_method, | ||
79 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
80 | |||
81 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_method, | ||
82 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
diff --git a/src/lib/libssl/src/ssl/t1_srvr.c b/src/lib/libssl/src/ssl/t1_srvr.c index 01220072f1..d38afc5a21 100644 --- a/src/lib/libssl/src/ssl/t1_srvr.c +++ b/src/lib/libssl/src/ssl/t1_srvr.c | |||
@@ -66,6 +66,120 @@ | |||
66 | 66 | ||
67 | static const SSL_METHOD *tls1_get_server_method(int ver); | 67 | static const SSL_METHOD *tls1_get_server_method(int ver); |
68 | 68 | ||
69 | const SSL_METHOD TLSv1_server_method_data = { | ||
70 | .version = TLS1_VERSION, | ||
71 | .ssl_new = tls1_new, | ||
72 | .ssl_clear = tls1_clear, | ||
73 | .ssl_free = tls1_free, | ||
74 | .ssl_accept = ssl3_accept, | ||
75 | .ssl_connect = ssl_undefined_function, | ||
76 | .ssl_read = ssl3_read, | ||
77 | .ssl_peek = ssl3_peek, | ||
78 | .ssl_write = ssl3_write, | ||
79 | .ssl_shutdown = ssl3_shutdown, | ||
80 | .ssl_renegotiate = ssl3_renegotiate, | ||
81 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
82 | .ssl_get_message = ssl3_get_message, | ||
83 | .ssl_read_bytes = ssl3_read_bytes, | ||
84 | .ssl_write_bytes = ssl3_write_bytes, | ||
85 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
86 | .ssl_ctrl = ssl3_ctrl, | ||
87 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
88 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
89 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
90 | .ssl_pending = ssl3_pending, | ||
91 | .num_ciphers = ssl3_num_ciphers, | ||
92 | .get_cipher = ssl3_get_cipher, | ||
93 | .get_ssl_method = tls1_get_server_method, | ||
94 | .get_timeout = tls1_default_timeout, | ||
95 | .ssl3_enc = &TLSv1_enc_data, | ||
96 | .ssl_version = ssl_undefined_void_function, | ||
97 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
98 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
99 | }; | ||
100 | |||
101 | const SSL_METHOD TLSv1_1_server_method_data = { | ||
102 | .version = TLS1_1_VERSION, | ||
103 | .ssl_new = tls1_new, | ||
104 | .ssl_clear = tls1_clear, | ||
105 | .ssl_free = tls1_free, | ||
106 | .ssl_accept = ssl3_accept, | ||
107 | .ssl_connect = ssl_undefined_function, | ||
108 | .ssl_read = ssl3_read, | ||
109 | .ssl_peek = ssl3_peek, | ||
110 | .ssl_write = ssl3_write, | ||
111 | .ssl_shutdown = ssl3_shutdown, | ||
112 | .ssl_renegotiate = ssl3_renegotiate, | ||
113 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
114 | .ssl_get_message = ssl3_get_message, | ||
115 | .ssl_read_bytes = ssl3_read_bytes, | ||
116 | .ssl_write_bytes = ssl3_write_bytes, | ||
117 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
118 | .ssl_ctrl = ssl3_ctrl, | ||
119 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
120 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
121 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
122 | .ssl_pending = ssl3_pending, | ||
123 | .num_ciphers = ssl3_num_ciphers, | ||
124 | .get_cipher = ssl3_get_cipher, | ||
125 | .get_ssl_method = tls1_get_server_method, | ||
126 | .get_timeout = tls1_default_timeout, | ||
127 | .ssl3_enc = &TLSv1_enc_data, | ||
128 | .ssl_version = ssl_undefined_void_function, | ||
129 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
130 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
131 | }; | ||
132 | |||
133 | const SSL_METHOD TLSv1_2_server_method_data = { | ||
134 | .version = TLS1_2_VERSION, | ||
135 | .ssl_new = tls1_new, | ||
136 | .ssl_clear = tls1_clear, | ||
137 | .ssl_free = tls1_free, | ||
138 | .ssl_accept = ssl3_accept, | ||
139 | .ssl_connect = ssl_undefined_function, | ||
140 | .ssl_read = ssl3_read, | ||
141 | .ssl_peek = ssl3_peek, | ||
142 | .ssl_write = ssl3_write, | ||
143 | .ssl_shutdown = ssl3_shutdown, | ||
144 | .ssl_renegotiate = ssl3_renegotiate, | ||
145 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
146 | .ssl_get_message = ssl3_get_message, | ||
147 | .ssl_read_bytes = ssl3_read_bytes, | ||
148 | .ssl_write_bytes = ssl3_write_bytes, | ||
149 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
150 | .ssl_ctrl = ssl3_ctrl, | ||
151 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
152 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
153 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
154 | .ssl_pending = ssl3_pending, | ||
155 | .num_ciphers = ssl3_num_ciphers, | ||
156 | .get_cipher = ssl3_get_cipher, | ||
157 | .get_ssl_method = tls1_get_server_method, | ||
158 | .get_timeout = tls1_default_timeout, | ||
159 | .ssl3_enc = &TLSv1_enc_data, | ||
160 | .ssl_version = ssl_undefined_void_function, | ||
161 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
162 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
163 | }; | ||
164 | |||
165 | const SSL_METHOD * | ||
166 | TLSv1_server_method(void) | ||
167 | { | ||
168 | return &TLSv1_server_method_data; | ||
169 | } | ||
170 | |||
171 | const SSL_METHOD * | ||
172 | TLSv1_1_server_method(void) | ||
173 | { | ||
174 | return &TLSv1_1_server_method_data; | ||
175 | } | ||
176 | |||
177 | const SSL_METHOD * | ||
178 | TLSv1_2_server_method(void) | ||
179 | { | ||
180 | return &TLSv1_2_server_method_data; | ||
181 | } | ||
182 | |||
69 | static const SSL_METHOD * | 183 | static const SSL_METHOD * |
70 | tls1_get_server_method(int ver) | 184 | tls1_get_server_method(int ver) |
71 | { | 185 | { |
@@ -77,12 +191,3 @@ tls1_get_server_method(int ver) | |||
77 | return (TLSv1_server_method()); | 191 | return (TLSv1_server_method()); |
78 | return (NULL); | 192 | return (NULL); |
79 | } | 193 | } |
80 | |||
81 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_server_method, | ||
82 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||
83 | |||
84 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_server_method, | ||
85 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||
86 | |||
87 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_server_method, | ||
88 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||
diff --git a/src/lib/libssl/ssl_locl.h b/src/lib/libssl/ssl_locl.h index fc9d6a1027..3a4656ef62 100644 --- a/src/lib/libssl/ssl_locl.h +++ b/src/lib/libssl/ssl_locl.h | |||
@@ -575,155 +575,6 @@ extern SSL3_ENC_METHOD DTLSv1_enc_data; | |||
575 | 575 | ||
576 | #define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION) | 576 | #define SSL_IS_DTLS(s) (s->method->version == DTLS1_VERSION) |
577 | 577 | ||
578 | #define IMPLEMENT_tls_meth_func(version, func_name, s_accept, s_connect, \ | ||
579 | s_get_meth) \ | ||
580 | const SSL_METHOD *func_name(void) \ | ||
581 | { \ | ||
582 | static const SSL_METHOD func_name##_data= { \ | ||
583 | version, \ | ||
584 | tls1_new, \ | ||
585 | tls1_clear, \ | ||
586 | tls1_free, \ | ||
587 | s_accept, \ | ||
588 | s_connect, \ | ||
589 | ssl3_read, \ | ||
590 | ssl3_peek, \ | ||
591 | ssl3_write, \ | ||
592 | ssl3_shutdown, \ | ||
593 | ssl3_renegotiate, \ | ||
594 | ssl3_renegotiate_check, \ | ||
595 | ssl3_get_message, \ | ||
596 | ssl3_read_bytes, \ | ||
597 | ssl3_write_bytes, \ | ||
598 | ssl3_dispatch_alert, \ | ||
599 | ssl3_ctrl, \ | ||
600 | ssl3_ctx_ctrl, \ | ||
601 | ssl3_get_cipher_by_char, \ | ||
602 | ssl3_put_cipher_by_char, \ | ||
603 | ssl3_pending, \ | ||
604 | ssl3_num_ciphers, \ | ||
605 | ssl3_get_cipher, \ | ||
606 | s_get_meth, \ | ||
607 | tls1_default_timeout, \ | ||
608 | &TLSv1_enc_data, \ | ||
609 | ssl_undefined_void_function, \ | ||
610 | ssl3_callback_ctrl, \ | ||
611 | ssl3_ctx_callback_ctrl, \ | ||
612 | }; \ | ||
613 | return &func_name##_data; \ | ||
614 | } | ||
615 | |||
616 | #define IMPLEMENT_ssl3_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
617 | const SSL_METHOD *func_name(void) \ | ||
618 | { \ | ||
619 | static const SSL_METHOD func_name##_data= { \ | ||
620 | SSL3_VERSION, \ | ||
621 | ssl3_new, \ | ||
622 | ssl3_clear, \ | ||
623 | ssl3_free, \ | ||
624 | s_accept, \ | ||
625 | s_connect, \ | ||
626 | ssl3_read, \ | ||
627 | ssl3_peek, \ | ||
628 | ssl3_write, \ | ||
629 | ssl3_shutdown, \ | ||
630 | ssl3_renegotiate, \ | ||
631 | ssl3_renegotiate_check, \ | ||
632 | ssl3_get_message, \ | ||
633 | ssl3_read_bytes, \ | ||
634 | ssl3_write_bytes, \ | ||
635 | ssl3_dispatch_alert, \ | ||
636 | ssl3_ctrl, \ | ||
637 | ssl3_ctx_ctrl, \ | ||
638 | ssl3_get_cipher_by_char, \ | ||
639 | ssl3_put_cipher_by_char, \ | ||
640 | ssl3_pending, \ | ||
641 | ssl3_num_ciphers, \ | ||
642 | ssl3_get_cipher, \ | ||
643 | s_get_meth, \ | ||
644 | ssl3_default_timeout, \ | ||
645 | &SSLv3_enc_data, \ | ||
646 | ssl_undefined_void_function, \ | ||
647 | ssl3_callback_ctrl, \ | ||
648 | ssl3_ctx_callback_ctrl, \ | ||
649 | }; \ | ||
650 | return &func_name##_data; \ | ||
651 | } | ||
652 | |||
653 | #define IMPLEMENT_ssl23_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
654 | const SSL_METHOD *func_name(void) \ | ||
655 | { \ | ||
656 | static const SSL_METHOD func_name##_data= { \ | ||
657 | TLS1_2_VERSION, \ | ||
658 | tls1_new, \ | ||
659 | tls1_clear, \ | ||
660 | tls1_free, \ | ||
661 | s_accept, \ | ||
662 | s_connect, \ | ||
663 | ssl23_read, \ | ||
664 | ssl23_peek, \ | ||
665 | ssl23_write, \ | ||
666 | ssl_undefined_function, \ | ||
667 | ssl_undefined_function, \ | ||
668 | ssl_ok, \ | ||
669 | ssl3_get_message, \ | ||
670 | ssl3_read_bytes, \ | ||
671 | ssl3_write_bytes, \ | ||
672 | ssl3_dispatch_alert, \ | ||
673 | ssl3_ctrl, \ | ||
674 | ssl3_ctx_ctrl, \ | ||
675 | ssl23_get_cipher_by_char, \ | ||
676 | ssl23_put_cipher_by_char, \ | ||
677 | ssl_undefined_const_function, \ | ||
678 | ssl23_num_ciphers, \ | ||
679 | ssl23_get_cipher, \ | ||
680 | s_get_meth, \ | ||
681 | ssl23_default_timeout, \ | ||
682 | &ssl3_undef_enc_method, \ | ||
683 | ssl_undefined_void_function, \ | ||
684 | ssl3_callback_ctrl, \ | ||
685 | ssl3_ctx_callback_ctrl, \ | ||
686 | }; \ | ||
687 | return &func_name##_data; \ | ||
688 | } | ||
689 | |||
690 | #define IMPLEMENT_dtls1_meth_func(func_name, s_accept, s_connect, s_get_meth) \ | ||
691 | const SSL_METHOD *func_name(void) \ | ||
692 | { \ | ||
693 | static const SSL_METHOD func_name##_data= { \ | ||
694 | DTLS1_VERSION, \ | ||
695 | dtls1_new, \ | ||
696 | dtls1_clear, \ | ||
697 | dtls1_free, \ | ||
698 | s_accept, \ | ||
699 | s_connect, \ | ||
700 | ssl3_read, \ | ||
701 | ssl3_peek, \ | ||
702 | ssl3_write, \ | ||
703 | dtls1_shutdown, \ | ||
704 | ssl3_renegotiate, \ | ||
705 | ssl3_renegotiate_check, \ | ||
706 | dtls1_get_message, \ | ||
707 | dtls1_read_bytes, \ | ||
708 | dtls1_write_app_data_bytes, \ | ||
709 | dtls1_dispatch_alert, \ | ||
710 | dtls1_ctrl, \ | ||
711 | ssl3_ctx_ctrl, \ | ||
712 | ssl3_get_cipher_by_char, \ | ||
713 | ssl3_put_cipher_by_char, \ | ||
714 | ssl3_pending, \ | ||
715 | ssl3_num_ciphers, \ | ||
716 | dtls1_get_cipher, \ | ||
717 | s_get_meth, \ | ||
718 | dtls1_default_timeout, \ | ||
719 | &DTLSv1_enc_data, \ | ||
720 | ssl_undefined_void_function, \ | ||
721 | ssl3_callback_ctrl, \ | ||
722 | ssl3_ctx_callback_ctrl, \ | ||
723 | }; \ | ||
724 | return &func_name##_data; \ | ||
725 | } | ||
726 | |||
727 | void ssl_clear_cipher_ctx(SSL *s); | 578 | void ssl_clear_cipher_ctx(SSL *s); |
728 | int ssl_clear_bad_session(SSL *s); | 579 | int ssl_clear_bad_session(SSL *s); |
729 | CERT *ssl_cert_new(void); | 580 | CERT *ssl_cert_new(void); |
@@ -926,8 +777,6 @@ int dtls1_send_server_key_exchange(SSL *s); | |||
926 | int dtls1_send_certificate_request(SSL *s); | 777 | int dtls1_send_certificate_request(SSL *s); |
927 | int dtls1_send_server_done(SSL *s); | 778 | int dtls1_send_server_done(SSL *s); |
928 | 779 | ||
929 | |||
930 | |||
931 | int ssl23_accept(SSL *s); | 780 | int ssl23_accept(SSL *s); |
932 | int ssl23_connect(SSL *s); | 781 | int ssl23_connect(SSL *s); |
933 | int ssl23_read_bytes(SSL *s, int n); | 782 | int ssl23_read_bytes(SSL *s, int n); |
@@ -940,8 +789,8 @@ long tls1_ctrl(SSL *s, int cmd, long larg, void *parg); | |||
940 | long tls1_callback_ctrl(SSL *s, int cmd, void (*fp)(void)); | 789 | long tls1_callback_ctrl(SSL *s, int cmd, void (*fp)(void)); |
941 | 790 | ||
942 | int dtls1_new(SSL *s); | 791 | int dtls1_new(SSL *s); |
943 | int dtls1_accept(SSL *s); | 792 | int dtls1_accept(SSL *s); |
944 | int dtls1_connect(SSL *s); | 793 | int dtls1_connect(SSL *s); |
945 | void dtls1_free(SSL *s); | 794 | void dtls1_free(SSL *s); |
946 | void dtls1_clear(SSL *s); | 795 | void dtls1_clear(SSL *s); |
947 | long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg); | 796 | long dtls1_ctrl(SSL *s, int cmd, long larg, void *parg); |
diff --git a/src/lib/libssl/t1_clnt.c b/src/lib/libssl/t1_clnt.c index 180843c1f5..2223422d93 100644 --- a/src/lib/libssl/t1_clnt.c +++ b/src/lib/libssl/t1_clnt.c | |||
@@ -65,6 +65,120 @@ | |||
65 | 65 | ||
66 | static const SSL_METHOD *tls1_get_client_method(int ver); | 66 | static const SSL_METHOD *tls1_get_client_method(int ver); |
67 | 67 | ||
68 | const SSL_METHOD TLSv1_client_method_data = { | ||
69 | .version = TLS1_VERSION, | ||
70 | .ssl_new = tls1_new, | ||
71 | .ssl_clear = tls1_clear, | ||
72 | .ssl_free = tls1_free, | ||
73 | .ssl_accept = ssl_undefined_function, | ||
74 | .ssl_connect = ssl3_connect, | ||
75 | .ssl_read = ssl3_read, | ||
76 | .ssl_peek = ssl3_peek, | ||
77 | .ssl_write = ssl3_write, | ||
78 | .ssl_shutdown = ssl3_shutdown, | ||
79 | .ssl_renegotiate = ssl3_renegotiate, | ||
80 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
81 | .ssl_get_message = ssl3_get_message, | ||
82 | .ssl_read_bytes = ssl3_read_bytes, | ||
83 | .ssl_write_bytes = ssl3_write_bytes, | ||
84 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
85 | .ssl_ctrl = ssl3_ctrl, | ||
86 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
87 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
88 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
89 | .ssl_pending = ssl3_pending, | ||
90 | .num_ciphers = ssl3_num_ciphers, | ||
91 | .get_cipher = ssl3_get_cipher, | ||
92 | .get_ssl_method = tls1_get_client_method, | ||
93 | .get_timeout = tls1_default_timeout, | ||
94 | .ssl3_enc = &TLSv1_enc_data, | ||
95 | .ssl_version = ssl_undefined_void_function, | ||
96 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
97 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
98 | }; | ||
99 | |||
100 | const SSL_METHOD TLSv1_1_client_method_data = { | ||
101 | .version = TLS1_1_VERSION, | ||
102 | .ssl_new = tls1_new, | ||
103 | .ssl_clear = tls1_clear, | ||
104 | .ssl_free = tls1_free, | ||
105 | .ssl_accept = ssl_undefined_function, | ||
106 | .ssl_connect = ssl3_connect, | ||
107 | .ssl_read = ssl3_read, | ||
108 | .ssl_peek = ssl3_peek, | ||
109 | .ssl_write = ssl3_write, | ||
110 | .ssl_shutdown = ssl3_shutdown, | ||
111 | .ssl_renegotiate = ssl3_renegotiate, | ||
112 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
113 | .ssl_get_message = ssl3_get_message, | ||
114 | .ssl_read_bytes = ssl3_read_bytes, | ||
115 | .ssl_write_bytes = ssl3_write_bytes, | ||
116 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
117 | .ssl_ctrl = ssl3_ctrl, | ||
118 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
119 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
120 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
121 | .ssl_pending = ssl3_pending, | ||
122 | .num_ciphers = ssl3_num_ciphers, | ||
123 | .get_cipher = ssl3_get_cipher, | ||
124 | .get_ssl_method = tls1_get_client_method, | ||
125 | .get_timeout = tls1_default_timeout, | ||
126 | .ssl3_enc = &TLSv1_enc_data, | ||
127 | .ssl_version = ssl_undefined_void_function, | ||
128 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
129 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
130 | }; | ||
131 | |||
132 | const SSL_METHOD TLSv1_2_client_method_data = { | ||
133 | .version = TLS1_2_VERSION, | ||
134 | .ssl_new = tls1_new, | ||
135 | .ssl_clear = tls1_clear, | ||
136 | .ssl_free = tls1_free, | ||
137 | .ssl_accept = ssl_undefined_function, | ||
138 | .ssl_connect = ssl3_connect, | ||
139 | .ssl_read = ssl3_read, | ||
140 | .ssl_peek = ssl3_peek, | ||
141 | .ssl_write = ssl3_write, | ||
142 | .ssl_shutdown = ssl3_shutdown, | ||
143 | .ssl_renegotiate = ssl3_renegotiate, | ||
144 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
145 | .ssl_get_message = ssl3_get_message, | ||
146 | .ssl_read_bytes = ssl3_read_bytes, | ||
147 | .ssl_write_bytes = ssl3_write_bytes, | ||
148 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
149 | .ssl_ctrl = ssl3_ctrl, | ||
150 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
151 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
152 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
153 | .ssl_pending = ssl3_pending, | ||
154 | .num_ciphers = ssl3_num_ciphers, | ||
155 | .get_cipher = ssl3_get_cipher, | ||
156 | .get_ssl_method = tls1_get_client_method, | ||
157 | .get_timeout = tls1_default_timeout, | ||
158 | .ssl3_enc = &TLSv1_enc_data, | ||
159 | .ssl_version = ssl_undefined_void_function, | ||
160 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
161 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
162 | }; | ||
163 | |||
164 | const SSL_METHOD * | ||
165 | TLSv1_client_method(void) | ||
166 | { | ||
167 | return &TLSv1_client_method_data; | ||
168 | } | ||
169 | |||
170 | const SSL_METHOD * | ||
171 | TLSv1_1_client_method(void) | ||
172 | { | ||
173 | return &TLSv1_1_client_method_data; | ||
174 | } | ||
175 | |||
176 | const SSL_METHOD * | ||
177 | TLSv1_2_client_method(void) | ||
178 | { | ||
179 | return &TLSv1_2_client_method_data; | ||
180 | } | ||
181 | |||
68 | static const SSL_METHOD * | 182 | static const SSL_METHOD * |
69 | tls1_get_client_method(int ver) | 183 | tls1_get_client_method(int ver) |
70 | { | 184 | { |
@@ -76,12 +190,3 @@ tls1_get_client_method(int ver) | |||
76 | return (TLSv1_client_method()); | 190 | return (TLSv1_client_method()); |
77 | return (NULL); | 191 | return (NULL); |
78 | } | 192 | } |
79 | |||
80 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_client_method, | ||
81 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
82 | |||
83 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_client_method, | ||
84 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
85 | |||
86 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_client_method, | ||
87 | ssl_undefined_function, ssl3_connect, tls1_get_client_method) | ||
diff --git a/src/lib/libssl/t1_meth.c b/src/lib/libssl/t1_meth.c index 49fe9624a2..b39303b369 100644 --- a/src/lib/libssl/t1_meth.c +++ b/src/lib/libssl/t1_meth.c | |||
@@ -60,6 +60,122 @@ | |||
60 | #include <openssl/objects.h> | 60 | #include <openssl/objects.h> |
61 | #include "ssl_locl.h" | 61 | #include "ssl_locl.h" |
62 | 62 | ||
63 | static const SSL_METHOD *tls1_get_method(int ver); | ||
64 | |||
65 | const SSL_METHOD TLSv1_method_data = { | ||
66 | .version = TLS1_VERSION, | ||
67 | .ssl_new = tls1_new, | ||
68 | .ssl_clear = tls1_clear, | ||
69 | .ssl_free = tls1_free, | ||
70 | .ssl_accept = ssl3_accept, | ||
71 | .ssl_connect = ssl3_connect, | ||
72 | .ssl_read = ssl3_read, | ||
73 | .ssl_peek = ssl3_peek, | ||
74 | .ssl_write = ssl3_write, | ||
75 | .ssl_shutdown = ssl3_shutdown, | ||
76 | .ssl_renegotiate = ssl3_renegotiate, | ||
77 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
78 | .ssl_get_message = ssl3_get_message, | ||
79 | .ssl_read_bytes = ssl3_read_bytes, | ||
80 | .ssl_write_bytes = ssl3_write_bytes, | ||
81 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
82 | .ssl_ctrl = ssl3_ctrl, | ||
83 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
84 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
85 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
86 | .ssl_pending = ssl3_pending, | ||
87 | .num_ciphers = ssl3_num_ciphers, | ||
88 | .get_cipher = ssl3_get_cipher, | ||
89 | .get_ssl_method = tls1_get_method, | ||
90 | .get_timeout = tls1_default_timeout, | ||
91 | .ssl3_enc = &TLSv1_enc_data, | ||
92 | .ssl_version = ssl_undefined_void_function, | ||
93 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
94 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
95 | }; | ||
96 | |||
97 | const SSL_METHOD TLSv1_1_method_data = { | ||
98 | .version = TLS1_1_VERSION, | ||
99 | .ssl_new = tls1_new, | ||
100 | .ssl_clear = tls1_clear, | ||
101 | .ssl_free = tls1_free, | ||
102 | .ssl_accept = ssl3_accept, | ||
103 | .ssl_connect = ssl3_connect, | ||
104 | .ssl_read = ssl3_read, | ||
105 | .ssl_peek = ssl3_peek, | ||
106 | .ssl_write = ssl3_write, | ||
107 | .ssl_shutdown = ssl3_shutdown, | ||
108 | .ssl_renegotiate = ssl3_renegotiate, | ||
109 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
110 | .ssl_get_message = ssl3_get_message, | ||
111 | .ssl_read_bytes = ssl3_read_bytes, | ||
112 | .ssl_write_bytes = ssl3_write_bytes, | ||
113 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
114 | .ssl_ctrl = ssl3_ctrl, | ||
115 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
116 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
117 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
118 | .ssl_pending = ssl3_pending, | ||
119 | .num_ciphers = ssl3_num_ciphers, | ||
120 | .get_cipher = ssl3_get_cipher, | ||
121 | .get_ssl_method = tls1_get_method, | ||
122 | .get_timeout = tls1_default_timeout, | ||
123 | .ssl3_enc = &TLSv1_enc_data, | ||
124 | .ssl_version = ssl_undefined_void_function, | ||
125 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
126 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
127 | }; | ||
128 | |||
129 | const SSL_METHOD TLSv1_2_method_data = { | ||
130 | .version = TLS1_2_VERSION, | ||
131 | .ssl_new = tls1_new, | ||
132 | .ssl_clear = tls1_clear, | ||
133 | .ssl_free = tls1_free, | ||
134 | .ssl_accept = ssl3_accept, | ||
135 | .ssl_connect = ssl3_connect, | ||
136 | .ssl_read = ssl3_read, | ||
137 | .ssl_peek = ssl3_peek, | ||
138 | .ssl_write = ssl3_write, | ||
139 | .ssl_shutdown = ssl3_shutdown, | ||
140 | .ssl_renegotiate = ssl3_renegotiate, | ||
141 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
142 | .ssl_get_message = ssl3_get_message, | ||
143 | .ssl_read_bytes = ssl3_read_bytes, | ||
144 | .ssl_write_bytes = ssl3_write_bytes, | ||
145 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
146 | .ssl_ctrl = ssl3_ctrl, | ||
147 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
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, | ||
152 | .get_cipher = ssl3_get_cipher, | ||
153 | .get_ssl_method = tls1_get_method, | ||
154 | .get_timeout = tls1_default_timeout, | ||
155 | .ssl3_enc = &TLSv1_enc_data, | ||
156 | .ssl_version = ssl_undefined_void_function, | ||
157 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
158 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
159 | }; | ||
160 | |||
161 | const SSL_METHOD * | ||
162 | TLSv1_method(void) | ||
163 | { | ||
164 | return &TLSv1_method_data; | ||
165 | } | ||
166 | |||
167 | const SSL_METHOD * | ||
168 | TLSv1_1_method(void) | ||
169 | { | ||
170 | return &TLSv1_1_method_data; | ||
171 | } | ||
172 | |||
173 | const SSL_METHOD * | ||
174 | TLSv1_2_method(void) | ||
175 | { | ||
176 | return &TLSv1_2_method_data; | ||
177 | } | ||
178 | |||
63 | static const SSL_METHOD * | 179 | static const SSL_METHOD * |
64 | tls1_get_method(int ver) | 180 | tls1_get_method(int ver) |
65 | { | 181 | { |
@@ -71,12 +187,3 @@ tls1_get_method(int ver) | |||
71 | return (TLSv1_method()); | 187 | return (TLSv1_method()); |
72 | return (NULL); | 188 | return (NULL); |
73 | } | 189 | } |
74 | |||
75 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_method, | ||
76 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
77 | |||
78 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_method, | ||
79 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
80 | |||
81 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_method, | ||
82 | ssl3_accept, ssl3_connect, tls1_get_method) | ||
diff --git a/src/lib/libssl/t1_srvr.c b/src/lib/libssl/t1_srvr.c index 01220072f1..d38afc5a21 100644 --- a/src/lib/libssl/t1_srvr.c +++ b/src/lib/libssl/t1_srvr.c | |||
@@ -66,6 +66,120 @@ | |||
66 | 66 | ||
67 | static const SSL_METHOD *tls1_get_server_method(int ver); | 67 | static const SSL_METHOD *tls1_get_server_method(int ver); |
68 | 68 | ||
69 | const SSL_METHOD TLSv1_server_method_data = { | ||
70 | .version = TLS1_VERSION, | ||
71 | .ssl_new = tls1_new, | ||
72 | .ssl_clear = tls1_clear, | ||
73 | .ssl_free = tls1_free, | ||
74 | .ssl_accept = ssl3_accept, | ||
75 | .ssl_connect = ssl_undefined_function, | ||
76 | .ssl_read = ssl3_read, | ||
77 | .ssl_peek = ssl3_peek, | ||
78 | .ssl_write = ssl3_write, | ||
79 | .ssl_shutdown = ssl3_shutdown, | ||
80 | .ssl_renegotiate = ssl3_renegotiate, | ||
81 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
82 | .ssl_get_message = ssl3_get_message, | ||
83 | .ssl_read_bytes = ssl3_read_bytes, | ||
84 | .ssl_write_bytes = ssl3_write_bytes, | ||
85 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
86 | .ssl_ctrl = ssl3_ctrl, | ||
87 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
88 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
89 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
90 | .ssl_pending = ssl3_pending, | ||
91 | .num_ciphers = ssl3_num_ciphers, | ||
92 | .get_cipher = ssl3_get_cipher, | ||
93 | .get_ssl_method = tls1_get_server_method, | ||
94 | .get_timeout = tls1_default_timeout, | ||
95 | .ssl3_enc = &TLSv1_enc_data, | ||
96 | .ssl_version = ssl_undefined_void_function, | ||
97 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
98 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
99 | }; | ||
100 | |||
101 | const SSL_METHOD TLSv1_1_server_method_data = { | ||
102 | .version = TLS1_1_VERSION, | ||
103 | .ssl_new = tls1_new, | ||
104 | .ssl_clear = tls1_clear, | ||
105 | .ssl_free = tls1_free, | ||
106 | .ssl_accept = ssl3_accept, | ||
107 | .ssl_connect = ssl_undefined_function, | ||
108 | .ssl_read = ssl3_read, | ||
109 | .ssl_peek = ssl3_peek, | ||
110 | .ssl_write = ssl3_write, | ||
111 | .ssl_shutdown = ssl3_shutdown, | ||
112 | .ssl_renegotiate = ssl3_renegotiate, | ||
113 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
114 | .ssl_get_message = ssl3_get_message, | ||
115 | .ssl_read_bytes = ssl3_read_bytes, | ||
116 | .ssl_write_bytes = ssl3_write_bytes, | ||
117 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
118 | .ssl_ctrl = ssl3_ctrl, | ||
119 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
120 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
121 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
122 | .ssl_pending = ssl3_pending, | ||
123 | .num_ciphers = ssl3_num_ciphers, | ||
124 | .get_cipher = ssl3_get_cipher, | ||
125 | .get_ssl_method = tls1_get_server_method, | ||
126 | .get_timeout = tls1_default_timeout, | ||
127 | .ssl3_enc = &TLSv1_enc_data, | ||
128 | .ssl_version = ssl_undefined_void_function, | ||
129 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
130 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
131 | }; | ||
132 | |||
133 | const SSL_METHOD TLSv1_2_server_method_data = { | ||
134 | .version = TLS1_2_VERSION, | ||
135 | .ssl_new = tls1_new, | ||
136 | .ssl_clear = tls1_clear, | ||
137 | .ssl_free = tls1_free, | ||
138 | .ssl_accept = ssl3_accept, | ||
139 | .ssl_connect = ssl_undefined_function, | ||
140 | .ssl_read = ssl3_read, | ||
141 | .ssl_peek = ssl3_peek, | ||
142 | .ssl_write = ssl3_write, | ||
143 | .ssl_shutdown = ssl3_shutdown, | ||
144 | .ssl_renegotiate = ssl3_renegotiate, | ||
145 | .ssl_renegotiate_check = ssl3_renegotiate_check, | ||
146 | .ssl_get_message = ssl3_get_message, | ||
147 | .ssl_read_bytes = ssl3_read_bytes, | ||
148 | .ssl_write_bytes = ssl3_write_bytes, | ||
149 | .ssl_dispatch_alert = ssl3_dispatch_alert, | ||
150 | .ssl_ctrl = ssl3_ctrl, | ||
151 | .ssl_ctx_ctrl = ssl3_ctx_ctrl, | ||
152 | .get_cipher_by_char = ssl3_get_cipher_by_char, | ||
153 | .put_cipher_by_char = ssl3_put_cipher_by_char, | ||
154 | .ssl_pending = ssl3_pending, | ||
155 | .num_ciphers = ssl3_num_ciphers, | ||
156 | .get_cipher = ssl3_get_cipher, | ||
157 | .get_ssl_method = tls1_get_server_method, | ||
158 | .get_timeout = tls1_default_timeout, | ||
159 | .ssl3_enc = &TLSv1_enc_data, | ||
160 | .ssl_version = ssl_undefined_void_function, | ||
161 | .ssl_callback_ctrl = ssl3_callback_ctrl, | ||
162 | .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl, | ||
163 | }; | ||
164 | |||
165 | const SSL_METHOD * | ||
166 | TLSv1_server_method(void) | ||
167 | { | ||
168 | return &TLSv1_server_method_data; | ||
169 | } | ||
170 | |||
171 | const SSL_METHOD * | ||
172 | TLSv1_1_server_method(void) | ||
173 | { | ||
174 | return &TLSv1_1_server_method_data; | ||
175 | } | ||
176 | |||
177 | const SSL_METHOD * | ||
178 | TLSv1_2_server_method(void) | ||
179 | { | ||
180 | return &TLSv1_2_server_method_data; | ||
181 | } | ||
182 | |||
69 | static const SSL_METHOD * | 183 | static const SSL_METHOD * |
70 | tls1_get_server_method(int ver) | 184 | tls1_get_server_method(int ver) |
71 | { | 185 | { |
@@ -77,12 +191,3 @@ tls1_get_server_method(int ver) | |||
77 | return (TLSv1_server_method()); | 191 | return (TLSv1_server_method()); |
78 | return (NULL); | 192 | return (NULL); |
79 | } | 193 | } |
80 | |||
81 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_server_method, | ||
82 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||
83 | |||
84 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_server_method, | ||
85 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||
86 | |||
87 | IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_server_method, | ||
88 | ssl3_accept, ssl_undefined_function, tls1_get_server_method) | ||