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