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