xref: /freebsd/crypto/openssl/ssl/methods.c (revision f25b8c9fb4f58cf61adb47d7570abe7caa6d385d)
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 
19 IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
20     TLS_method,
21     ossl_statem_accept,
22     ossl_statem_connect, TLSv1_2_enc_data)
23 IMPLEMENT_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
28 IMPLEMENT_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
IMPLEMENT_tls_meth_func(TLS1_1_VERSION,SSL_METHOD_NO_SUITEB,SSL_OP_NO_TLSv1_1,tlsv1_1_method,ossl_statem_accept,ossl_statem_connect,TLSv1_1_enc_data)34 IMPLEMENT_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
40 IMPLEMENT_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
45 IMPLEMENT_ssl3_meth_func(sslv3_method, ossl_statem_accept, ossl_statem_connect)
46 #endif
47 /*-
48  * TLS/SSLv3 server methods
49  */
50 IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
51     TLS_server_method,
52     ossl_statem_accept,
53     ssl_undefined_function, TLSv1_2_enc_data)
54 IMPLEMENT_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
59 IMPLEMENT_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
65 IMPLEMENT_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
71 IMPLEMENT_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
77 IMPLEMENT_ssl3_meth_func(sslv3_server_method,
78     ossl_statem_accept, ssl_undefined_function)
79 #endif
80 /*-
81  * TLS/SSLv3 client methods
82  */
83 IMPLEMENT_tls_meth_func(TLS_ANY_VERSION, 0, 0,
84     TLS_client_method,
85     ssl_undefined_function,
86     ossl_statem_connect, TLSv1_2_enc_data)
87 IMPLEMENT_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
92 IMPLEMENT_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
98 IMPLEMENT_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
104 IMPLEMENT_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
110 IMPLEMENT_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
117 IMPLEMENT_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
123 IMPLEMENT_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
128 IMPLEMENT_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
137 IMPLEMENT_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
143 IMPLEMENT_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
148 IMPLEMENT_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
157 IMPLEMENT_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)
161 IMPLEMENT_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
167 IMPLEMENT_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
172 IMPLEMENT_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
178 const SSL_METHOD *TLSv1_2_method(void)
179 {
180     return tlsv1_2_method();
181 }
182 
TLSv1_2_server_method(void)183 const SSL_METHOD *TLSv1_2_server_method(void)
184 {
185     return tlsv1_2_server_method();
186 }
187 
TLSv1_2_client_method(void)188 const 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
TLSv1_1_method(void)195 const SSL_METHOD *TLSv1_1_method(void)
196 {
197     return tlsv1_1_method();
198 }
199 
TLSv1_1_server_method(void)200 const SSL_METHOD *TLSv1_1_server_method(void)
201 {
202     return tlsv1_1_server_method();
203 }
204 
TLSv1_1_client_method(void)205 const SSL_METHOD *TLSv1_1_client_method(void)
206 {
207     return tlsv1_1_client_method();
208 }
209 #endif
210 
211 #ifndef OPENSSL_NO_TLS1_METHOD
TLSv1_method(void)212 const SSL_METHOD *TLSv1_method(void)
213 {
214     return tlsv1_method();
215 }
216 
TLSv1_server_method(void)217 const SSL_METHOD *TLSv1_server_method(void)
218 {
219     return tlsv1_server_method();
220 }
221 
TLSv1_client_method(void)222 const SSL_METHOD *TLSv1_client_method(void)
223 {
224     return tlsv1_client_method();
225 }
226 #endif
227 
228 #ifndef OPENSSL_NO_SSL3_METHOD
SSLv3_method(void)229 const SSL_METHOD *SSLv3_method(void)
230 {
231     return sslv3_method();
232 }
233 
SSLv3_server_method(void)234 const SSL_METHOD *SSLv3_server_method(void)
235 {
236     return sslv3_server_method();
237 }
238 
SSLv3_client_method(void)239 const SSL_METHOD *SSLv3_client_method(void)
240 {
241     return sslv3_client_method();
242 }
243 #endif
244 
245 #ifndef OPENSSL_NO_DTLS1_2_METHOD
DTLSv1_2_method(void)246 const SSL_METHOD *DTLSv1_2_method(void)
247 {
248     return dtlsv1_2_method();
249 }
250 
DTLSv1_2_server_method(void)251 const SSL_METHOD *DTLSv1_2_server_method(void)
252 {
253     return dtlsv1_2_server_method();
254 }
255 
DTLSv1_2_client_method(void)256 const SSL_METHOD *DTLSv1_2_client_method(void)
257 {
258     return dtlsv1_2_client_method();
259 }
260 #endif
261 
262 #ifndef OPENSSL_NO_DTLS1_METHOD
DTLSv1_method(void)263 const SSL_METHOD *DTLSv1_method(void)
264 {
265     return dtlsv1_method();
266 }
267 
DTLSv1_server_method(void)268 const SSL_METHOD *DTLSv1_server_method(void)
269 {
270     return dtlsv1_server_method();
271 }
272 
DTLSv1_client_method(void)273 const SSL_METHOD *DTLSv1_client_method(void)
274 {
275     return dtlsv1_client_method();
276 }
277 #endif
278 
279 #endif
280