Coverage Report

Created: 2018-08-29 13:53

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