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