tls_cipher_suites.h
Go to the documentation of this file.
1 /**
2  * @file tls_cipher_suites.h
3  * @brief TLS cipher suites
4  *
5  * @section License
6  *
7  * SPDX-License-Identifier: GPL-2.0-or-later
8  *
9  * Copyright (C) 2010-2024 Oryx Embedded SARL. All rights reserved.
10  *
11  * This file is part of CycloneSSL Open.
12  *
13  * This program is free software; you can redistribute it and/or
14  * modify it under the terms of the GNU General Public License
15  * as published by the Free Software Foundation; either version 2
16  * of the License, or (at your option) any later version.
17  *
18  * This program is distributed in the hope that it will be useful,
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21  * GNU General Public License for more details.
22  *
23  * You should have received a copy of the GNU General Public License
24  * along with this program; if not, write to the Free Software Foundation,
25  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
26  *
27  * @author Oryx Embedded SARL (www.oryx-embedded.com)
28  * @version 2.4.0
29  **/
30 
31 #ifndef _TLS_CIPHER_SUITES_H
32 #define _TLS_CIPHER_SUITES_H
33 
34 //Dependencies
35 #include "core/crypto.h"
36 #include "tls.h"
37 
38 //Macro for defining a cipher suite
39 #define TLS_CIPHER_SUITE(identifier, keyExchMethod, cipherAlgo, cipherMode, hashAlgo, prfHashAlgo, \
40  macKeyLen, encKeyLen, fixedIvLen, recordIvLen, authTagLen, verifyDataLen) \
41  {identifier, #identifier, keyExchMethod, cipherAlgo, cipherMode, hashAlgo, prfHashAlgo, \
42  macKeyLen, encKeyLen, fixedIvLen, recordIvLen, authTagLen, verifyDataLen}
43 
44 //C++ guard
45 #ifdef __cplusplus
46 extern "C" {
47 #endif
48 
49 
50 /**
51  * @brief TLS cipher suites
52  **/
53 
54 typedef enum
55 {
56  TLS_NULL_WITH_NULL_NULL = 0x0000, //RFC 2246
57 
58  TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003, //RFC 2246
60  TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0008, //RFC 2246
61  TLS_RSA_WITH_NULL_MD5 = 0x0001, //RFC 2246
62  TLS_RSA_WITH_NULL_SHA = 0x0002, //RFC 2246
63  TLS_RSA_WITH_NULL_SHA256 = 0x003B, //RFC 5246
64  TLS_RSA_WITH_RC4_128_MD5 = 0x0004, //RFC 2246
65  TLS_RSA_WITH_RC4_128_SHA = 0x0005, //RFC 2246
66  TLS_RSA_WITH_IDEA_CBC_SHA = 0x0007, //RFC 2246
67  TLS_RSA_WITH_DES_CBC_SHA = 0x0009, //RFC 2246
68  TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A, //RFC 2246
69  TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F, //RFC 3268
70  TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035, //RFC 3268
71  TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C, //RFC 5246
72  TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D, //RFC 5246
73  TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C, //RFC 5288
74  TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D, //RFC 5288
75  TLS_RSA_WITH_AES_128_CCM = 0xC09C, //RFC 6655
76  TLS_RSA_WITH_AES_256_CCM = 0xC09D, //RFC 6655
77  TLS_RSA_WITH_AES_128_CCM_8 = 0xC0A0, //RFC 6655
78  TLS_RSA_WITH_AES_256_CCM_8 = 0xC0A1, //RFC 6655
79  TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0041, //RFC 5932
80  TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0084, //RFC 5932
85  TLS_RSA_WITH_SEED_CBC_SHA = 0x0096, //RFC 4162
86  TLS_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC03C, //RFC 6209
87  TLS_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC03D, //RFC 6209
88  TLS_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC050, //RFC 6209
89  TLS_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC051, //RFC 6209
90 
92  TLS_DH_RSA_WITH_DES_CBC_SHA = 0x000F, //RFC 2246
93  TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0010, //RFC 2246
94  TLS_DH_RSA_WITH_AES_128_CBC_SHA = 0x0031, //RFC 3268
95  TLS_DH_RSA_WITH_AES_256_CBC_SHA = 0x0037, //RFC 3268
106  TLS_DH_RSA_WITH_SEED_CBC_SHA = 0x0098, //RFC 4162
111 
113  TLS_DHE_RSA_WITH_DES_CBC_SHA = 0x0015, //RFC 2246
115  TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033, //RFC 3268
116  TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039, //RFC 3268
121  TLS_DHE_RSA_WITH_AES_128_CCM = 0xC09E, //RFC 6655
122  TLS_DHE_RSA_WITH_AES_256_CCM = 0xC09F, //RFC 6655
123  TLS_DHE_RSA_WITH_AES_128_CCM_8 = 0xC0A2, //RFC 6655
124  TLS_DHE_RSA_WITH_AES_256_CCM_8 = 0xC0A3, //RFC 6655
131  TLS_DHE_RSA_WITH_SEED_CBC_SHA = 0x009A, //RFC 4162
137 
139  TLS_DH_DSS_WITH_DES_CBC_SHA = 0x000C, //RFC 2246
140  TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x000D, //RFC 2246
141  TLS_DH_DSS_WITH_AES_128_CBC_SHA = 0x0030, //RFC 3268
142  TLS_DH_DSS_WITH_AES_256_CBC_SHA = 0x0036, //RFC 3268
153  TLS_DH_DSS_WITH_SEED_CBC_SHA = 0x0097, //RFC 4162
158 
160  TLS_DHE_DSS_WITH_DES_CBC_SHA = 0x0012, //RFC 2246
162  TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032, //RFC 3268
163  TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038, //RFC 3268
174  TLS_DHE_DSS_WITH_SEED_CBC_SHA = 0x0099, //RFC 4162
179 
182  TLS_DH_ANON_WITH_RC4_128_MD5 = 0x0018, //RFC 2246
183  TLS_DH_ANON_WITH_DES_CBC_SHA = 0x001A, //RFC 2246
185  TLS_DH_ANON_WITH_AES_128_CBC_SHA = 0x0034, //RFC 3268
186  TLS_DH_ANON_WITH_AES_256_CBC_SHA = 0x003A, //RFC 3268
197  TLS_DH_ANON_WITH_SEED_CBC_SHA = 0x009B, //RFC 4162
202 
203  TLS_ECDH_RSA_WITH_NULL_SHA = 0xC00B, //RFC 4492
204  TLS_ECDH_RSA_WITH_RC4_128_SHA = 0xC00C, //RFC 4492
220 
221  TLS_ECDHE_RSA_WITH_NULL_SHA = 0xC010, //RFC 4492
222  TLS_ECDHE_RSA_WITH_RC4_128_SHA = 0xC011, //RFC 4492
239 
240  TLS_ECDH_ECDSA_WITH_NULL_SHA = 0xC001, //RFC 4492
241  TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 0xC002, //RFC 4492
257 
258  TLS_ECDHE_ECDSA_WITH_NULL_SHA = 0xC006, //RFC 4492
259  TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 0xC007, //RFC 4492
267  TLS_ECDHE_ECDSA_WITH_AES_128_CCM = 0xC0AC, //RFC 7251
268  TLS_ECDHE_ECDSA_WITH_AES_256_CCM = 0xC0AD, //RFC 7251
280 
281  TLS_ECDH_ANON_WITH_NULL_SHA = 0xC015, //RFC 4492
282  TLS_ECDH_ANON_WITH_RC4_128_SHA = 0xC016, //RFC 4492
286 
287  TLS_PSK_WITH_NULL_SHA = 0x002C, //RFC 4785
288  TLS_PSK_WITH_NULL_SHA256 = 0x00B0, //RFC 5487
289  TLS_PSK_WITH_NULL_SHA384 = 0x00B1, //RFC 5487
290  TLS_PSK_WITH_RC4_128_SHA = 0x008A, //RFC 4279
291  TLS_PSK_WITH_3DES_EDE_CBC_SHA = 0x008B, //RFC 4279
292  TLS_PSK_WITH_AES_128_CBC_SHA = 0x008C, //RFC 4279
293  TLS_PSK_WITH_AES_256_CBC_SHA = 0x008D, //RFC 4279
294  TLS_PSK_WITH_AES_128_CBC_SHA256 = 0x00AE, //RFC 5487
295  TLS_PSK_WITH_AES_256_CBC_SHA384 = 0x00AF, //RFC 5487
296  TLS_PSK_WITH_AES_128_GCM_SHA256 = 0x00A8, //RFC 5487
297  TLS_PSK_WITH_AES_256_GCM_SHA384 = 0x00A9, //RFC 5487
298  TLS_PSK_WITH_AES_128_CCM = 0xC0A4, //RFC 6655
299  TLS_PSK_WITH_AES_256_CCM = 0xC0A5, //RFC 6655
300  TLS_PSK_WITH_AES_128_CCM_8 = 0xC0A8, //RFC 6655
301  TLS_PSK_WITH_AES_256_CCM_8 = 0xC0A9, //RFC 6655
306  TLS_PSK_WITH_ARIA_128_CBC_SHA256 = 0xC064, //RFC 6209
307  TLS_PSK_WITH_ARIA_256_CBC_SHA384 = 0xC065, //RFC 6209
308  TLS_PSK_WITH_ARIA_128_GCM_SHA256 = 0xC06A, //RFC 6209
309  TLS_PSK_WITH_ARIA_256_GCM_SHA384 = 0xC06B, //RFC 6209
311 
312  TLS_RSA_PSK_WITH_NULL_SHA = 0x002E, //RFC 4785
313  TLS_RSA_PSK_WITH_NULL_SHA256 = 0x00B8, //RFC 5487
314  TLS_RSA_PSK_WITH_NULL_SHA384 = 0x00B9, //RFC 5487
315  TLS_RSA_PSK_WITH_RC4_128_SHA = 0x0092, //RFC 4279
317  TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 0x0094, //RFC 4279
318  TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 0x0095, //RFC 4279
332 
333  TLS_DHE_PSK_WITH_NULL_SHA = 0x002D, //RFC 4785
334  TLS_DHE_PSK_WITH_NULL_SHA256 = 0x00B4, //RFC 5487
335  TLS_DHE_PSK_WITH_NULL_SHA384 = 0x00B5, //RFC 5487
336  TLS_DHE_PSK_WITH_RC4_128_SHA = 0x008E, //RFC 4279
338  TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 0x0090, //RFC 4279
339  TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 0x0091, //RFC 4279
344  TLS_DHE_PSK_WITH_AES_128_CCM = 0xC0A6, //RFC 6655
345  TLS_DHE_PSK_WITH_AES_256_CCM = 0xC0A7, //RFC 6655
346  TLS_DHE_PSK_WITH_AES_128_CCM_8 = 0xC0AA, //RFC 6655
347  TLS_DHE_PSK_WITH_AES_256_CCM_8 = 0xC0AB, //RFC 6655
357 
358  TLS_ECDHE_PSK_WITH_NULL_SHA = 0xC039, //RFC 5489
359  TLS_ECDHE_PSK_WITH_NULL_SHA256 = 0xC03A, //RFC 5489
360  TLS_ECDHE_PSK_WITH_NULL_SHA384 = 0xC03B, //RFC 5489
361  TLS_ECDHE_PSK_WITH_RC4_128_SHA = 0xC033, //RFC 5489
376 
377  TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = 0x002B, //RFC 2712
378  TLS_KRB5_EXPORT_WITH_RC4_40_SHA = 0x0028, //RFC 2712
383  TLS_KRB5_WITH_RC4_128_MD5 = 0x0024, //RFC 2712
384  TLS_KRB5_WITH_RC4_128_SHA = 0x0020, //RFC 2712
385  TLS_KRB5_WITH_IDEA_CBC_MD5 = 0x0025, //RFC 2712
386  TLS_KRB5_WITH_IDEA_CBC_SHA = 0x0021, //RFC 2712
387  TLS_KRB5_WITH_DES_CBC_MD5 = 0x0022, //RFC 2712
388  TLS_KRB5_WITH_DES_CBC_SHA = 0x001E, //RFC 2712
389  TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = 0x0023, //RFC 2712
390  TLS_KRB5_WITH_3DES_EDE_CBC_SHA = 0x001F, //RFC 2712
391 
393  TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 0xC01D, //RFC 5054
394  TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 0xC020, //RFC 5054
401 
406 
410 
411  TLS_AES_128_GCM_SHA256 = 0x1301, //RFC 8446
412  TLS_AES_256_GCM_SHA384 = 0x1302, //RFC 8446
413  TLS_AES_128_CCM_SHA256 = 0x1304, //RFC 8446
414  TLS_AES_128_CCM_8_SHA256 = 0x1305, //RFC 8446
415  TLS_CHACHA20_POLY1305_SHA256 = 0x1303, //RFC 8446
416  TLS_SM4_GCM_SM3 = 0x00C6, //RFC 8998
417  TLS_SM4_CCM_SM3 = 0x00C7, //RFC 8998
422  TLS_SHA256_SHA256 = 0xC0B4, //RFC 9150
423  TLS_SHA384_SHA384 = 0xC0B5, //RFC 9150
424 
426  TLS_FALLBACK_SCSV = 0x5600 //RFC 7507
428 
429 
430 /**
431  * @brief Cipher suite types
432  **/
433 
434 typedef enum
435 {
446 
447 
448 //List of supported cipher suites
450 
451 //TLS related functions
453 const char_t *tlsGetCipherSuiteName(uint16_t identifier);
454 
456  uint16_t minVersion, uint16_t maxVersion,
457  TlsTransportProtocol transportProtocol);
458 
460 
461 //C++ guard
462 #ifdef __cplusplus
463 }
464 #endif
465 
466 #endif
unsigned int uint_t
Definition: compiler_port.h:50
char char_t
Definition: compiler_port.h:48
int bool_t
Definition: compiler_port.h:53
General definitions for cryptographic algorithms.
uint8_t identifier[]
Structure describing a cipher suite.
Definition: tls.h:1999
TLS (Transport Layer Security)
TlsTransportProtocol
TLS transport protocols.
Definition: tls.h:940
uint16_t cipherSuite
Cipher suite identifier.
Definition: tls.h:1866
const char_t * tlsGetCipherSuiteName(uint16_t identifier)
Convert cipher suite identifier to string representation.
uint_t tlsGetNumSupportedCipherSuites(void)
Determine the number of cipher suites supported.
uint_t tlsGetCipherSuiteType(uint16_t identifier)
Retrieve the cipher suite type for a given identifier.
TlsCipherSuiteType
Cipher suite types.
@ TLS_CIPHER_SUITE_TYPE_RSA
@ TLS_CIPHER_SUITE_TYPE_DH
@ TLS_CIPHER_SUITE_TYPE_UNKNOWN
@ TLS_CIPHER_SUITE_TYPE_DSA
@ TLS_CIPHER_SUITE_TYPE_ECDH
@ TLS_CIPHER_SUITE_TYPE_TLS13
@ TLS_CIPHER_SUITE_TYPE_SM
@ TLS_CIPHER_SUITE_TYPE_PSK
@ TLS_CIPHER_SUITE_TYPE_ECDSA
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.
const TlsCipherSuiteInfo tlsSupportedCipherSuites[]
TlsCipherSuite
TLS cipher suites.
@ TLS_RSA_PSK_WITH_NULL_SHA
@ TLS_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384
@ TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA
@ TLS_DHE_PSK_WITH_NULL_SHA384
@ TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_DH_DSS_WITH_AES_256_CBC_SHA256
@ TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_KRB5_EXPORT_WITH_RC4_40_SHA
@ TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
@ TLS_RSA_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDH_ANON_WITH_RC4_128_SHA
@ TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
@ TLS_PSK_WITH_NULL_SHA384
@ TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384
@ TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256
@ TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_PSK_WITH_AES_256_CBC_SHA
@ TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA
@ TLS_DHE_DSS_WITH_AES_256_GCM_SHA384
@ TLS_ECDHE_ECDSA_WITH_AES_128_CCM
@ TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384
@ TLS_ECDH_RSA_WITH_RC4_128_SHA
@ TLS_PSK_WITH_CHACHA20_POLY1305_SHA256
@ TLS_KRB5_WITH_3DES_EDE_CBC_SHA
@ TLS_AES_128_CCM_8_SHA256
@ TLS_PSK_WITH_RC4_128_SHA
@ TLS_RSA_EXPORT_WITH_RC4_40_MD5
@ TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256
@ TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8
@ TLS_KRB5_WITH_RC4_128_MD5
@ TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_DHE_DSS_WITH_AES_128_GCM_SHA256
@ TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
@ TLS_SRP_SHA_WITH_AES_128_CBC_SHA
@ TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256
@ TLS_DHE_RSA_WITH_AES_128_CCM
@ TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384
@ TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256
@ TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384
@ TLS_CHACHA20_POLY1305_SHA256
@ TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_AES_256_GCM_SHA384
@ TLS_ECDH_ECDSA_WITH_RC4_128_SHA
@ TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_DH_DSS_WITH_AES_256_CBC_SHA
@ TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384
@ TLS_GOSTR341112_256_WITH_MAGMA_MGM_S
@ TLS_ECDHE_PSK_WITH_RC4_128_SHA
@ TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384
@ TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
@ TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_PSK_WITH_ARIA_256_CBC_SHA384
@ TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
@ TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_AES_256_CCM
@ TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256
@ TLS_DHE_PSK_WITH_AES_256_CCM
@ TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384
@ TLS_DH_DSS_WITH_AES_128_GCM_SHA256
@ TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
@ TLS_RSA_PSK_WITH_AES_256_CBC_SHA
@ TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256
@ TLS_RSA_WITH_ARIA_256_GCM_SHA384
@ TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5
@ TLS_PSK_WITH_3DES_EDE_CBC_SHA
@ TLS_PSK_WITH_AES_128_CCM_8
@ TLS_DHE_PSK_WITH_AES_128_CCM
@ TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256
@ TLS_DH_DSS_WITH_AES_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
@ TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384
@ TLS_DH_RSA_WITH_SEED_CBC_SHA
@ TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
@ TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA
@ TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_RSA_WITH_NULL_SHA256
@ TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
@ TLS_PSK_WITH_AES_128_CBC_SHA
@ TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_RSA_PSK_WITH_NULL_SHA256
@ TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256
@ TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
@ TLS_SM4_GCM_SM3
@ TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA
@ TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S
@ TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_DSS_WITH_AES_128_CBC_SHA
@ TLS_RSA_WITH_NULL_MD5
@ TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256
@ TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC
@ TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
@ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
@ TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5
@ TLS_KRB5_WITH_DES_CBC_SHA
@ TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384
@ TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256
@ TLS_KRB5_WITH_3DES_EDE_CBC_MD5
@ TLS_PSK_WITH_NULL_SHA
@ TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
@ TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
@ TLS_KRB5_WITH_IDEA_CBC_SHA
@ TLS_ECDH_ANON_WITH_NULL_SHA
@ TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
@ TLS_PSK_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDHE_RSA_WITH_NULL_SHA
@ TLS_RSA_WITH_AES_128_CCM_8
@ TLS_DHE_DSS_WITH_SEED_CBC_SHA
@ TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA
@ TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384
@ TLS_PSK_WITH_AES_128_CBC_SHA256
@ TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_DHE_RSA_WITH_AES_256_CCM
@ TLS_KRB5_WITH_DES_CBC_MD5
@ TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384
@ TLS_DH_RSA_WITH_AES_128_GCM_SHA256
@ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
@ TLS_RSA_WITH_AES_128_CBC_SHA
@ TLS_DH_ANON_WITH_AES_128_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_PSK_WITH_AES_128_GCM_SHA256
@ TLS_RSA_PSK_WITH_NULL_SHA384
@ TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
@ TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L
@ TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA
@ TLS_SRP_SHA_WITH_AES_256_CBC_SHA
@ TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_PSK_WITH_AES_256_CBC_SHA384
@ TLS_ECCPWD_WITH_AES_128_GCM_SHA256
@ TLS_DHE_RSA_WITH_AES_128_CCM_8
@ TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384
@ TLS_DHE_RSA_WITH_AES_256_CCM_8
@ TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384
@ TLS_RSA_WITH_AES_128_CBC_SHA256
@ TLS_ECDHE_PSK_WITH_NULL_SHA
@ TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA
@ TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256
@ TLS_ECCPWD_WITH_AES_256_CCM_SHA384
@ TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA
@ TLS_FALLBACK_SCSV
@ TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
@ TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
@ TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384
@ TLS_ECDH_ANON_WITH_AES_256_CBC_SHA
@ TLS_RSA_PSK_WITH_AES_128_CBC_SHA
@ TLS_DH_RSA_WITH_AES_256_CBC_SHA256
@ TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
@ TLS_DHE_RSA_WITH_AES_256_CBC_SHA
@ TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_PSK_WITH_AES_128_CCM
@ TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384
@ TLS_PSK_WITH_NULL_SHA256
@ TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
@ TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA
@ TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
@ TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256
@ TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA
@ TLS_DHE_RSA_WITH_AES_128_CBC_SHA
@ TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
@ TLS_DH_DSS_WITH_AES_256_GCM_SHA384
@ TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
@ TLS_ECCPWD_WITH_AES_128_CCM_SHA256
@ TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_NULL_SHA
@ TLS_DH_ANON_WITH_DES_CBC_SHA
@ TLS_DH_ANON_WITH_AES_256_CBC_SHA256
@ TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256
@ TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
@ TLS_DHE_DSS_WITH_DES_CBC_SHA
@ TLS_DH_ANON_WITH_RC4_128_MD5
@ TLS_RSA_PSK_WITH_RC4_128_SHA
@ TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_ECDH_RSA_WITH_NULL_SHA
@ TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA
@ TLS_RSA_WITH_ARIA_256_CBC_SHA384
@ TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA
@ TLS_KRB5_WITH_RC4_128_SHA
@ TLS_SHA256_SHA256
@ TLS_KRB5_WITH_IDEA_CBC_MD5
@ TLS_DH_RSA_WITH_AES_128_CBC_SHA256
@ TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
@ TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA
@ TLS_DH_ANON_WITH_AES_256_CBC_SHA
@ TLS_DH_ANON_WITH_AES_256_GCM_SHA384
@ TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_DH_ANON_WITH_SEED_CBC_SHA
@ TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256
@ TLS_RSA_WITH_AES_256_CBC_SHA256
@ TLS_ECDHE_PSK_WITH_NULL_SHA384
@ TLS_DHE_PSK_WITH_AES_128_CBC_SHA
@ TLS_DHE_DSS_WITH_AES_128_CBC_SHA256
@ TLS_PSK_WITH_ARIA_128_CBC_SHA256
@ TLS_DH_DSS_WITH_AES_128_CBC_SHA
@ TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
@ TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384
@ TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
@ TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
@ TLS_RSA_WITH_RC4_128_MD5
@ TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384
@ TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384
@ TLS_DHE_RSA_WITH_DES_CBC_SHA
@ TLS_AES_128_CCM_SHA256
@ TLS_DH_ANON_WITH_AES_128_CBC_SHA256
@ TLS_DH_RSA_WITH_AES_256_GCM_SHA384
@ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
@ TLS_DHE_PSK_WITH_AES_256_CBC_SHA
@ TLS_EMPTY_RENEGOTIATION_INFO_SCSV
@ TLS_ECDHE_PSK_WITH_NULL_SHA256
@ TLS_RSA_WITH_AES_128_CCM
@ TLS_PSK_WITH_AES_256_CCM_8
@ TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
@ TLS_RSA_WITH_ARIA_128_GCM_SHA256
@ TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256
@ TLS_DHE_DSS_WITH_AES_256_CBC_SHA256
@ TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5
@ TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384
@ TLS_DH_RSA_WITH_AES_128_CBC_SHA
@ TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
@ TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA
@ TLS_RSA_WITH_AES_256_GCM_SHA384
@ TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA
@ TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
@ TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_RSA_WITH_SEED_CBC_SHA
@ TLS_DHE_DSS_WITH_AES_256_CBC_SHA
@ TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
@ TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384
@ TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
@ TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384
@ TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
@ TLS_AES_128_GCM_SHA256
@ TLS_PSK_WITH_ARIA_256_GCM_SHA384
@ TLS_RSA_WITH_NULL_SHA
@ TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA
@ TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
@ TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
@ TLS_RSA_WITH_DES_CBC_SHA
@ TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256
@ TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA
@ TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
@ TLS_DH_ANON_WITH_AES_128_GCM_SHA256
@ TLS_DH_RSA_WITH_AES_256_CBC_SHA
@ TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384
@ TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_SHA384_SHA384
@ TLS_DH_DSS_WITH_DES_CBC_SHA
@ TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
@ TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_RSA_WITH_IDEA_CBC_SHA
@ TLS_DH_DSS_WITH_SEED_CBC_SHA
@ TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
@ TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256
@ TLS_RSA_WITH_RC4_128_SHA
@ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
@ TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC
@ TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5
@ TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
@ TLS_ECDH_ANON_WITH_AES_128_CBC_SHA
@ TLS_DHE_RSA_WITH_SEED_CBC_SHA
@ TLS_NULL_WITH_NULL_NULL
@ TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_GOSTR341112_256_WITH_28147_CNT_IMIT
@ TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA
@ TLS_DHE_PSK_WITH_NULL_SHA
@ TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
@ TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_ECDH_ECDSA_WITH_NULL_SHA
@ TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
@ TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_DH_RSA_WITH_DES_CBC_SHA
@ TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
@ TLS_DHE_PSK_WITH_RC4_128_SHA
@ TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
@ TLS_DHE_PSK_WITH_AES_128_CCM_8
@ TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256
@ TLS_ECDHE_RSA_WITH_RC4_128_SHA
@ TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
@ TLS_RSA_WITH_AES_128_GCM_SHA256
@ TLS_RSA_EXPORT_WITH_DES40_CBC_SHA
@ TLS_ECCPWD_WITH_AES_256_GCM_SHA384
@ TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256
@ TLS_DHE_PSK_WITH_NULL_SHA256
@ TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
@ TLS_RSA_WITH_AES_256_CCM_8
@ TLS_GOSTR341112_256_WITH_MAGMA_MGM_L
@ TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384
@ TLS_PSK_WITH_AES_256_GCM_SHA384
@ TLS_RSA_WITH_AES_256_CCM
@ TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
@ TLS_DHE_PSK_WITH_AES_256_CCM_8
@ TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384
@ TLS_RSA_WITH_AES_256_CBC_SHA
@ TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256
@ TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8
@ TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
@ TLS_SM4_CCM_SM3
@ TLS_PSK_WITH_AES_256_CCM
@ TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256
@ TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
@ TLS_KRB5_EXPORT_WITH_RC4_40_MD5
@ TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
@ TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
@ TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA
@ TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA
@ TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
@ TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384