VirtualBox

source: vbox/trunk/src/libs/openssl-3.1.4/ssl/methods.c@ 104031

Last change on this file since 104031 was 102863, checked in by vboxsync, 11 months ago

openssl-3.1.4: Applied and adjusted our OpenSSL changes to 3.1.3. bugref:10577

File size: 8.7 KB
Line 
1/*
2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
3 *
4 * Licensed under the Apache License 2.0 (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
8 */
9
10#include <stdio.h>
11#include <openssl/macros.h>
12#include <openssl/objects.h>
13#include "ssl_local.h"
14
15/*-
16 * TLS/SSLv3 methods
17 */
18
19IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
20 TLS_method,
21 ossl_statem_accept,
22 ossl_statem_connect, TLSv1_2_enc_data)
23IMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3,
24 tlsv1_3_method,
25 ossl_statem_accept,
26 ossl_statem_connect, TLSv1_3_enc_data)
27#ifndef OPENSSL_NO_TLS1_2_METHOD
28IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2,
29 tlsv1_2_method,
30 ossl_statem_accept,
31 ossl_statem_connect, TLSv1_2_enc_data)
32#endif
33#ifndef OPENSSL_NO_TLS1_1_METHOD
34IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1,
35 tlsv1_1_method,
36 ossl_statem_accept,
37 ossl_statem_connect, TLSv1_1_enc_data)
38#endif
39#ifndef OPENSSL_NO_TLS1_METHOD
40IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1,
41 tlsv1_method,
42 ossl_statem_accept, ossl_statem_connect, TLSv1_enc_data)
43#endif
44#ifndef OPENSSL_NO_SSL3_METHOD
45IMPLEMENT_ssl3_meth_func(sslv3_method, ossl_statem_accept, ossl_statem_connect)
46#endif
47/*-
48 * TLS/SSLv3 server methods
49 */
50IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
51 TLS_server_method,
52 ossl_statem_accept,
53 ssl_undefined_function, TLSv1_2_enc_data)
54IMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3,
55 tlsv1_3_server_method,
56 ossl_statem_accept,
57 ssl_undefined_function, TLSv1_3_enc_data)
58#ifndef OPENSSL_NO_TLS1_2_METHOD
59IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2,
60 tlsv1_2_server_method,
61 ossl_statem_accept,
62 ssl_undefined_function, TLSv1_2_enc_data)
63#endif
64#ifndef OPENSSL_NO_TLS1_1_METHOD
65IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1,
66 tlsv1_1_server_method,
67 ossl_statem_accept,
68 ssl_undefined_function, TLSv1_1_enc_data)
69#endif
70#ifndef OPENSSL_NO_TLS1_METHOD
71IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1,
72 tlsv1_server_method,
73 ossl_statem_accept,
74 ssl_undefined_function, TLSv1_enc_data)
75#endif
76#ifndef OPENSSL_NO_SSL3_METHOD
77IMPLEMENT_ssl3_meth_func(sslv3_server_method,
78 ossl_statem_accept, ssl_undefined_function)
79#endif
80/*-
81 * TLS/SSLv3 client methods
82 */
83IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
84 TLS_client_method,
85 ssl_undefined_function,
86 ossl_statem_connect, TLSv1_2_enc_data)
87IMPLEMENT_tls_meth_func(TLS1_3_VERSION, 0, SSL_OP_NO_TLSv1_3,
88 tlsv1_3_client_method,
89 ssl_undefined_function,
90 ossl_statem_connect, TLSv1_3_enc_data)
91#ifndef OPENSSL_NO_TLS1_2_METHOD
92IMPLEMENT_tls_meth_func(TLS1_2_VERSION, 0, SSL_OP_NO_TLSv1_2,
93 tlsv1_2_client_method,
94 ssl_undefined_function,
95 ossl_statem_connect, TLSv1_2_enc_data)
96#endif
97#ifndef OPENSSL_NO_TLS1_1_METHOD
98IMPLEMENT_tls_meth_func(TLS1_1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1_1,
99 tlsv1_1_client_method,
100 ssl_undefined_function,
101 ossl_statem_connect, TLSv1_1_enc_data)
102#endif
103#ifndef OPENSSL_NO_TLS1_METHOD
104IMPLEMENT_tls_meth_func(TLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_TLSv1,
105 tlsv1_client_method,
106 ssl_undefined_function,
107 ossl_statem_connect, TLSv1_enc_data)
108#endif
109#ifndef OPENSSL_NO_SSL3_METHOD
110IMPLEMENT_ssl3_meth_func(sslv3_client_method,
111 ssl_undefined_function, ossl_statem_connect)
112#endif
113/*-
114 * DTLS methods
115 */
116#ifndef OPENSSL_NO_DTLS1_METHOD
117IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1,
118 dtlsv1_method,
119 ossl_statem_accept,
120 ossl_statem_connect, DTLSv1_enc_data)
121#endif
122#ifndef OPENSSL_NO_DTLS1_2_METHOD
123IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2,
124 dtlsv1_2_method,
125 ossl_statem_accept,
126 ossl_statem_connect, DTLSv1_2_enc_data)
127#endif
128IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0,
129 DTLS_method,
130 ossl_statem_accept,
131 ossl_statem_connect, DTLSv1_2_enc_data)
132
133/*-
134 * DTLS server methods
135 */
136#ifndef OPENSSL_NO_DTLS1_METHOD
137IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1,
138 dtlsv1_server_method,
139 ossl_statem_accept,
140 ssl_undefined_function, DTLSv1_enc_data)
141#endif
142#ifndef OPENSSL_NO_DTLS1_2_METHOD
143IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2,
144 dtlsv1_2_server_method,
145 ossl_statem_accept,
146 ssl_undefined_function, DTLSv1_2_enc_data)
147#endif
148IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0,
149 DTLS_server_method,
150 ossl_statem_accept,
151 ssl_undefined_function, DTLSv1_2_enc_data)
152
153/*-
154 * DTLS client methods
155 */
156#ifndef OPENSSL_NO_DTLS1_METHOD
157IMPLEMENT_dtls1_meth_func(DTLS1_VERSION, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1,
158 dtlsv1_client_method,
159 ssl_undefined_function,
160 ossl_statem_connect, DTLSv1_enc_data)
161IMPLEMENT_dtls1_meth_func(DTLS1_BAD_VER, SSL_METHOD_NO_SUITEB, SSL_OP_NO_DTLSv1,
162 dtls_bad_ver_client_method,
163 ssl_undefined_function,
164 ossl_statem_connect, DTLSv1_enc_data)
165#endif
166#ifndef OPENSSL_NO_DTLS1_2_METHOD
167IMPLEMENT_dtls1_meth_func(DTLS1_2_VERSION, 0, SSL_OP_NO_DTLSv1_2,
168 dtlsv1_2_client_method,
169 ssl_undefined_function,
170 ossl_statem_connect, DTLSv1_2_enc_data)
171#endif
172IMPLEMENT_dtls1_meth_func(DTLS_ANY_VERSION, 0, 0,
173 DTLS_client_method,
174 ssl_undefined_function,
175 ossl_statem_connect, DTLSv1_2_enc_data)
176#ifndef OPENSSL_NO_DEPRECATED_1_1_0
177# ifndef OPENSSL_NO_TLS1_2_METHOD
178const SSL_METHOD *TLSv1_2_method(void)
179{
180 return tlsv1_2_method();
181}
182
183const SSL_METHOD *TLSv1_2_server_method(void)
184{
185 return tlsv1_2_server_method();
186}
187
188const SSL_METHOD *TLSv1_2_client_method(void)
189{
190 return tlsv1_2_client_method();
191}
192# endif
193
194# ifndef OPENSSL_NO_TLS1_1_METHOD
195const SSL_METHOD *TLSv1_1_method(void)
196{
197 return tlsv1_1_method();
198}
199
200const SSL_METHOD *TLSv1_1_server_method(void)
201{
202 return tlsv1_1_server_method();
203}
204
205const SSL_METHOD *TLSv1_1_client_method(void)
206{
207 return tlsv1_1_client_method();
208}
209# endif
210
211# ifndef OPENSSL_NO_TLS1_METHOD
212const SSL_METHOD *TLSv1_method(void)
213{
214 return tlsv1_method();
215}
216
217const SSL_METHOD *TLSv1_server_method(void)
218{
219 return tlsv1_server_method();
220}
221
222const SSL_METHOD *TLSv1_client_method(void)
223{
224 return tlsv1_client_method();
225}
226# endif
227
228# ifndef OPENSSL_NO_SSL3_METHOD
229const SSL_METHOD *SSLv3_method(void)
230{
231 return sslv3_method();
232}
233
234const SSL_METHOD *SSLv3_server_method(void)
235{
236 return sslv3_server_method();
237}
238
239const SSL_METHOD *SSLv3_client_method(void)
240{
241 return sslv3_client_method();
242}
243# endif
244
245# ifndef OPENSSL_NO_DTLS1_2_METHOD
246const SSL_METHOD *DTLSv1_2_method(void)
247{
248 return dtlsv1_2_method();
249}
250
251const SSL_METHOD *DTLSv1_2_server_method(void)
252{
253 return dtlsv1_2_server_method();
254}
255
256const SSL_METHOD *DTLSv1_2_client_method(void)
257{
258 return dtlsv1_2_client_method();
259}
260# endif
261
262# ifndef OPENSSL_NO_DTLS1_METHOD
263const SSL_METHOD *DTLSv1_method(void)
264{
265 return dtlsv1_method();
266}
267
268const SSL_METHOD *DTLSv1_server_method(void)
269{
270 return dtlsv1_server_method();
271}
272
273const SSL_METHOD *DTLSv1_client_method(void)
274{
275 return dtlsv1_client_method();
276}
277# endif
278
279#endif
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette