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