tls_cipher_suites.c
Go to the documentation of this file.
1 /**
2  * @file tls_cipher_suites.c
3  * @brief TLS cipher suites
4  *
5  * @section License
6  *
7  * Copyright (C) 2010-2018 Oryx Embedded SARL. All rights reserved.
8  *
9  * This file is part of CycloneSSL Open.
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software Foundation,
23  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24  *
25  * @author Oryx Embedded SARL (www.oryx-embedded.com)
26  * @version 1.9.0
27  **/
28 
29 //Switch to the appropriate trace level
30 #define TRACE_LEVEL TLS_TRACE_LEVEL
31 
32 //Dependencies
33 #include "tls.h"
34 #include "tls_cipher_suites.h"
35 #include "cipher/rc4.h"
36 #include "cipher/idea.h"
37 #include "cipher/des.h"
38 #include "cipher/des3.h"
39 #include "cipher/aes.h"
40 #include "cipher/camellia.h"
41 #include "cipher/seed.h"
42 #include "cipher/aria.h"
43 #include "hash/md5.h"
44 #include "hash/sha1.h"
45 #include "hash/sha256.h"
46 #include "hash/sha384.h"
47 #include "debug.h"
48 
49 //Check TLS library configuration
50 #if (TLS_SUPPORT == ENABLED)
51 
52 //List of supported cipher suites
54 {
55 //TLS_CHACHA20_POLY1305_SHA256 cipher suite
56 #if (TLS_MAX_VERSION >= TLS_VERSION_1_3 && TLS_MIN_VERSION <= TLS_VERSION_1_3 && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
58 #endif
59 
60 //TLS_AES_128_GCM_SHA256 cipher suite
61 #if (TLS_MAX_VERSION >= TLS_VERSION_1_3 && TLS_MIN_VERSION <= TLS_VERSION_1_3 && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
63 #endif
64 
65 //TLS_AES_256_GCM_SHA384 cipher suite
66 #if (TLS_MAX_VERSION >= TLS_VERSION_1_3 && TLS_MIN_VERSION <= TLS_VERSION_1_3 && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
68 #endif
69 
70 //TLS_AES_128_CCM_SHA256 cipher suite
71 #if (TLS_MAX_VERSION >= TLS_VERSION_1_3 && TLS_MIN_VERSION <= TLS_VERSION_1_3 && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
73 #endif
74 
75 //TLS_AES_128_CCM_8_SHA256 cipher suite
76 #if (TLS_MAX_VERSION >= TLS_VERSION_1_3 && TLS_MIN_VERSION <= TLS_VERSION_1_3 && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
78 #endif
79 
80 //TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 cipher suite
81 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
83 #endif
84 
85 //TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 cipher suite
86 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
88 #endif
89 
90 //TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 cipher suite
91 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
93 #endif
94 
95 //TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 cipher suite
96 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
98 #endif
99 
100 //TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 cipher suite
101 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
103 #endif
104 
105 //TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 cipher suite
106 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
108 #endif
109 
110 //TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
111 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
113 #endif
114 
115 //TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
116 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
118 #endif
119 
120 //TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
121 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
123 #endif
124 
125 //TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
126 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
128 #endif
129 
130 //TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 cipher suite
131 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
133 #endif
134 
135 //TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 cipher suite
136 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
138 #endif
139 
140 //TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 cipher suite
141 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
143 #endif
144 
145 //TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 cipher suite
146 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
148 #endif
149 
150 //TLS_ECDHE_ECDSA_WITH_AES_128_CCM cipher suite
151 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
153 #endif
154 
155 //TLS_ECDHE_ECDSA_WITH_AES_256_CCM cipher suite
156 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
158 #endif
159 
160 //TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 cipher suite
161 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
163 #endif
164 
165 //TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 cipher suite
166 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
168 #endif
169 
170 //TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 cipher suite
171 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
173 #endif
174 
175 //TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 cipher suite
176 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
178 #endif
179 
180 //TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 cipher suite
181 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
183 #endif
184 
185 //TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 cipher suite
186 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
188 #endif
189 
190 //TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
191 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
193 #endif
194 
195 //TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
196 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
198 #endif
199 
200 //TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
201 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
203 #endif
204 
205 //TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
206 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
208 #endif
209 
210 //TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 cipher suite
211 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
213 #endif
214 
215 //TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 cipher suite
216 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
218 #endif
219 
220 //TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 cipher suite
221 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
223 #endif
224 
225 //TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 cipher suite
226 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
228 #endif
229 
230 //TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA cipher suite
231 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
233 #endif
234 
235 //TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA cipher suite
236 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
238 #endif
239 
240 //TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA cipher suite
241 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
243 #endif
244 
245 //TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA cipher suite
246 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
248 #endif
249 
250 //TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA cipher suite
251 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
253 #endif
254 
255 //TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA cipher suite
256 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
258 #endif
259 
260 //TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 cipher suite
261 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
263 #endif
264 
265 //TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 cipher suite
266 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
268 #endif
269 
270 //TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 cipher suite
271 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
273 #endif
274 
275 //TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
276 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
278 #endif
279 
280 //TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
281 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
283 #endif
284 
285 //TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 cipher suite
286 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
288 #endif
289 
290 //TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 cipher suite
291 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
293 #endif
294 
295 //TLS_DHE_RSA_WITH_AES_128_CCM cipher suite
296 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
298 #endif
299 
300 //TLS_DHE_RSA_WITH_AES_256_CCM cipher suite
301 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
303 #endif
304 
305 //TLS_DHE_RSA_WITH_AES_128_CCM_8 cipher suite
306 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
308 #endif
309 
310 //TLS_DHE_RSA_WITH_AES_256_CCM_8 cipher suite
311 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
313 #endif
314 
315 //TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 cipher suite
316 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
318 #endif
319 
320 //TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 cipher suite
321 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
323 #endif
324 
325 //TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
326 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
328 #endif
329 
330 //TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 cipher suite
331 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
333 #endif
334 
335 //TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 cipher suite
336 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
338 #endif
339 
340 //TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 cipher suite
341 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
343 #endif
344 
345 //TLS_DHE_RSA_WITH_AES_128_CBC_SHA cipher suite
346 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
348 #endif
349 
350 //TLS_DHE_RSA_WITH_AES_256_CBC_SHA cipher suite
351 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
353 #endif
354 
355 //TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA cipher suite
356 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
358 #endif
359 
360 //TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA cipher suite
361 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
363 #endif
364 
365 //TLS_DHE_RSA_WITH_SEED_CBC_SHA cipher suite
366 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_SEED_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
368 #endif
369 
370 //TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA cipher suite
371 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
373 #endif
374 
375 //TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 cipher suite
376 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
378 #endif
379 
380 //TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 cipher suite
381 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
383 #endif
384 
385 //TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
386 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
388 #endif
389 
390 //TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
391 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
393 #endif
394 
395 //TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 cipher suite
396 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
398 #endif
399 
400 //TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 cipher suite
401 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
403 #endif
404 
405 //TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 cipher suite
406 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
408 #endif
409 
410 //TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 cipher suite
411 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
413 #endif
414 
415 //TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
416 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
418 #endif
419 
420 //TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 cipher suite
421 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
423 #endif
424 
425 //TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 cipher suite
426 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
428 #endif
429 
430 //TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 cipher suite
431 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
433 #endif
434 
435 //TLS_DHE_DSS_WITH_AES_128_CBC_SHA cipher suite
436 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
438 #endif
439 
440 //TLS_DHE_DSS_WITH_AES_256_CBC_SHA cipher suite
441 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
443 #endif
444 
445 //TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA cipher suite
446 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
448 #endif
449 
450 //TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA cipher suite
451 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
453 #endif
454 
455 //TLS_DHE_DSS_WITH_SEED_CBC_SHA cipher suite
456 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_SEED_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
458 #endif
459 
460 //TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA cipher suite
461 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
463 #endif
464 
465 //TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 cipher suite
466 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
468 #endif
469 
470 //TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 cipher suite
471 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
473 #endif
474 
475 //TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 cipher suite
476 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
478 #endif
479 
480 //TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 cipher suite
481 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
483 #endif
484 
485 //TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 cipher suite
486 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
488 #endif
489 
490 //TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 cipher suite
491 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
493 #endif
494 
495 //TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 cipher suite
496 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
498 #endif
499 
500 //TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
501 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
503 #endif
504 
505 //TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
506 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
508 #endif
509 
510 //TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 cipher suite
511 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
513 #endif
514 
515 //TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 cipher suite
516 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
518 #endif
519 
520 //TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA cipher suite
521 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
523 #endif
524 
525 //TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA cipher suite
526 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
528 #endif
529 
530 //TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA cipher suite
531 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
533 #endif
534 
535 //TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 cipher suite
536 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
538 #endif
539 
540 //TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 cipher suite
541 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
543 #endif
544 
545 //TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 cipher suite
546 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
548 #endif
549 
550 //TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
551 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
553 #endif
554 
555 //TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
556 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
558 #endif
559 
560 //TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 cipher suite
561 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
563 #endif
564 
565 //TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 cipher suite
566 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
568 #endif
569 
570 //TLS_DHE_PSK_WITH_AES_128_CCM cipher suite
571 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
573 #endif
574 
575 //TLS_DHE_PSK_WITH_AES_256_CCM cipher suite
576 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
578 #endif
579 
580 //TLS_DHE_PSK_WITH_AES_128_CCM_8 cipher suite
581 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
583 #endif
584 
585 //TLS_DHE_PSK_WITH_AES_256_CCM_8 cipher suite
586 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
588 #endif
589 
590 //TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 cipher suite
591 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
593 #endif
594 
595 //TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 cipher suite
596 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
598 #endif
599 
600 //TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
601 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
603 #endif
604 
605 //TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
606 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
608 #endif
609 
610 //TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 cipher suite
611 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
613 #endif
614 
615 //TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 cipher suite
616 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
618 #endif
619 
620 //TLS_DHE_PSK_WITH_AES_128_CBC_SHA cipher suite
621 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
623 #endif
624 
625 //TLS_DHE_PSK_WITH_AES_256_CBC_SHA cipher suite
626 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
628 #endif
629 
630 //TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA cipher suite
631 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
633 #endif
634 
635 //TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 cipher suite
636 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
638 #endif
639 
640 //TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 cipher suite
641 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
643 #endif
644 
645 //TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 cipher suite
646 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
648 #endif
649 
650 //TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
651 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
653 #endif
654 
655 //TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
656 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
658 #endif
659 
660 //TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 cipher suite
661 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
663 #endif
664 
665 //TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 cipher suite
666 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
668 #endif
669 
670 //TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 cipher suite
671 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
673 #endif
674 
675 //TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 cipher suite
676 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
678 #endif
679 
680 //TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
681 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
683 #endif
684 
685 //TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
686 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
688 #endif
689 
690 //TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 cipher suite
691 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
693 #endif
694 
695 //TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 cipher suite
696 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
698 #endif
699 
700 //TLS_RSA_PSK_WITH_AES_128_CBC_SHA cipher suite
701 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
703 #endif
704 
705 //TLS_RSA_PSK_WITH_AES_256_CBC_SHA cipher suite
706 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
708 #endif
709 
710 //TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA cipher suite
711 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
713 #endif
714 
715 //TLS_RSA_WITH_AES_128_GCM_SHA256 cipher suite
716 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
718 #endif
719 
720 //TLS_RSA_WITH_AES_256_GCM_SHA384 cipher suite
721 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
723 #endif
724 
725 //TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
726 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
728 #endif
729 
730 //TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
731 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
733 #endif
734 
735 //TLS_RSA_WITH_ARIA_128_GCM_SHA256 cipher suite
736 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
738 #endif
739 
740 //TLS_RSA_WITH_ARIA_256_GCM_SHA384 cipher suite
741 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
743 #endif
744 
745 //TLS_RSA_WITH_AES_128_CCM cipher suite
746 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
748 #endif
749 
750 //TLS_RSA_WITH_AES_256_CCM cipher suite
751 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
753 #endif
754 
755 //TLS_RSA_WITH_AES_128_CCM_8 cipher suite
756 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
758 #endif
759 
760 //TLS_RSA_WITH_AES_256_CCM_8 cipher suite
761 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
763 #endif
764 
765 //TLS_RSA_WITH_AES_128_CBC_SHA256 cipher suite
766 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
768 #endif
769 
770 //TLS_RSA_WITH_AES_256_CBC_SHA256 cipher suite
771 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
773 #endif
774 
775 //TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
776 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
778 #endif
779 
780 //TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 cipher suite
781 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
783 #endif
784 
785 //TLS_RSA_WITH_ARIA_128_CBC_SHA256 cipher suite
786 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
788 #endif
789 
790 //TLS_RSA_WITH_ARIA_256_CBC_SHA384 cipher suite
791 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
793 #endif
794 
795 //TLS_RSA_WITH_AES_128_CBC_SHA cipher suite
796 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
798 #endif
799 
800 //TLS_RSA_WITH_AES_256_CBC_SHA cipher suite
801 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
803 #endif
804 
805 //TLS_RSA_WITH_CAMELLIA_128_CBC_SHA cipher suite
806 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
808 #endif
809 
810 //TLS_RSA_WITH_CAMELLIA_256_CBC_SHA cipher suite
811 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
813 #endif
814 
815 //TLS_RSA_WITH_SEED_CBC_SHA cipher suite
816 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_SEED_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
818 #endif
819 
820 //TLS_RSA_WITH_3DES_EDE_CBC_SHA cipher suite
821 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
823 #endif
824 
825 //TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 cipher suite
826 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CHACHA20_POLY1305_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
828 #endif
829 
830 //TLS_PSK_WITH_AES_128_GCM_SHA256 cipher suite
831 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
833 #endif
834 
835 //TLS_PSK_WITH_AES_256_GCM_SHA384 cipher suite
836 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
838 #endif
839 
840 //TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
841 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
843 #endif
844 
845 //TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
846 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
848 #endif
849 
850 //TLS_PSK_WITH_ARIA_128_GCM_SHA256 cipher suite
851 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
853 #endif
854 
855 //TLS_PSK_WITH_ARIA_256_GCM_SHA384 cipher suite
856 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
858 #endif
859 
860 //TLS_PSK_WITH_AES_128_CCM cipher suite
861 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
863 #endif
864 
865 //TLS_PSK_WITH_AES_256_CCM cipher suite
866 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
868 #endif
869 
870 //TLS_PSK_WITH_AES_128_CCM_8 cipher suite
871 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
873 #endif
874 
875 //TLS_PSK_WITH_AES_256_CCM_8 cipher suite
876 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CCM_8_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
878 #endif
879 
880 //TLS_PSK_WITH_AES_128_CBC_SHA256 cipher suite
881 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
883 #endif
884 
885 //TLS_PSK_WITH_AES_256_CBC_SHA384 cipher suite
886 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
888 #endif
889 
890 //TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
891 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
893 #endif
894 
895 //TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 cipher suite
896 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
898 #endif
899 
900 //TLS_PSK_WITH_ARIA_128_CBC_SHA256 cipher suite
901 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
903 #endif
904 
905 //TLS_PSK_WITH_ARIA_256_CBC_SHA384 cipher suite
906 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
908 #endif
909 
910 //TLS_PSK_WITH_AES_128_CBC_SHA cipher suite
911 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
913 #endif
914 
915 //TLS_PSK_WITH_AES_256_CBC_SHA cipher suite
916 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
918 #endif
919 
920 //TLS_PSK_WITH_3DES_EDE_CBC_SHA cipher suite
921 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
923 #endif
924 
925 //TLS_ECDHE_ECDSA_WITH_RC4_128_SHA cipher suite
926 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
928 #endif
929 
930 //TLS_ECDHE_RSA_WITH_RC4_128_SHA cipher suite
931 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
933 #endif
934 
935 //TLS_ECDHE_PSK_WITH_RC4_128_SHA cipher suite
936 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
938 #endif
939 
940 //TLS_DHE_PSK_WITH_RC4_128_SHA cipher suite
941 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
943 #endif
944 
945 //TLS_RSA_PSK_WITH_RC4_128_SHA cipher suite
946 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
948 #endif
949 
950 //TLS_RSA_WITH_RC4_128_SHA cipher suite
951 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
953 #endif
954 
955 //TLS_RSA_WITH_RC4_128_MD5 cipher suite
956 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_MD5_SUPPORT == ENABLED)
958 #endif
959 
960 //TLS_PSK_WITH_RC4_128_SHA cipher suite
961 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
963 #endif
964 
965 //TLS_DHE_RSA_WITH_DES_CBC_SHA cipher suite
966 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
968 #endif
969 
970 //TLS_DHE_DSS_WITH_DES_CBC_SHA cipher suite
971 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_DSS_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
973 #endif
974 
975 //TLS_RSA_WITH_DES_CBC_SHA cipher suite
976 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
978 #endif
979 
980 //TLS_RSA_WITH_IDEA_CBC_SHA cipher suite
981 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_IDEA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
983 #endif
984 
985 //TLS_ECDH_anon_WITH_AES_128_CBC_SHA cipher suite
986 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
988 #endif
989 
990 //TLS_ECDH_anon_WITH_AES_256_CBC_SHA cipher suite
991 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
993 #endif
994 
995 //TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA cipher suite
996 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
998 #endif
999 
1000 //TLS_ECDH_anon_WITH_RC4_128_SHA cipher suite
1001 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDH_ANON_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1003 #endif
1004 
1005 //TLS_DH_anon_WITH_AES_128_GCM_SHA256 cipher suite
1006 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1008 #endif
1009 
1010 //TLS_DH_anon_WITH_AES_256_GCM_SHA384 cipher suite
1011 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1013 #endif
1014 
1015 //TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 cipher suite
1016 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1018 #endif
1019 
1020 //TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 cipher suite
1021 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1023 #endif
1024 
1025 //TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 cipher suite
1026 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1028 #endif
1029 
1030 //TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 cipher suite
1031 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_GCM_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1033 #endif
1034 
1035 //TLS_DH_anon_WITH_AES_128_CBC_SHA256 cipher suite
1036 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1038 #endif
1039 
1040 //TLS_DH_anon_WITH_AES_256_CBC_SHA256 cipher suite
1041 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1043 #endif
1044 
1045 //TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 cipher suite
1046 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1048 #endif
1049 
1050 //TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 cipher suite
1051 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1053 #endif
1054 
1055 //TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 cipher suite
1056 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1058 #endif
1059 
1060 //TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 cipher suite
1061 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_ARIA_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1063 #endif
1064 
1065 //TLS_DH_anon_WITH_AES_128_CBC_SHA cipher suite
1066 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1068 #endif
1069 
1070 //TLS_DH_anon_WITH_AES_256_CBC_SHA cipher suite
1071 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_AES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1073 #endif
1074 
1075 //TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA cipher suite
1076 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1078 #endif
1079 
1080 //TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA cipher suite
1081 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_CAMELLIA_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1083 #endif
1084 
1085 //TLS_DH_anon_WITH_SEED_CBC_SHA cipher suite
1086 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_SEED_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1088 #endif
1089 
1090 //TLS_DH_anon_WITH_3DES_EDE_CBC_SHA cipher suite
1091 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_3DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1093 #endif
1094 
1095 //TLS_DH_anon_WITH_DES_CBC_SHA cipher suite
1096 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_CBC_CIPHER_SUPPORT == ENABLED && TLS_DES_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1098 #endif
1099 
1100 //TLS_DH_anon_WITH_RC4_128_MD5 cipher suite
1101 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DH_ANON_KE_SUPPORT == ENABLED && TLS_STREAM_CIPHER_SUPPORT == ENABLED && TLS_RC4_SUPPORT == ENABLED && TLS_MD5_SUPPORT == ENABLED)
1103 #endif
1104 
1105 //TLS_ECDHE_ECDSA_WITH_NULL_SHA cipher suite
1106 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_ECDSA_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1108 #endif
1109 
1110 //TLS_ECDHE_RSA_WITH_NULL_SHA cipher suite
1111 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_RSA_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1113 #endif
1114 
1115 //TLS_ECDHE_PSK_WITH_NULL_SHA256 cipher suite
1116 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1118 #endif
1119 
1120 //TLS_ECDHE_PSK_WITH_NULL_SHA384 cipher suite
1121 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1123 #endif
1124 
1125 //TLS_ECDHE_PSK_WITH_NULL_SHA cipher suite
1126 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1128 #endif
1129 
1130 //TLS_DHE_PSK_WITH_NULL_SHA256 cipher suite
1131 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1133 #endif
1134 
1135 //TLS_DHE_PSK_WITH_NULL_SHA384 cipher suite
1136 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1138 #endif
1139 
1140 //TLS_DHE_PSK_WITH_NULL_SHA cipher suite
1141 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_DHE_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1143 #endif
1144 
1145 //TLS_RSA_PSK_WITH_NULL_SHA256 cipher suite
1146 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1148 #endif
1149 
1150 //TLS_RSA_PSK_WITH_NULL_SHA384 cipher suite
1151 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1153 #endif
1154 
1155 //TLS_RSA_PSK_WITH_NULL_SHA cipher suite
1156 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1158 #endif
1159 
1160 //TLS_RSA_WITH_NULL_SHA256 cipher suite
1161 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1163 #endif
1164 
1165 //TLS_RSA_WITH_NULL_SHA cipher suite
1166 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1168 #endif
1169 
1170 //TLS_RSA_WITH_NULL_MD5 cipher suite
1171 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_RSA_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_MD5_SUPPORT == ENABLED)
1173 #endif
1174 
1175 //TLS_PSK_WITH_NULL_SHA256 cipher suite
1176 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA256_SUPPORT == ENABLED)
1178 #endif
1179 
1180 //TLS_PSK_WITH_NULL_SHA384 cipher suite
1181 #if (TLS_MAX_VERSION >= TLS_VERSION_1_2 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA384_SUPPORT == ENABLED)
1183 #endif
1184 
1185 //TLS_PSK_WITH_NULL_SHA cipher suite
1186 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_PSK_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1188 #endif
1189 
1190 //TLS_ECDH_anon_WITH_NULL_SHA cipher suite
1191 #if (TLS_MAX_VERSION >= SSL_VERSION_3_0 && TLS_MIN_VERSION <= TLS_VERSION_1_2 && TLS_ECDH_ANON_KE_SUPPORT == ENABLED && TLS_NULL_CIPHER_SUPPORT == ENABLED && TLS_SHA1_SUPPORT == ENABLED)
1193 #endif
1194 };
1195 
1196 
1197 /**
1198  * @brief Determine the number of cipher suites supported
1199  * @return Number of supported cipher suites
1200  **/
1201 
1203 {
1204  //Return the number of supported cipher suites
1206 }
1207 
1208 
1209 /**
1210  * @brief Convert cipher suite identifier to string representation
1211  * @param[in] identifier Cipher suite identifier
1212  * @return Cipher suite name
1213  **/
1214 
1216 {
1217  uint_t i;
1218 
1219  //Default name for unknown cipher suites
1220  static const char_t defaultName[] = "Unknown";
1221 
1222  //Parse the list of supported cipher suites
1223  for(i = 0; i < arraysize(tlsSupportedCipherSuites); i++)
1224  {
1225  //The current cipher suite matches the specified identifier?
1227  return tlsSupportedCipherSuites[i].name;
1228  }
1229 
1230  //Unknown cipher suite
1231  return defaultName;
1232 }
1233 
1234 
1235 /**
1236  * @brief Check whether a cipher suite can be used with a given protocol
1237  * version
1238  * @param[in] cipherSuite Cipher suite
1239  * @param[in] minVersion Minimum TLS protocol version
1240  * @param[in] maxVersion Maximum TLS protocol version
1241  * @param[in] transportProtocol Transport protocol (TLS or DTLS)
1242  * @return TRUE if the cipher suite is acceptable, else FALSE
1243  **/
1244 
1246  uint16_t minVersion, uint16_t maxVersion,
1247  TlsTransportProtocol transportProtocol)
1248 {
1249  bool_t acceptable;
1250 
1251  //Initialize flag
1252  acceptable = TRUE;
1253 
1254  //TLS 1.2 cipher suites must not be negotiated in older versions of TLS
1255  if(maxVersion < TLS_VERSION_1_2)
1256  {
1257  //TLS 1.2 cipher suite?
1258  if(cipherSuite->prfHashAlgo != NULL)
1259  acceptable = FALSE;
1260  }
1261 
1262  //Although TLS 1.3 uses the same cipher suite space as previous versions
1263  //of TLS, TLS 1.3 cipher suites are defined differently, only specifying
1264  //the symmetric ciphers, and cannot be used for TLS 1.2
1265  if(maxVersion < TLS_VERSION_1_3)
1266  {
1267  //TLS 1.3 cipher suite?
1268  if(cipherSuite->keyExchMethod == TLS_KEY_EXCH_NONE)
1269  acceptable = FALSE;
1270  }
1271 
1272  //Similarly, TLS 1.2 and lower cipher suites cannot be used with TLS 1.3
1273  if(minVersion > TLS_VERSION_1_2)
1274  {
1275  //TLS 1.2 and lower cipher suite?
1276  if(cipherSuite->keyExchMethod != TLS_KEY_EXCH_NONE)
1277  acceptable = FALSE;
1278  }
1279 
1280  //The only stream cipher described in TLS 1.2 is RC4, which cannot be
1281  //randomly accessed. RC4 must not be used with DTLS
1282  if(transportProtocol == TLS_TRANSPORT_PROTOCOL_DATAGRAM)
1283  {
1284  //RC4 stream cipher?
1285  if(cipherSuite->cipherMode == CIPHER_MODE_STREAM)
1286  acceptable = FALSE;
1287  }
1288 
1289  //Return TRUE is the cipher suite can be used with the specified protocol
1290  //version
1291  return acceptable;
1292 }
1293 
1294 
1295 /**
1296  * @brief Check whether the specified identifier matches an ECC or FFDHE
1297  * cipher suite
1298  * @param[in] identifier Cipher suite identifier
1299  * @return Cipher suite type
1300  **/
1301 
1303 {
1304  uint_t i;
1306 
1307  //Initialize type
1309 
1310  //Loop through the list of supported cipher suites
1311  for(i = 0; i < arraysize(tlsSupportedCipherSuites); i++)
1312  {
1313  //Compare cipher suite identifier against the specified value
1315  {
1316  //Check key exchange mechanism
1317  switch(tlsSupportedCipherSuites[i].keyExchMethod)
1318  {
1323  //ECC cipher suite
1325  break;
1326  case TLS_KEY_EXCH_DH_ANON:
1327  case TLS_KEY_EXCH_DHE_RSA:
1328  case TLS_KEY_EXCH_DHE_DSS:
1329  case TLS_KEY_EXCH_DHE_PSK:
1330  //FFDHE cipher suite
1332  break;
1333  case TLS_KEY_EXCH_NONE:
1334  //TLS 1.3 cipher suite
1336  break;
1337  default:
1338  //Just for sanity
1339  break;
1340  }
1341 
1342  //We are done
1343  break;
1344  }
1345  }
1346 
1347  //Return cipher suite type
1348  return type;
1349 }
1350 
1351 #endif
TLS (Transport Layer Security)
#define DES3_CIPHER_ALGO
Definition: des3.h:39
#define DES_CIPHER_ALGO
Definition: des.h:38
char char_t
Definition: compiler_port.h:41
TlsCipherSuiteType tlsGetCipherSuiteType(uint16_t identifier)
Check whether the specified identifier matches an ECC or FFDHE cipher suite.
TlsCipherSuiteType
Cipher suite types.
const char_t * name
Definition: tls.h:1801
Debugging facilities.
RC4 encryption algorithm.
SEED encryption algorithm.
#define SEED_CIPHER_ALGO
Definition: seed.h:38
#define TLS_VERSION_1_3
Definition: tls.h:90
Camellia encryption algorithm.
char_t type
SHA-384 (Secure Hash Algorithm 384)
#define CAMELLIA_CIPHER_ALGO
Definition: camellia.h:38
#define TLS_CIPHER_SUITE(identifier, keyExchMethod, cipherAlgo, cipherMode, hashAlgo, prfHashAlgo, macKeyLen, encKeyLen, fixedIvLen, recordIvLen, authTagLen, verifyDataLen)
#define TRUE
Definition: os_port.h:48
#define arraysize(a)
Definition: os_port.h:68
#define IDEA_CIPHER_ALGO
Definition: idea.h:38
Triple DES (Triple Data Encryption Algorithm)
#define SHA256_HASH_ALGO
Definition: sha256.h:42
#define SHA384_HASH_ALGO
Definition: sha384.h:43
AES (Advanced Encryption Standard)
bool_t tlsIsCipherSuiteAcceptable(const TlsCipherSuiteInfo *cipherSuite, uint16_t minVersion, uint16_t maxVersion, TlsTransportProtocol transportProtocol)
Check whether a cipher suite can be used with a given protocol version.
ARIA encryption algorithm.
Structure describing a cipher suite.
Definition: tls.h:1798
uint8_t identifier[]
uint16_t cipherSuite
Cipher suite identifier.
Definition: tls13_misc.h:367
#define TLS_VERSION_1_2
Definition: tls.h:83
#define ARIA_CIPHER_ALGO
Definition: aria.h:38
TLS cipher suites.
DES (Data Encryption Standard)
const TlsCipherSuiteInfo tlsSupportedCipherSuites[]
TlsTransportProtocol
TLS transport protocols.
Definition: tls.h:844
unsigned int uint_t
Definition: compiler_port.h:43
SHA-1 (Secure Hash Algorithm 1)
#define SHA1_HASH_ALGO
Definition: sha1.h:42
#define AES_CIPHER_ALGO
Definition: aes.h:38
const char_t * tlsGetCipherSuiteName(uint16_t identifier)
Convert cipher suite identifier to string representation.
MD5 (Message-Digest Algorithm)
SHA-256 (Secure Hash Algorithm 256)
uint_t tlsGetNumSupportedCipherSuites(void)
Determine the number of cipher suites supported.
#define FALSE
Definition: os_port.h:44
int bool_t
Definition: compiler_port.h:47
#define MD5_HASH_ALGO
Definition: md5.h:42
IDEA encryption algorithm.
#define RC4_CIPHER_ALGO
Definition: rc4.h:36