diff options
| author | jsing <> | 2014-05-24 12:44:48 +0000 |
|---|---|---|
| committer | jsing <> | 2014-05-24 12:44:48 +0000 |
| commit | 35acf0f1f2a382619fcc885d59a80f568f40e13f (patch) | |
| tree | d69c2da4faf1b7f2a4d061a5b3cf3601197a246a | |
| parent | 89055c2143280121fc5a08f40ed1fc530c84c216 (diff) | |
| download | openbsd-35acf0f1f2a382619fcc885d59a80f568f40e13f.tar.gz openbsd-35acf0f1f2a382619fcc885d59a80f568f40e13f.tar.bz2 openbsd-35acf0f1f2a382619fcc885d59a80f568f40e13f.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...)
Diffstat (limited to '')
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) | ||
