]>
Commit | Line | Data |
---|---|---|
846e33c7 RS |
1 | /* |
2 | * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved. | |
8ba708e5 | 3 | * |
846e33c7 RS |
4 | * Licensed under the OpenSSL license (the "License"). You may not use |
5 | * this file except in compliance with the License. You can obtain a copy | |
6 | * in the file LICENSE in the source distribution or at | |
7 | * https://www.openssl.org/source/license.html | |
8ba708e5 | 8 | */ |
2b8fa1d5 | 9 | |
8ba708e5 MC |
10 | #include <stdio.h> |
11 | #include <openssl/objects.h> | |
12 | #include "ssl_locl.h" | |
13 | ||
14 | /* | |
15 | * TLS/SSLv3 methods | |
16 | */ | |
17 | ||
4fa52141 VD |
18 | IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, |
19 | TLS_method, | |
fe3a3291 | 20 | ossl_statem_accept, |
ccae4a15 | 21 | ossl_statem_connect, TLSv1_2_enc_data) |
8ba708e5 | 22 | |
6b01bed2 | 23 | #ifndef OPENSSL_NO_TLS1_2_METHOD |
4fa52141 | 24 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, |
2b8fa1d5 | 25 | tlsv1_2_method, |
fe3a3291 | 26 | ossl_statem_accept, |
ccae4a15 | 27 | ossl_statem_connect, TLSv1_2_enc_data) |
6b01bed2 | 28 | #endif |
8ba708e5 | 29 | |
6b01bed2 | 30 | #ifndef OPENSSL_NO_TLS1_1_METHOD |
4fa52141 | 31 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, |
2b8fa1d5 | 32 | tlsv1_1_method, |
fe3a3291 | 33 | ossl_statem_accept, |
ccae4a15 | 34 | ossl_statem_connect, TLSv1_1_enc_data) |
6b01bed2 | 35 | #endif |
8ba708e5 | 36 | |
6b01bed2 | 37 | #ifndef OPENSSL_NO_TLS1_METHOD |
4fa52141 | 38 | IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, |
2b8fa1d5 | 39 | tlsv1_method, |
fe3a3291 | 40 | ossl_statem_accept, |
ccae4a15 | 41 | ossl_statem_connect, TLSv1_enc_data) |
6b01bed2 | 42 | #endif |
8ba708e5 MC |
43 | |
44 | #ifndef OPENSSL_NO_SSL3_METHOD | |
ccae4a15 | 45 | IMPLEMENT_ssl3_meth_func(sslv3_method, ossl_statem_accept, ossl_statem_connect) |
8ba708e5 MC |
46 | #endif |
47 | ||
48 | ||
49 | /* | |
50 | * TLS/SSLv3 server methods | |
51 | */ | |
52 | ||
4fa52141 VD |
53 | IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, |
54 | TLS_server_method, | |
fe3a3291 | 55 | ossl_statem_accept, |
8ba708e5 | 56 | ssl_undefined_function, |
ccae4a15 | 57 | TLSv1_2_enc_data) |
8ba708e5 | 58 | |
6b01bed2 | 59 | #ifndef OPENSSL_NO_TLS1_2_METHOD |
4fa52141 | 60 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, |
2b8fa1d5 | 61 | tlsv1_2_server_method, |
fe3a3291 | 62 | ossl_statem_accept, |
8ba708e5 | 63 | ssl_undefined_function, |
ccae4a15 | 64 | TLSv1_2_enc_data) |
6b01bed2 | 65 | #endif |
8ba708e5 | 66 | |
6b01bed2 | 67 | #ifndef OPENSSL_NO_TLS1_1_METHOD |
4fa52141 | 68 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, |
2b8fa1d5 | 69 | tlsv1_1_server_method, |
fe3a3291 | 70 | ossl_statem_accept, |
8ba708e5 | 71 | ssl_undefined_function, |
ccae4a15 | 72 | TLSv1_1_enc_data) |
6b01bed2 | 73 | #endif |
8ba708e5 | 74 | |
6b01bed2 | 75 | #ifndef OPENSSL_NO_TLS1_METHOD |
4fa52141 | 76 | IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, |
2b8fa1d5 | 77 | tlsv1_server_method, |
fe3a3291 | 78 | ossl_statem_accept, |
8ba708e5 | 79 | ssl_undefined_function, |
ccae4a15 | 80 | TLSv1_enc_data) |
6b01bed2 | 81 | #endif |
8ba708e5 MC |
82 | |
83 | #ifndef OPENSSL_NO_SSL3_METHOD | |
2b8fa1d5 | 84 | IMPLEMENT_ssl3_meth_func(sslv3_server_method, |
fe3a3291 | 85 | ossl_statem_accept, |
ccae4a15 | 86 | ssl_undefined_function) |
8ba708e5 MC |
87 | #endif |
88 | ||
89 | ||
90 | /* | |
91 | * TLS/SSLv3 client methods | |
92 | */ | |
93 | ||
4fa52141 VD |
94 | IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0, |
95 | TLS_client_method, | |
8ba708e5 | 96 | ssl_undefined_function, |
fe3a3291 | 97 | ossl_statem_connect, |
ccae4a15 | 98 | TLSv1_2_enc_data) |
8ba708e5 | 99 | |
6b01bed2 | 100 | #ifndef OPENSSL_NO_TLS1_2_METHOD |
4fa52141 | 101 | IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2, |
2b8fa1d5 | 102 | tlsv1_2_client_method, |
8ba708e5 | 103 | ssl_undefined_function, |
fe3a3291 | 104 | ossl_statem_connect, |
ccae4a15 | 105 | TLSv1_2_enc_data) |
6b01bed2 | 106 | #endif |
8ba708e5 | 107 | |
6b01bed2 | 108 | #ifndef OPENSSL_NO_TLS1_1_METHOD |
4fa52141 | 109 | IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1, |
2b8fa1d5 | 110 | tlsv1_1_client_method, |
8ba708e5 | 111 | ssl_undefined_function, |
fe3a3291 | 112 | ossl_statem_connect, |
ccae4a15 | 113 | TLSv1_1_enc_data) |
6b01bed2 | 114 | #endif |
8ba708e5 | 115 | |
6b01bed2 | 116 | #ifndef OPENSSL_NO_TLS1_METHOD |
4fa52141 | 117 | IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1, |
2b8fa1d5 | 118 | tlsv1_client_method, |
8ba708e5 | 119 | ssl_undefined_function, |
fe3a3291 | 120 | ossl_statem_connect, |
ccae4a15 | 121 | TLSv1_enc_data) |
6b01bed2 | 122 | #endif |
8ba708e5 MC |
123 | |
124 | #ifndef OPENSSL_NO_SSL3_METHOD | |
2b8fa1d5 | 125 | IMPLEMENT_ssl3_meth_func(sslv3_client_method, |
8ba708e5 | 126 | ssl_undefined_function, |
ccae4a15 | 127 | ossl_statem_connect) |
8ba708e5 MC |
128 | #endif |
129 | ||
130 | ||
131 | /* | |
132 | * DTLS methods | |
133 | */ | |
8ba708e5 | 134 | |
6b01bed2 | 135 | #ifndef OPENSSL_NO_DTLS1_METHOD |
4fa52141 | 136 | IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, |
2b8fa1d5 | 137 | dtlsv1_method, |
fe3a3291 MC |
138 | ossl_statem_accept, |
139 | ossl_statem_connect, | |
ccae4a15 | 140 | DTLSv1_enc_data) |
6b01bed2 | 141 | #endif |
8ba708e5 | 142 | |
6b01bed2 | 143 | #ifndef OPENSSL_NO_DTLS1_2_METHOD |
4fa52141 | 144 | IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, |
2b8fa1d5 | 145 | dtlsv1_2_method, |
fe3a3291 MC |
146 | ossl_statem_accept, |
147 | ossl_statem_connect, | |
ccae4a15 | 148 | DTLSv1_2_enc_data) |
6b01bed2 | 149 | #endif |
8ba708e5 | 150 | |
4fa52141 | 151 | IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, |
8ba708e5 | 152 | DTLS_method, |
fe3a3291 MC |
153 | ossl_statem_accept, |
154 | ossl_statem_connect, | |
ccae4a15 | 155 | DTLSv1_2_enc_data) |
8ba708e5 | 156 | |
8ba708e5 MC |
157 | /* |
158 | * DTLS server methods | |
159 | */ | |
160 | ||
6b01bed2 | 161 | #ifndef OPENSSL_NO_DTLS1_METHOD |
4fa52141 | 162 | IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, |
2b8fa1d5 | 163 | dtlsv1_server_method, |
fe3a3291 | 164 | ossl_statem_accept, |
8ba708e5 | 165 | ssl_undefined_function, |
ccae4a15 | 166 | DTLSv1_enc_data) |
6b01bed2 | 167 | #endif |
8ba708e5 | 168 | |
6b01bed2 | 169 | #ifndef OPENSSL_NO_DTLS1_2_METHOD |
4fa52141 | 170 | IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, |
2b8fa1d5 | 171 | dtlsv1_2_server_method, |
fe3a3291 | 172 | ossl_statem_accept, |
8ba708e5 | 173 | ssl_undefined_function, |
ccae4a15 | 174 | DTLSv1_2_enc_data) |
6b01bed2 | 175 | #endif |
8ba708e5 | 176 | |
4fa52141 | 177 | IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, |
8ba708e5 | 178 | DTLS_server_method, |
fe3a3291 | 179 | ossl_statem_accept, |
8ba708e5 | 180 | ssl_undefined_function, |
ccae4a15 | 181 | DTLSv1_2_enc_data) |
8ba708e5 MC |
182 | |
183 | ||
184 | /* | |
185 | * DTLS client methods | |
186 | */ | |
187 | ||
6b01bed2 | 188 | #ifndef OPENSSL_NO_DTLS1_METHOD |
4fa52141 | 189 | IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, |
2b8fa1d5 | 190 | dtlsv1_client_method, |
8ba708e5 | 191 | ssl_undefined_function, |
fe3a3291 | 192 | ossl_statem_connect, |
ccae4a15 | 193 | DTLSv1_enc_data) |
032924c4 DW |
194 | IMPLEMENT_dtls1_meth_func(DTLS1_BAD_VER, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1, |
195 | dtls_bad_ver_client_method, | |
196 | ssl_undefined_function, | |
197 | ossl_statem_connect, | |
198 | DTLSv1_enc_data) | |
6b01bed2 | 199 | #endif |
8ba708e5 | 200 | |
6b01bed2 | 201 | #ifndef OPENSSL_NO_DTLS1_2_METHOD |
4fa52141 | 202 | IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2, |
2b8fa1d5 | 203 | dtlsv1_2_client_method, |
8ba708e5 | 204 | ssl_undefined_function, |
fe3a3291 | 205 | ossl_statem_connect, |
ccae4a15 | 206 | DTLSv1_2_enc_data) |
6b01bed2 | 207 | #endif |
8ba708e5 | 208 | |
4fa52141 | 209 | IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0, |
8ba708e5 MC |
210 | DTLS_client_method, |
211 | ssl_undefined_function, | |
fe3a3291 | 212 | ossl_statem_connect, |
ccae4a15 | 213 | DTLSv1_2_enc_data) |
2b8fa1d5 KR |
214 | |
215 | #if OPENSSL_API_COMPAT < 0x10100000L | |
216 | ||
217 | # ifndef OPENSSL_NO_TLS1_2_METHOD | |
218 | const SSL_METHOD *TLSv1_2_method(void) | |
219 | { | |
220 | return tlsv1_2_method(); | |
221 | } | |
222 | ||
223 | const SSL_METHOD *TLSv1_2_server_method(void) | |
224 | { | |
225 | return tlsv1_2_server_method(); | |
226 | } | |
227 | ||
228 | const SSL_METHOD *TLSv1_2_client_method(void) | |
229 | { | |
230 | return tlsv1_2_client_method(); | |
231 | } | |
232 | # endif | |
233 | ||
234 | # ifndef OPENSSL_NO_TLS1_1_METHOD | |
235 | const SSL_METHOD *TLSv1_1_method(void) | |
236 | { | |
237 | return tlsv1_1_method(); | |
238 | } | |
239 | ||
240 | const SSL_METHOD *TLSv1_1_server_method(void) | |
241 | { | |
242 | return tlsv1_1_server_method(); | |
243 | } | |
244 | ||
245 | const SSL_METHOD *TLSv1_1_client_method(void) | |
246 | { | |
247 | return tlsv1_1_client_method(); | |
248 | } | |
249 | # endif | |
250 | ||
251 | # ifndef OPENSSL_NO_TLS1_METHOD | |
252 | const SSL_METHOD *TLSv1_method(void) | |
253 | { | |
254 | return tlsv1_method(); | |
255 | } | |
256 | ||
257 | const SSL_METHOD *TLSv1_server_method(void) | |
258 | { | |
259 | return tlsv1_server_method(); | |
260 | } | |
261 | ||
262 | const SSL_METHOD *TLSv1_client_method(void) | |
263 | { | |
264 | return tlsv1_client_method(); | |
265 | } | |
266 | # endif | |
267 | ||
268 | # ifndef OPENSSL_NO_SSL3_METHOD | |
269 | const SSL_METHOD *SSLv3_method(void) | |
270 | { | |
271 | return sslv3_method(); | |
272 | } | |
273 | ||
274 | const SSL_METHOD *SSLv3_server_method(void) | |
275 | { | |
276 | return sslv3_server_method(); | |
277 | } | |
278 | ||
279 | const SSL_METHOD *SSLv3_client_method(void) | |
280 | { | |
281 | return sslv3_client_method(); | |
282 | } | |
283 | # endif | |
284 | ||
285 | # ifndef OPENSSL_NO_DTLS1_2_METHOD | |
286 | const SSL_METHOD *DTLSv1_2_method(void) | |
287 | { | |
288 | return dtlsv1_2_method(); | |
289 | } | |
290 | ||
291 | const SSL_METHOD *DTLSv1_2_server_method(void) | |
292 | { | |
293 | return dtlsv1_2_server_method(); | |
294 | } | |
295 | ||
296 | const SSL_METHOD *DTLSv1_2_client_method(void) | |
297 | { | |
298 | return dtlsv1_2_client_method(); | |
299 | } | |
300 | # endif | |
301 | ||
302 | # ifndef OPENSSL_NO_DTLS1_METHOD | |
303 | const SSL_METHOD *DTLSv1_method(void) | |
304 | { | |
305 | return dtlsv1_method(); | |
306 | } | |
307 | ||
308 | const SSL_METHOD *DTLSv1_server_method(void) | |
309 | { | |
310 | return dtlsv1_server_method(); | |
311 | } | |
312 | ||
313 | const SSL_METHOD *DTLSv1_client_method(void) | |
314 | { | |
315 | return dtlsv1_client_method(); | |
316 | } | |
317 | # endif | |
318 | ||
319 | #endif | |
320 |