Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/crypto/openssl/ssl/methods.c
48150 views
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
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
183
const SSL_METHOD *TLSv1_2_server_method(void)
184
{
185
return tlsv1_2_server_method();
186
}
187
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
195
const SSL_METHOD *TLSv1_1_method(void)
196
{
197
return tlsv1_1_method();
198
}
199
200
const SSL_METHOD *TLSv1_1_server_method(void)
201
{
202
return tlsv1_1_server_method();
203
}
204
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
212
const SSL_METHOD *TLSv1_method(void)
213
{
214
return tlsv1_method();
215
}
216
217
const SSL_METHOD *TLSv1_server_method(void)
218
{
219
return tlsv1_server_method();
220
}
221
222
const SSL_METHOD *TLSv1_client_method(void)
223
{
224
return tlsv1_client_method();
225
}
226
# endif
227
228
# ifndef OPENSSL_NO_SSL3_METHOD
229
const SSL_METHOD *SSLv3_method(void)
230
{
231
return sslv3_method();
232
}
233
234
const SSL_METHOD *SSLv3_server_method(void)
235
{
236
return sslv3_server_method();
237
}
238
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
246
const SSL_METHOD *DTLSv1_2_method(void)
247
{
248
return dtlsv1_2_method();
249
}
250
251
const SSL_METHOD *DTLSv1_2_server_method(void)
252
{
253
return dtlsv1_2_server_method();
254
}
255
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
263
const SSL_METHOD *DTLSv1_method(void)
264
{
265
return dtlsv1_method();
266
}
267
268
const SSL_METHOD *DTLSv1_server_method(void)
269
{
270
return dtlsv1_server_method();
271
}
272
273
const SSL_METHOD *DTLSv1_client_method(void)
274
{
275
return dtlsv1_client_method();
276
}
277
# endif
278
279
#endif
280
281