1 | /***************************************************************************
|
---|
2 | * _ _ ____ _
|
---|
3 | * Project ___| | | | _ \| |
|
---|
4 | * / __| | | | |_) | |
|
---|
5 | * | (__| |_| | _ <| |___
|
---|
6 | * \___|\___/|_| \_\_____|
|
---|
7 | *
|
---|
8 | * Copyright (C) Jan Venekamp, <[email protected]>
|
---|
9 | *
|
---|
10 | * This software is licensed as described in the file COPYING, which
|
---|
11 | * you should have received as part of this distribution. The terms
|
---|
12 | * are also available at https://curl.se/docs/copyright.html.
|
---|
13 | *
|
---|
14 | * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
---|
15 | * copies of the Software, and permit persons to whom the Software is
|
---|
16 | * furnished to do so, under the terms of the COPYING file.
|
---|
17 | *
|
---|
18 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
---|
19 | * KIND, either express or implied.
|
---|
20 | *
|
---|
21 | * SPDX-License-Identifier: curl
|
---|
22 | *
|
---|
23 | ***************************************************************************/
|
---|
24 | #include "curl_setup.h"
|
---|
25 |
|
---|
26 | #if defined(USE_SECTRANSP) || defined(USE_MBEDTLS) || \
|
---|
27 | defined(USE_BEARSSL) || defined(USE_RUSTLS)
|
---|
28 | #include "cipher_suite.h"
|
---|
29 | #include "curl_printf.h"
|
---|
30 | #include "strcase.h"
|
---|
31 | #include <string.h>
|
---|
32 |
|
---|
33 | /*
|
---|
34 | * To support the CURLOPT_SSL_CIPHER_LIST option on SSL backends
|
---|
35 | * that do not support it natively, but do support setting a list of
|
---|
36 | * IANA ids, we need a list of all supported cipher suite names
|
---|
37 | * (OpenSSL and IANA) to be able to look up the IANA ids.
|
---|
38 | *
|
---|
39 | * To keep the binary size of this list down we compress each entry
|
---|
40 | * down to 2 + 6 bytes using the C preprocessor.
|
---|
41 | */
|
---|
42 |
|
---|
43 | /*
|
---|
44 | * mbedTLS NOTE: mbedTLS has mbedtls_ssl_get_ciphersuite_id() to
|
---|
45 | * convert a string representation to an IANA id, we do not use that
|
---|
46 | * because it does not support "standard" OpenSSL cipher suite
|
---|
47 | * names, nor IANA names.
|
---|
48 | */
|
---|
49 |
|
---|
50 | /* NOTE: also see tests/unit/unit3205.c */
|
---|
51 |
|
---|
52 | /* Text for cipher suite parts (max 64 entries),
|
---|
53 | keep indexes below in sync with this! */
|
---|
54 | static const char *cs_txt =
|
---|
55 | "\0"
|
---|
56 | "TLS" "\0"
|
---|
57 | "WITH" "\0"
|
---|
58 | "128" "\0"
|
---|
59 | "256" "\0"
|
---|
60 | "3DES" "\0"
|
---|
61 | "8" "\0"
|
---|
62 | "AES" "\0"
|
---|
63 | "AES128" "\0"
|
---|
64 | "AES256" "\0"
|
---|
65 | "CBC" "\0"
|
---|
66 | "CBC3" "\0"
|
---|
67 | "CCM" "\0"
|
---|
68 | "CCM8" "\0"
|
---|
69 | "CHACHA20" "\0"
|
---|
70 | "DES" "\0"
|
---|
71 | "DHE" "\0"
|
---|
72 | "ECDH" "\0"
|
---|
73 | "ECDHE" "\0"
|
---|
74 | "ECDSA" "\0"
|
---|
75 | "EDE" "\0"
|
---|
76 | "GCM" "\0"
|
---|
77 | "MD5" "\0"
|
---|
78 | "NULL" "\0"
|
---|
79 | "POLY1305" "\0"
|
---|
80 | "PSK" "\0"
|
---|
81 | "RSA" "\0"
|
---|
82 | "SHA" "\0"
|
---|
83 | "SHA256" "\0"
|
---|
84 | "SHA384" "\0"
|
---|
85 | #if defined(USE_MBEDTLS)
|
---|
86 | "ARIA" "\0"
|
---|
87 | "ARIA128" "\0"
|
---|
88 | "ARIA256" "\0"
|
---|
89 | "CAMELLIA" "\0"
|
---|
90 | "CAMELLIA128" "\0"
|
---|
91 | "CAMELLIA256" "\0"
|
---|
92 | #endif
|
---|
93 | #if defined(USE_SECTRANSP)
|
---|
94 | "40" "\0"
|
---|
95 | "ADH" "\0"
|
---|
96 | "AECDH" "\0"
|
---|
97 | "anon" "\0"
|
---|
98 | "DES40" "\0"
|
---|
99 | "DH" "\0"
|
---|
100 | "DSS" "\0"
|
---|
101 | "EDH" "\0"
|
---|
102 | "EXP" "\0"
|
---|
103 | "EXPORT" "\0"
|
---|
104 | "IDEA" "\0"
|
---|
105 | "RC2" "\0"
|
---|
106 | "RC4" "\0"
|
---|
107 | #endif
|
---|
108 | ;
|
---|
109 | /* Indexes of above cs_txt */
|
---|
110 | enum {
|
---|
111 | CS_TXT_IDX_,
|
---|
112 | CS_TXT_IDX_TLS,
|
---|
113 | CS_TXT_IDX_WITH,
|
---|
114 | CS_TXT_IDX_128,
|
---|
115 | CS_TXT_IDX_256,
|
---|
116 | CS_TXT_IDX_3DES,
|
---|
117 | CS_TXT_IDX_8,
|
---|
118 | CS_TXT_IDX_AES,
|
---|
119 | CS_TXT_IDX_AES128,
|
---|
120 | CS_TXT_IDX_AES256,
|
---|
121 | CS_TXT_IDX_CBC,
|
---|
122 | CS_TXT_IDX_CBC3,
|
---|
123 | CS_TXT_IDX_CCM,
|
---|
124 | CS_TXT_IDX_CCM8,
|
---|
125 | CS_TXT_IDX_CHACHA20,
|
---|
126 | CS_TXT_IDX_DES,
|
---|
127 | CS_TXT_IDX_DHE,
|
---|
128 | CS_TXT_IDX_ECDH,
|
---|
129 | CS_TXT_IDX_ECDHE,
|
---|
130 | CS_TXT_IDX_ECDSA,
|
---|
131 | CS_TXT_IDX_EDE,
|
---|
132 | CS_TXT_IDX_GCM,
|
---|
133 | CS_TXT_IDX_MD5,
|
---|
134 | CS_TXT_IDX_NULL,
|
---|
135 | CS_TXT_IDX_POLY1305,
|
---|
136 | CS_TXT_IDX_PSK,
|
---|
137 | CS_TXT_IDX_RSA,
|
---|
138 | CS_TXT_IDX_SHA,
|
---|
139 | CS_TXT_IDX_SHA256,
|
---|
140 | CS_TXT_IDX_SHA384,
|
---|
141 | #if defined(USE_MBEDTLS)
|
---|
142 | CS_TXT_IDX_ARIA,
|
---|
143 | CS_TXT_IDX_ARIA128,
|
---|
144 | CS_TXT_IDX_ARIA256,
|
---|
145 | CS_TXT_IDX_CAMELLIA,
|
---|
146 | CS_TXT_IDX_CAMELLIA128,
|
---|
147 | CS_TXT_IDX_CAMELLIA256,
|
---|
148 | #endif
|
---|
149 | #if defined(USE_SECTRANSP)
|
---|
150 | CS_TXT_IDX_40,
|
---|
151 | CS_TXT_IDX_ADH,
|
---|
152 | CS_TXT_IDX_AECDH,
|
---|
153 | CS_TXT_IDX_anon,
|
---|
154 | CS_TXT_IDX_DES40,
|
---|
155 | CS_TXT_IDX_DH,
|
---|
156 | CS_TXT_IDX_DSS,
|
---|
157 | CS_TXT_IDX_EDH,
|
---|
158 | CS_TXT_IDX_EXP,
|
---|
159 | CS_TXT_IDX_EXPORT,
|
---|
160 | CS_TXT_IDX_IDEA,
|
---|
161 | CS_TXT_IDX_RC2,
|
---|
162 | CS_TXT_IDX_RC4,
|
---|
163 | #endif
|
---|
164 | CS_TXT_LEN,
|
---|
165 | };
|
---|
166 |
|
---|
167 | #define CS_ZIP_IDX(a, b, c, d, e, f, g, h) \
|
---|
168 | { \
|
---|
169 | (uint8_t) ((((a) << 2) & 0xFF) | ((b) & 0x3F) >> 4), \
|
---|
170 | (uint8_t) ((((b) << 4) & 0xFF) | ((c) & 0x3F) >> 2), \
|
---|
171 | (uint8_t) ((((c) << 6) & 0xFF) | ((d) & 0x3F)), \
|
---|
172 | (uint8_t) ((((e) << 2) & 0xFF) | ((f) & 0x3F) >> 4), \
|
---|
173 | (uint8_t) ((((f) << 4) & 0xFF) | ((g) & 0x3F) >> 2), \
|
---|
174 | (uint8_t) ((((g) << 6) & 0xFF) | ((h) & 0x3F)) \
|
---|
175 | }
|
---|
176 | #define CS_ENTRY(id, a, b, c, d, e, f, g, h) \
|
---|
177 | { \
|
---|
178 | id, \
|
---|
179 | CS_ZIP_IDX( \
|
---|
180 | CS_TXT_IDX_ ## a, CS_TXT_IDX_ ## b, \
|
---|
181 | CS_TXT_IDX_ ## c, CS_TXT_IDX_ ## d, \
|
---|
182 | CS_TXT_IDX_ ## e, CS_TXT_IDX_ ## f, \
|
---|
183 | CS_TXT_IDX_ ## g, CS_TXT_IDX_ ## h \
|
---|
184 | ) \
|
---|
185 | }
|
---|
186 |
|
---|
187 | struct cs_entry {
|
---|
188 | uint16_t id;
|
---|
189 | uint8_t zip[6];
|
---|
190 | };
|
---|
191 |
|
---|
192 | /* !checksrc! disable COMMANOSPACE all */
|
---|
193 | static const struct cs_entry cs_list [] = {
|
---|
194 | /* TLS 1.3 ciphers */
|
---|
195 | #if defined(USE_SECTRANSP) || defined(USE_MBEDTLS) || defined(USE_RUSTLS)
|
---|
196 | CS_ENTRY(0x1301, TLS,AES,128,GCM,SHA256,,,),
|
---|
197 | CS_ENTRY(0x1302, TLS,AES,256,GCM,SHA384,,,),
|
---|
198 | CS_ENTRY(0x1303, TLS,CHACHA20,POLY1305,SHA256,,,,),
|
---|
199 | CS_ENTRY(0x1304, TLS,AES,128,CCM,SHA256,,,),
|
---|
200 | CS_ENTRY(0x1305, TLS,AES,128,CCM,8,SHA256,,),
|
---|
201 | #endif
|
---|
202 | /* TLS 1.2 ciphers */
|
---|
203 | CS_ENTRY(0xC02B, TLS,ECDHE,ECDSA,WITH,AES,128,GCM,SHA256),
|
---|
204 | CS_ENTRY(0xC02B, ECDHE,ECDSA,AES128,GCM,SHA256,,,),
|
---|
205 | CS_ENTRY(0xC02C, TLS,ECDHE,ECDSA,WITH,AES,256,GCM,SHA384),
|
---|
206 | CS_ENTRY(0xC02C, ECDHE,ECDSA,AES256,GCM,SHA384,,,),
|
---|
207 | CS_ENTRY(0xC02F, TLS,ECDHE,RSA,WITH,AES,128,GCM,SHA256),
|
---|
208 | CS_ENTRY(0xC02F, ECDHE,RSA,AES128,GCM,SHA256,,,),
|
---|
209 | CS_ENTRY(0xC030, TLS,ECDHE,RSA,WITH,AES,256,GCM,SHA384),
|
---|
210 | CS_ENTRY(0xC030, ECDHE,RSA,AES256,GCM,SHA384,,,),
|
---|
211 | CS_ENTRY(0xCCA8, TLS,ECDHE,RSA,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
212 | CS_ENTRY(0xCCA8, ECDHE,RSA,CHACHA20,POLY1305,,,,),
|
---|
213 | CS_ENTRY(0xCCA9, TLS,ECDHE,ECDSA,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
214 | CS_ENTRY(0xCCA9, ECDHE,ECDSA,CHACHA20,POLY1305,,,,),
|
---|
215 | #if defined(USE_SECTRANSP) || defined(USE_MBEDTLS) || defined(USE_BEARSSL)
|
---|
216 | CS_ENTRY(0x002F, TLS,RSA,WITH,AES,128,CBC,SHA,),
|
---|
217 | CS_ENTRY(0x002F, AES128,SHA,,,,,,),
|
---|
218 | CS_ENTRY(0x0035, TLS,RSA,WITH,AES,256,CBC,SHA,),
|
---|
219 | CS_ENTRY(0x0035, AES256,SHA,,,,,,),
|
---|
220 | CS_ENTRY(0x003C, TLS,RSA,WITH,AES,128,CBC,SHA256,),
|
---|
221 | CS_ENTRY(0x003C, AES128,SHA256,,,,,,),
|
---|
222 | CS_ENTRY(0x003D, TLS,RSA,WITH,AES,256,CBC,SHA256,),
|
---|
223 | CS_ENTRY(0x003D, AES256,SHA256,,,,,,),
|
---|
224 | CS_ENTRY(0x009C, TLS,RSA,WITH,AES,128,GCM,SHA256,),
|
---|
225 | CS_ENTRY(0x009C, AES128,GCM,SHA256,,,,,),
|
---|
226 | CS_ENTRY(0x009D, TLS,RSA,WITH,AES,256,GCM,SHA384,),
|
---|
227 | CS_ENTRY(0x009D, AES256,GCM,SHA384,,,,,),
|
---|
228 | CS_ENTRY(0xC004, TLS,ECDH,ECDSA,WITH,AES,128,CBC,SHA),
|
---|
229 | CS_ENTRY(0xC004, ECDH,ECDSA,AES128,SHA,,,,),
|
---|
230 | CS_ENTRY(0xC005, TLS,ECDH,ECDSA,WITH,AES,256,CBC,SHA),
|
---|
231 | CS_ENTRY(0xC005, ECDH,ECDSA,AES256,SHA,,,,),
|
---|
232 | CS_ENTRY(0xC009, TLS,ECDHE,ECDSA,WITH,AES,128,CBC,SHA),
|
---|
233 | CS_ENTRY(0xC009, ECDHE,ECDSA,AES128,SHA,,,,),
|
---|
234 | CS_ENTRY(0xC00A, TLS,ECDHE,ECDSA,WITH,AES,256,CBC,SHA),
|
---|
235 | CS_ENTRY(0xC00A, ECDHE,ECDSA,AES256,SHA,,,,),
|
---|
236 | CS_ENTRY(0xC00E, TLS,ECDH,RSA,WITH,AES,128,CBC,SHA),
|
---|
237 | CS_ENTRY(0xC00E, ECDH,RSA,AES128,SHA,,,,),
|
---|
238 | CS_ENTRY(0xC00F, TLS,ECDH,RSA,WITH,AES,256,CBC,SHA),
|
---|
239 | CS_ENTRY(0xC00F, ECDH,RSA,AES256,SHA,,,,),
|
---|
240 | CS_ENTRY(0xC013, TLS,ECDHE,RSA,WITH,AES,128,CBC,SHA),
|
---|
241 | CS_ENTRY(0xC013, ECDHE,RSA,AES128,SHA,,,,),
|
---|
242 | CS_ENTRY(0xC014, TLS,ECDHE,RSA,WITH,AES,256,CBC,SHA),
|
---|
243 | CS_ENTRY(0xC014, ECDHE,RSA,AES256,SHA,,,,),
|
---|
244 | CS_ENTRY(0xC023, TLS,ECDHE,ECDSA,WITH,AES,128,CBC,SHA256),
|
---|
245 | CS_ENTRY(0xC023, ECDHE,ECDSA,AES128,SHA256,,,,),
|
---|
246 | CS_ENTRY(0xC024, TLS,ECDHE,ECDSA,WITH,AES,256,CBC,SHA384),
|
---|
247 | CS_ENTRY(0xC024, ECDHE,ECDSA,AES256,SHA384,,,,),
|
---|
248 | CS_ENTRY(0xC025, TLS,ECDH,ECDSA,WITH,AES,128,CBC,SHA256),
|
---|
249 | CS_ENTRY(0xC025, ECDH,ECDSA,AES128,SHA256,,,,),
|
---|
250 | CS_ENTRY(0xC026, TLS,ECDH,ECDSA,WITH,AES,256,CBC,SHA384),
|
---|
251 | CS_ENTRY(0xC026, ECDH,ECDSA,AES256,SHA384,,,,),
|
---|
252 | CS_ENTRY(0xC027, TLS,ECDHE,RSA,WITH,AES,128,CBC,SHA256),
|
---|
253 | CS_ENTRY(0xC027, ECDHE,RSA,AES128,SHA256,,,,),
|
---|
254 | CS_ENTRY(0xC028, TLS,ECDHE,RSA,WITH,AES,256,CBC,SHA384),
|
---|
255 | CS_ENTRY(0xC028, ECDHE,RSA,AES256,SHA384,,,,),
|
---|
256 | CS_ENTRY(0xC029, TLS,ECDH,RSA,WITH,AES,128,CBC,SHA256),
|
---|
257 | CS_ENTRY(0xC029, ECDH,RSA,AES128,SHA256,,,,),
|
---|
258 | CS_ENTRY(0xC02A, TLS,ECDH,RSA,WITH,AES,256,CBC,SHA384),
|
---|
259 | CS_ENTRY(0xC02A, ECDH,RSA,AES256,SHA384,,,,),
|
---|
260 | CS_ENTRY(0xC02D, TLS,ECDH,ECDSA,WITH,AES,128,GCM,SHA256),
|
---|
261 | CS_ENTRY(0xC02D, ECDH,ECDSA,AES128,GCM,SHA256,,,),
|
---|
262 | CS_ENTRY(0xC02E, TLS,ECDH,ECDSA,WITH,AES,256,GCM,SHA384),
|
---|
263 | CS_ENTRY(0xC02E, ECDH,ECDSA,AES256,GCM,SHA384,,,),
|
---|
264 | CS_ENTRY(0xC031, TLS,ECDH,RSA,WITH,AES,128,GCM,SHA256),
|
---|
265 | CS_ENTRY(0xC031, ECDH,RSA,AES128,GCM,SHA256,,,),
|
---|
266 | CS_ENTRY(0xC032, TLS,ECDH,RSA,WITH,AES,256,GCM,SHA384),
|
---|
267 | CS_ENTRY(0xC032, ECDH,RSA,AES256,GCM,SHA384,,,),
|
---|
268 | #endif
|
---|
269 | #if defined(USE_SECTRANSP) || defined(USE_MBEDTLS)
|
---|
270 | CS_ENTRY(0x0001, TLS,RSA,WITH,NULL,MD5,,,),
|
---|
271 | CS_ENTRY(0x0001, NULL,MD5,,,,,,),
|
---|
272 | CS_ENTRY(0x0002, TLS,RSA,WITH,NULL,SHA,,,),
|
---|
273 | CS_ENTRY(0x0002, NULL,SHA,,,,,,),
|
---|
274 | CS_ENTRY(0x002C, TLS,PSK,WITH,NULL,SHA,,,),
|
---|
275 | CS_ENTRY(0x002C, PSK,NULL,SHA,,,,,),
|
---|
276 | CS_ENTRY(0x002D, TLS,DHE,PSK,WITH,NULL,SHA,,),
|
---|
277 | CS_ENTRY(0x002D, DHE,PSK,NULL,SHA,,,,),
|
---|
278 | CS_ENTRY(0x002E, TLS,RSA,PSK,WITH,NULL,SHA,,),
|
---|
279 | CS_ENTRY(0x002E, RSA,PSK,NULL,SHA,,,,),
|
---|
280 | CS_ENTRY(0x0033, TLS,DHE,RSA,WITH,AES,128,CBC,SHA),
|
---|
281 | CS_ENTRY(0x0033, DHE,RSA,AES128,SHA,,,,),
|
---|
282 | CS_ENTRY(0x0039, TLS,DHE,RSA,WITH,AES,256,CBC,SHA),
|
---|
283 | CS_ENTRY(0x0039, DHE,RSA,AES256,SHA,,,,),
|
---|
284 | CS_ENTRY(0x003B, TLS,RSA,WITH,NULL,SHA256,,,),
|
---|
285 | CS_ENTRY(0x003B, NULL,SHA256,,,,,,),
|
---|
286 | CS_ENTRY(0x0067, TLS,DHE,RSA,WITH,AES,128,CBC,SHA256),
|
---|
287 | CS_ENTRY(0x0067, DHE,RSA,AES128,SHA256,,,,),
|
---|
288 | CS_ENTRY(0x006B, TLS,DHE,RSA,WITH,AES,256,CBC,SHA256),
|
---|
289 | CS_ENTRY(0x006B, DHE,RSA,AES256,SHA256,,,,),
|
---|
290 | CS_ENTRY(0x008C, TLS,PSK,WITH,AES,128,CBC,SHA,),
|
---|
291 | CS_ENTRY(0x008C, PSK,AES128,CBC,SHA,,,,),
|
---|
292 | CS_ENTRY(0x008D, TLS,PSK,WITH,AES,256,CBC,SHA,),
|
---|
293 | CS_ENTRY(0x008D, PSK,AES256,CBC,SHA,,,,),
|
---|
294 | CS_ENTRY(0x0090, TLS,DHE,PSK,WITH,AES,128,CBC,SHA),
|
---|
295 | CS_ENTRY(0x0090, DHE,PSK,AES128,CBC,SHA,,,),
|
---|
296 | CS_ENTRY(0x0091, TLS,DHE,PSK,WITH,AES,256,CBC,SHA),
|
---|
297 | CS_ENTRY(0x0091, DHE,PSK,AES256,CBC,SHA,,,),
|
---|
298 | CS_ENTRY(0x0094, TLS,RSA,PSK,WITH,AES,128,CBC,SHA),
|
---|
299 | CS_ENTRY(0x0094, RSA,PSK,AES128,CBC,SHA,,,),
|
---|
300 | CS_ENTRY(0x0095, TLS,RSA,PSK,WITH,AES,256,CBC,SHA),
|
---|
301 | CS_ENTRY(0x0095, RSA,PSK,AES256,CBC,SHA,,,),
|
---|
302 | CS_ENTRY(0x009E, TLS,DHE,RSA,WITH,AES,128,GCM,SHA256),
|
---|
303 | CS_ENTRY(0x009E, DHE,RSA,AES128,GCM,SHA256,,,),
|
---|
304 | CS_ENTRY(0x009F, TLS,DHE,RSA,WITH,AES,256,GCM,SHA384),
|
---|
305 | CS_ENTRY(0x009F, DHE,RSA,AES256,GCM,SHA384,,,),
|
---|
306 | CS_ENTRY(0x00A8, TLS,PSK,WITH,AES,128,GCM,SHA256,),
|
---|
307 | CS_ENTRY(0x00A8, PSK,AES128,GCM,SHA256,,,,),
|
---|
308 | CS_ENTRY(0x00A9, TLS,PSK,WITH,AES,256,GCM,SHA384,),
|
---|
309 | CS_ENTRY(0x00A9, PSK,AES256,GCM,SHA384,,,,),
|
---|
310 | CS_ENTRY(0x00AA, TLS,DHE,PSK,WITH,AES,128,GCM,SHA256),
|
---|
311 | CS_ENTRY(0x00AA, DHE,PSK,AES128,GCM,SHA256,,,),
|
---|
312 | CS_ENTRY(0x00AB, TLS,DHE,PSK,WITH,AES,256,GCM,SHA384),
|
---|
313 | CS_ENTRY(0x00AB, DHE,PSK,AES256,GCM,SHA384,,,),
|
---|
314 | CS_ENTRY(0x00AC, TLS,RSA,PSK,WITH,AES,128,GCM,SHA256),
|
---|
315 | CS_ENTRY(0x00AC, RSA,PSK,AES128,GCM,SHA256,,,),
|
---|
316 | CS_ENTRY(0x00AD, TLS,RSA,PSK,WITH,AES,256,GCM,SHA384),
|
---|
317 | CS_ENTRY(0x00AD, RSA,PSK,AES256,GCM,SHA384,,,),
|
---|
318 | CS_ENTRY(0x00AE, TLS,PSK,WITH,AES,128,CBC,SHA256,),
|
---|
319 | CS_ENTRY(0x00AE, PSK,AES128,CBC,SHA256,,,,),
|
---|
320 | CS_ENTRY(0x00AF, TLS,PSK,WITH,AES,256,CBC,SHA384,),
|
---|
321 | CS_ENTRY(0x00AF, PSK,AES256,CBC,SHA384,,,,),
|
---|
322 | CS_ENTRY(0x00B0, TLS,PSK,WITH,NULL,SHA256,,,),
|
---|
323 | CS_ENTRY(0x00B0, PSK,NULL,SHA256,,,,,),
|
---|
324 | CS_ENTRY(0x00B1, TLS,PSK,WITH,NULL,SHA384,,,),
|
---|
325 | CS_ENTRY(0x00B1, PSK,NULL,SHA384,,,,,),
|
---|
326 | CS_ENTRY(0x00B2, TLS,DHE,PSK,WITH,AES,128,CBC,SHA256),
|
---|
327 | CS_ENTRY(0x00B2, DHE,PSK,AES128,CBC,SHA256,,,),
|
---|
328 | CS_ENTRY(0x00B3, TLS,DHE,PSK,WITH,AES,256,CBC,SHA384),
|
---|
329 | CS_ENTRY(0x00B3, DHE,PSK,AES256,CBC,SHA384,,,),
|
---|
330 | CS_ENTRY(0x00B4, TLS,DHE,PSK,WITH,NULL,SHA256,,),
|
---|
331 | CS_ENTRY(0x00B4, DHE,PSK,NULL,SHA256,,,,),
|
---|
332 | CS_ENTRY(0x00B5, TLS,DHE,PSK,WITH,NULL,SHA384,,),
|
---|
333 | CS_ENTRY(0x00B5, DHE,PSK,NULL,SHA384,,,,),
|
---|
334 | CS_ENTRY(0x00B6, TLS,RSA,PSK,WITH,AES,128,CBC,SHA256),
|
---|
335 | CS_ENTRY(0x00B6, RSA,PSK,AES128,CBC,SHA256,,,),
|
---|
336 | CS_ENTRY(0x00B7, TLS,RSA,PSK,WITH,AES,256,CBC,SHA384),
|
---|
337 | CS_ENTRY(0x00B7, RSA,PSK,AES256,CBC,SHA384,,,),
|
---|
338 | CS_ENTRY(0x00B8, TLS,RSA,PSK,WITH,NULL,SHA256,,),
|
---|
339 | CS_ENTRY(0x00B8, RSA,PSK,NULL,SHA256,,,,),
|
---|
340 | CS_ENTRY(0x00B9, TLS,RSA,PSK,WITH,NULL,SHA384,,),
|
---|
341 | CS_ENTRY(0x00B9, RSA,PSK,NULL,SHA384,,,,),
|
---|
342 | CS_ENTRY(0xC001, TLS,ECDH,ECDSA,WITH,NULL,SHA,,),
|
---|
343 | CS_ENTRY(0xC001, ECDH,ECDSA,NULL,SHA,,,,),
|
---|
344 | CS_ENTRY(0xC006, TLS,ECDHE,ECDSA,WITH,NULL,SHA,,),
|
---|
345 | CS_ENTRY(0xC006, ECDHE,ECDSA,NULL,SHA,,,,),
|
---|
346 | CS_ENTRY(0xC00B, TLS,ECDH,RSA,WITH,NULL,SHA,,),
|
---|
347 | CS_ENTRY(0xC00B, ECDH,RSA,NULL,SHA,,,,),
|
---|
348 | CS_ENTRY(0xC010, TLS,ECDHE,RSA,WITH,NULL,SHA,,),
|
---|
349 | CS_ENTRY(0xC010, ECDHE,RSA,NULL,SHA,,,,),
|
---|
350 | CS_ENTRY(0xC035, TLS,ECDHE,PSK,WITH,AES,128,CBC,SHA),
|
---|
351 | CS_ENTRY(0xC035, ECDHE,PSK,AES128,CBC,SHA,,,),
|
---|
352 | CS_ENTRY(0xC036, TLS,ECDHE,PSK,WITH,AES,256,CBC,SHA),
|
---|
353 | CS_ENTRY(0xC036, ECDHE,PSK,AES256,CBC,SHA,,,),
|
---|
354 | CS_ENTRY(0xCCAB, TLS,PSK,WITH,CHACHA20,POLY1305,SHA256,,),
|
---|
355 | CS_ENTRY(0xCCAB, PSK,CHACHA20,POLY1305,,,,,),
|
---|
356 | #endif
|
---|
357 | #if defined(USE_SECTRANSP) || defined(USE_BEARSSL)
|
---|
358 | CS_ENTRY(0x000A, TLS,RSA,WITH,3DES,EDE,CBC,SHA,),
|
---|
359 | CS_ENTRY(0x000A, DES,CBC3,SHA,,,,,),
|
---|
360 | CS_ENTRY(0xC003, TLS,ECDH,ECDSA,WITH,3DES,EDE,CBC,SHA),
|
---|
361 | CS_ENTRY(0xC003, ECDH,ECDSA,DES,CBC3,SHA,,,),
|
---|
362 | CS_ENTRY(0xC008, TLS,ECDHE,ECDSA,WITH,3DES,EDE,CBC,SHA),
|
---|
363 | CS_ENTRY(0xC008, ECDHE,ECDSA,DES,CBC3,SHA,,,),
|
---|
364 | CS_ENTRY(0xC00D, TLS,ECDH,RSA,WITH,3DES,EDE,CBC,SHA),
|
---|
365 | CS_ENTRY(0xC00D, ECDH,RSA,DES,CBC3,SHA,,,),
|
---|
366 | CS_ENTRY(0xC012, TLS,ECDHE,RSA,WITH,3DES,EDE,CBC,SHA),
|
---|
367 | CS_ENTRY(0xC012, ECDHE,RSA,DES,CBC3,SHA,,,),
|
---|
368 | #endif
|
---|
369 | #if defined(USE_MBEDTLS) || defined(USE_BEARSSL)
|
---|
370 | CS_ENTRY(0xC09C, TLS,RSA,WITH,AES,128,CCM,,),
|
---|
371 | CS_ENTRY(0xC09C, AES128,CCM,,,,,,),
|
---|
372 | CS_ENTRY(0xC09D, TLS,RSA,WITH,AES,256,CCM,,),
|
---|
373 | CS_ENTRY(0xC09D, AES256,CCM,,,,,,),
|
---|
374 | CS_ENTRY(0xC0A0, TLS,RSA,WITH,AES,128,CCM,8,),
|
---|
375 | CS_ENTRY(0xC0A0, AES128,CCM8,,,,,,),
|
---|
376 | CS_ENTRY(0xC0A1, TLS,RSA,WITH,AES,256,CCM,8,),
|
---|
377 | CS_ENTRY(0xC0A1, AES256,CCM8,,,,,,),
|
---|
378 | CS_ENTRY(0xC0AC, TLS,ECDHE,ECDSA,WITH,AES,128,CCM,),
|
---|
379 | CS_ENTRY(0xC0AC, ECDHE,ECDSA,AES128,CCM,,,,),
|
---|
380 | CS_ENTRY(0xC0AD, TLS,ECDHE,ECDSA,WITH,AES,256,CCM,),
|
---|
381 | CS_ENTRY(0xC0AD, ECDHE,ECDSA,AES256,CCM,,,,),
|
---|
382 | CS_ENTRY(0xC0AE, TLS,ECDHE,ECDSA,WITH,AES,128,CCM,8),
|
---|
383 | CS_ENTRY(0xC0AE, ECDHE,ECDSA,AES128,CCM8,,,,),
|
---|
384 | CS_ENTRY(0xC0AF, TLS,ECDHE,ECDSA,WITH,AES,256,CCM,8),
|
---|
385 | CS_ENTRY(0xC0AF, ECDHE,ECDSA,AES256,CCM8,,,,),
|
---|
386 | #endif
|
---|
387 | #if defined(USE_SECTRANSP)
|
---|
388 | /* entries marked bc are backward compatible aliases for old OpenSSL names */
|
---|
389 | CS_ENTRY(0x0003, TLS,RSA,EXPORT,WITH,RC4,40,MD5,),
|
---|
390 | CS_ENTRY(0x0003, EXP,RC4,MD5,,,,,),
|
---|
391 | CS_ENTRY(0x0004, TLS,RSA,WITH,RC4,128,MD5,,),
|
---|
392 | CS_ENTRY(0x0004, RC4,MD5,,,,,,),
|
---|
393 | CS_ENTRY(0x0005, TLS,RSA,WITH,RC4,128,SHA,,),
|
---|
394 | CS_ENTRY(0x0005, RC4,SHA,,,,,,),
|
---|
395 | CS_ENTRY(0x0006, TLS,RSA,EXPORT,WITH,RC2,CBC,40,MD5),
|
---|
396 | CS_ENTRY(0x0006, EXP,RC2,CBC,MD5,,,,),
|
---|
397 | CS_ENTRY(0x0007, TLS,RSA,WITH,IDEA,CBC,SHA,,),
|
---|
398 | CS_ENTRY(0x0007, IDEA,CBC,SHA,,,,,),
|
---|
399 | CS_ENTRY(0x0008, TLS,RSA,EXPORT,WITH,DES40,CBC,SHA,),
|
---|
400 | CS_ENTRY(0x0008, EXP,DES,CBC,SHA,,,,),
|
---|
401 | CS_ENTRY(0x0009, TLS,RSA,WITH,DES,CBC,SHA,,),
|
---|
402 | CS_ENTRY(0x0009, DES,CBC,SHA,,,,,),
|
---|
403 | CS_ENTRY(0x000B, TLS,DH,DSS,EXPORT,WITH,DES40,CBC,SHA),
|
---|
404 | CS_ENTRY(0x000B, EXP,DH,DSS,DES,CBC,SHA,,),
|
---|
405 | CS_ENTRY(0x000C, TLS,DH,DSS,WITH,DES,CBC,SHA,),
|
---|
406 | CS_ENTRY(0x000C, DH,DSS,DES,CBC,SHA,,,),
|
---|
407 | CS_ENTRY(0x000D, TLS,DH,DSS,WITH,3DES,EDE,CBC,SHA),
|
---|
408 | CS_ENTRY(0x000D, DH,DSS,DES,CBC3,SHA,,,),
|
---|
409 | CS_ENTRY(0x000E, TLS,DH,RSA,EXPORT,WITH,DES40,CBC,SHA),
|
---|
410 | CS_ENTRY(0x000E, EXP,DH,RSA,DES,CBC,SHA,,),
|
---|
411 | CS_ENTRY(0x000F, TLS,DH,RSA,WITH,DES,CBC,SHA,),
|
---|
412 | CS_ENTRY(0x000F, DH,RSA,DES,CBC,SHA,,,),
|
---|
413 | CS_ENTRY(0x0010, TLS,DH,RSA,WITH,3DES,EDE,CBC,SHA),
|
---|
414 | CS_ENTRY(0x0010, DH,RSA,DES,CBC3,SHA,,,),
|
---|
415 | CS_ENTRY(0x0011, TLS,DHE,DSS,EXPORT,WITH,DES40,CBC,SHA),
|
---|
416 | CS_ENTRY(0x0011, EXP,DHE,DSS,DES,CBC,SHA,,),
|
---|
417 | CS_ENTRY(0x0011, EXP,EDH,DSS,DES,CBC,SHA,,), /* bc */
|
---|
418 | CS_ENTRY(0x0012, TLS,DHE,DSS,WITH,DES,CBC,SHA,),
|
---|
419 | CS_ENTRY(0x0012, DHE,DSS,DES,CBC,SHA,,,),
|
---|
420 | CS_ENTRY(0x0012, EDH,DSS,DES,CBC,SHA,,,), /* bc */
|
---|
421 | CS_ENTRY(0x0013, TLS,DHE,DSS,WITH,3DES,EDE,CBC,SHA),
|
---|
422 | CS_ENTRY(0x0013, DHE,DSS,DES,CBC3,SHA,,,),
|
---|
423 | CS_ENTRY(0x0013, EDH,DSS,DES,CBC3,SHA,,,), /* bc */
|
---|
424 | CS_ENTRY(0x0014, TLS,DHE,RSA,EXPORT,WITH,DES40,CBC,SHA),
|
---|
425 | CS_ENTRY(0x0014, EXP,DHE,RSA,DES,CBC,SHA,,),
|
---|
426 | CS_ENTRY(0x0014, EXP,EDH,RSA,DES,CBC,SHA,,), /* bc */
|
---|
427 | CS_ENTRY(0x0015, TLS,DHE,RSA,WITH,DES,CBC,SHA,),
|
---|
428 | CS_ENTRY(0x0015, DHE,RSA,DES,CBC,SHA,,,),
|
---|
429 | CS_ENTRY(0x0015, EDH,RSA,DES,CBC,SHA,,,), /* bc */
|
---|
430 | CS_ENTRY(0x0016, TLS,DHE,RSA,WITH,3DES,EDE,CBC,SHA),
|
---|
431 | CS_ENTRY(0x0016, DHE,RSA,DES,CBC3,SHA,,,),
|
---|
432 | CS_ENTRY(0x0016, EDH,RSA,DES,CBC3,SHA,,,), /* bc */
|
---|
433 | CS_ENTRY(0x0017, TLS,DH,anon,EXPORT,WITH,RC4,40,MD5),
|
---|
434 | CS_ENTRY(0x0017, EXP,ADH,RC4,MD5,,,,),
|
---|
435 | CS_ENTRY(0x0018, TLS,DH,anon,WITH,RC4,128,MD5,),
|
---|
436 | CS_ENTRY(0x0018, ADH,RC4,MD5,,,,,),
|
---|
437 | CS_ENTRY(0x0019, TLS,DH,anon,EXPORT,WITH,DES40,CBC,SHA),
|
---|
438 | CS_ENTRY(0x0019, EXP,ADH,DES,CBC,SHA,,,),
|
---|
439 | CS_ENTRY(0x001A, TLS,DH,anon,WITH,DES,CBC,SHA,),
|
---|
440 | CS_ENTRY(0x001A, ADH,DES,CBC,SHA,,,,),
|
---|
441 | CS_ENTRY(0x001B, TLS,DH,anon,WITH,3DES,EDE,CBC,SHA),
|
---|
442 | CS_ENTRY(0x001B, ADH,DES,CBC3,SHA,,,,),
|
---|
443 | CS_ENTRY(0x0030, TLS,DH,DSS,WITH,AES,128,CBC,SHA),
|
---|
444 | CS_ENTRY(0x0030, DH,DSS,AES128,SHA,,,,),
|
---|
445 | CS_ENTRY(0x0031, TLS,DH,RSA,WITH,AES,128,CBC,SHA),
|
---|
446 | CS_ENTRY(0x0031, DH,RSA,AES128,SHA,,,,),
|
---|
447 | CS_ENTRY(0x0032, TLS,DHE,DSS,WITH,AES,128,CBC,SHA),
|
---|
448 | CS_ENTRY(0x0032, DHE,DSS,AES128,SHA,,,,),
|
---|
449 | CS_ENTRY(0x0034, TLS,DH,anon,WITH,AES,128,CBC,SHA),
|
---|
450 | CS_ENTRY(0x0034, ADH,AES128,SHA,,,,,),
|
---|
451 | CS_ENTRY(0x0036, TLS,DH,DSS,WITH,AES,256,CBC,SHA),
|
---|
452 | CS_ENTRY(0x0036, DH,DSS,AES256,SHA,,,,),
|
---|
453 | CS_ENTRY(0x0037, TLS,DH,RSA,WITH,AES,256,CBC,SHA),
|
---|
454 | CS_ENTRY(0x0037, DH,RSA,AES256,SHA,,,,),
|
---|
455 | CS_ENTRY(0x0038, TLS,DHE,DSS,WITH,AES,256,CBC,SHA),
|
---|
456 | CS_ENTRY(0x0038, DHE,DSS,AES256,SHA,,,,),
|
---|
457 | CS_ENTRY(0x003A, TLS,DH,anon,WITH,AES,256,CBC,SHA),
|
---|
458 | CS_ENTRY(0x003A, ADH,AES256,SHA,,,,,),
|
---|
459 | CS_ENTRY(0x003E, TLS,DH,DSS,WITH,AES,128,CBC,SHA256),
|
---|
460 | CS_ENTRY(0x003E, DH,DSS,AES128,SHA256,,,,),
|
---|
461 | CS_ENTRY(0x003F, TLS,DH,RSA,WITH,AES,128,CBC,SHA256),
|
---|
462 | CS_ENTRY(0x003F, DH,RSA,AES128,SHA256,,,,),
|
---|
463 | CS_ENTRY(0x0040, TLS,DHE,DSS,WITH,AES,128,CBC,SHA256),
|
---|
464 | CS_ENTRY(0x0040, DHE,DSS,AES128,SHA256,,,,),
|
---|
465 | CS_ENTRY(0x0068, TLS,DH,DSS,WITH,AES,256,CBC,SHA256),
|
---|
466 | CS_ENTRY(0x0068, DH,DSS,AES256,SHA256,,,,),
|
---|
467 | CS_ENTRY(0x0069, TLS,DH,RSA,WITH,AES,256,CBC,SHA256),
|
---|
468 | CS_ENTRY(0x0069, DH,RSA,AES256,SHA256,,,,),
|
---|
469 | CS_ENTRY(0x006A, TLS,DHE,DSS,WITH,AES,256,CBC,SHA256),
|
---|
470 | CS_ENTRY(0x006A, DHE,DSS,AES256,SHA256,,,,),
|
---|
471 | CS_ENTRY(0x006C, TLS,DH,anon,WITH,AES,128,CBC,SHA256),
|
---|
472 | CS_ENTRY(0x006C, ADH,AES128,SHA256,,,,,),
|
---|
473 | CS_ENTRY(0x006D, TLS,DH,anon,WITH,AES,256,CBC,SHA256),
|
---|
474 | CS_ENTRY(0x006D, ADH,AES256,SHA256,,,,,),
|
---|
475 | CS_ENTRY(0x008A, TLS,PSK,WITH,RC4,128,SHA,,),
|
---|
476 | CS_ENTRY(0x008A, PSK,RC4,SHA,,,,,),
|
---|
477 | CS_ENTRY(0x008B, TLS,PSK,WITH,3DES,EDE,CBC,SHA,),
|
---|
478 | CS_ENTRY(0x008B, PSK,3DES,EDE,CBC,SHA,,,),
|
---|
479 | CS_ENTRY(0x008E, TLS,DHE,PSK,WITH,RC4,128,SHA,),
|
---|
480 | CS_ENTRY(0x008E, DHE,PSK,RC4,SHA,,,,),
|
---|
481 | CS_ENTRY(0x008F, TLS,DHE,PSK,WITH,3DES,EDE,CBC,SHA),
|
---|
482 | CS_ENTRY(0x008F, DHE,PSK,3DES,EDE,CBC,SHA,,),
|
---|
483 | CS_ENTRY(0x0092, TLS,RSA,PSK,WITH,RC4,128,SHA,),
|
---|
484 | CS_ENTRY(0x0092, RSA,PSK,RC4,SHA,,,,),
|
---|
485 | CS_ENTRY(0x0093, TLS,RSA,PSK,WITH,3DES,EDE,CBC,SHA),
|
---|
486 | CS_ENTRY(0x0093, RSA,PSK,3DES,EDE,CBC,SHA,,),
|
---|
487 | CS_ENTRY(0x00A0, TLS,DH,RSA,WITH,AES,128,GCM,SHA256),
|
---|
488 | CS_ENTRY(0x00A0, DH,RSA,AES128,GCM,SHA256,,,),
|
---|
489 | CS_ENTRY(0x00A1, TLS,DH,RSA,WITH,AES,256,GCM,SHA384),
|
---|
490 | CS_ENTRY(0x00A1, DH,RSA,AES256,GCM,SHA384,,,),
|
---|
491 | CS_ENTRY(0x00A2, TLS,DHE,DSS,WITH,AES,128,GCM,SHA256),
|
---|
492 | CS_ENTRY(0x00A2, DHE,DSS,AES128,GCM,SHA256,,,),
|
---|
493 | CS_ENTRY(0x00A3, TLS,DHE,DSS,WITH,AES,256,GCM,SHA384),
|
---|
494 | CS_ENTRY(0x00A3, DHE,DSS,AES256,GCM,SHA384,,,),
|
---|
495 | CS_ENTRY(0x00A4, TLS,DH,DSS,WITH,AES,128,GCM,SHA256),
|
---|
496 | CS_ENTRY(0x00A4, DH,DSS,AES128,GCM,SHA256,,,),
|
---|
497 | CS_ENTRY(0x00A5, TLS,DH,DSS,WITH,AES,256,GCM,SHA384),
|
---|
498 | CS_ENTRY(0x00A5, DH,DSS,AES256,GCM,SHA384,,,),
|
---|
499 | CS_ENTRY(0x00A6, TLS,DH,anon,WITH,AES,128,GCM,SHA256),
|
---|
500 | CS_ENTRY(0x00A6, ADH,AES128,GCM,SHA256,,,,),
|
---|
501 | CS_ENTRY(0x00A7, TLS,DH,anon,WITH,AES,256,GCM,SHA384),
|
---|
502 | CS_ENTRY(0x00A7, ADH,AES256,GCM,SHA384,,,,),
|
---|
503 | CS_ENTRY(0xC002, TLS,ECDH,ECDSA,WITH,RC4,128,SHA,),
|
---|
504 | CS_ENTRY(0xC002, ECDH,ECDSA,RC4,SHA,,,,),
|
---|
505 | CS_ENTRY(0xC007, TLS,ECDHE,ECDSA,WITH,RC4,128,SHA,),
|
---|
506 | CS_ENTRY(0xC007, ECDHE,ECDSA,RC4,SHA,,,,),
|
---|
507 | CS_ENTRY(0xC00C, TLS,ECDH,RSA,WITH,RC4,128,SHA,),
|
---|
508 | CS_ENTRY(0xC00C, ECDH,RSA,RC4,SHA,,,,),
|
---|
509 | CS_ENTRY(0xC011, TLS,ECDHE,RSA,WITH,RC4,128,SHA,),
|
---|
510 | CS_ENTRY(0xC011, ECDHE,RSA,RC4,SHA,,,,),
|
---|
511 | CS_ENTRY(0xC015, TLS,ECDH,anon,WITH,NULL,SHA,,),
|
---|
512 | CS_ENTRY(0xC015, AECDH,NULL,SHA,,,,,),
|
---|
513 | CS_ENTRY(0xC016, TLS,ECDH,anon,WITH,RC4,128,SHA,),
|
---|
514 | CS_ENTRY(0xC016, AECDH,RC4,SHA,,,,,),
|
---|
515 | CS_ENTRY(0xC017, TLS,ECDH,anon,WITH,3DES,EDE,CBC,SHA),
|
---|
516 | CS_ENTRY(0xC017, AECDH,DES,CBC3,SHA,,,,),
|
---|
517 | CS_ENTRY(0xC018, TLS,ECDH,anon,WITH,AES,128,CBC,SHA),
|
---|
518 | CS_ENTRY(0xC018, AECDH,AES128,SHA,,,,,),
|
---|
519 | CS_ENTRY(0xC019, TLS,ECDH,anon,WITH,AES,256,CBC,SHA),
|
---|
520 | CS_ENTRY(0xC019, AECDH,AES256,SHA,,,,,),
|
---|
521 | #endif
|
---|
522 | #if defined(USE_MBEDTLS)
|
---|
523 | /* entries marked ns are "non-standard", they are not in OpenSSL */
|
---|
524 | CS_ENTRY(0x0041, TLS,RSA,WITH,CAMELLIA,128,CBC,SHA,),
|
---|
525 | CS_ENTRY(0x0041, CAMELLIA128,SHA,,,,,,),
|
---|
526 | CS_ENTRY(0x0045, TLS,DHE,RSA,WITH,CAMELLIA,128,CBC,SHA),
|
---|
527 | CS_ENTRY(0x0045, DHE,RSA,CAMELLIA128,SHA,,,,),
|
---|
528 | CS_ENTRY(0x0084, TLS,RSA,WITH,CAMELLIA,256,CBC,SHA,),
|
---|
529 | CS_ENTRY(0x0084, CAMELLIA256,SHA,,,,,,),
|
---|
530 | CS_ENTRY(0x0088, TLS,DHE,RSA,WITH,CAMELLIA,256,CBC,SHA),
|
---|
531 | CS_ENTRY(0x0088, DHE,RSA,CAMELLIA256,SHA,,,,),
|
---|
532 | CS_ENTRY(0x00BA, TLS,RSA,WITH,CAMELLIA,128,CBC,SHA256,),
|
---|
533 | CS_ENTRY(0x00BA, CAMELLIA128,SHA256,,,,,,),
|
---|
534 | CS_ENTRY(0x00BE, TLS,DHE,RSA,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
535 | CS_ENTRY(0x00BE, DHE,RSA,CAMELLIA128,SHA256,,,,),
|
---|
536 | CS_ENTRY(0x00C0, TLS,RSA,WITH,CAMELLIA,256,CBC,SHA256,),
|
---|
537 | CS_ENTRY(0x00C0, CAMELLIA256,SHA256,,,,,,),
|
---|
538 | CS_ENTRY(0x00C4, TLS,DHE,RSA,WITH,CAMELLIA,256,CBC,SHA256),
|
---|
539 | CS_ENTRY(0x00C4, DHE,RSA,CAMELLIA256,SHA256,,,,),
|
---|
540 | CS_ENTRY(0xC037, TLS,ECDHE,PSK,WITH,AES,128,CBC,SHA256),
|
---|
541 | CS_ENTRY(0xC037, ECDHE,PSK,AES128,CBC,SHA256,,,),
|
---|
542 | CS_ENTRY(0xC038, TLS,ECDHE,PSK,WITH,AES,256,CBC,SHA384),
|
---|
543 | CS_ENTRY(0xC038, ECDHE,PSK,AES256,CBC,SHA384,,,),
|
---|
544 | CS_ENTRY(0xC039, TLS,ECDHE,PSK,WITH,NULL,SHA,,),
|
---|
545 | CS_ENTRY(0xC039, ECDHE,PSK,NULL,SHA,,,,),
|
---|
546 | CS_ENTRY(0xC03A, TLS,ECDHE,PSK,WITH,NULL,SHA256,,),
|
---|
547 | CS_ENTRY(0xC03A, ECDHE,PSK,NULL,SHA256,,,,),
|
---|
548 | CS_ENTRY(0xC03B, TLS,ECDHE,PSK,WITH,NULL,SHA384,,),
|
---|
549 | CS_ENTRY(0xC03B, ECDHE,PSK,NULL,SHA384,,,,),
|
---|
550 | CS_ENTRY(0xC03C, TLS,RSA,WITH,ARIA,128,CBC,SHA256,),
|
---|
551 | CS_ENTRY(0xC03C, ARIA128,SHA256,,,,,,), /* ns */
|
---|
552 | CS_ENTRY(0xC03D, TLS,RSA,WITH,ARIA,256,CBC,SHA384,),
|
---|
553 | CS_ENTRY(0xC03D, ARIA256,SHA384,,,,,,), /* ns */
|
---|
554 | CS_ENTRY(0xC044, TLS,DHE,RSA,WITH,ARIA,128,CBC,SHA256),
|
---|
555 | CS_ENTRY(0xC044, DHE,RSA,ARIA128,SHA256,,,,), /* ns */
|
---|
556 | CS_ENTRY(0xC045, TLS,DHE,RSA,WITH,ARIA,256,CBC,SHA384),
|
---|
557 | CS_ENTRY(0xC045, DHE,RSA,ARIA256,SHA384,,,,), /* ns */
|
---|
558 | CS_ENTRY(0xC048, TLS,ECDHE,ECDSA,WITH,ARIA,128,CBC,SHA256),
|
---|
559 | CS_ENTRY(0xC048, ECDHE,ECDSA,ARIA128,SHA256,,,,), /* ns */
|
---|
560 | CS_ENTRY(0xC049, TLS,ECDHE,ECDSA,WITH,ARIA,256,CBC,SHA384),
|
---|
561 | CS_ENTRY(0xC049, ECDHE,ECDSA,ARIA256,SHA384,,,,), /* ns */
|
---|
562 | CS_ENTRY(0xC04A, TLS,ECDH,ECDSA,WITH,ARIA,128,CBC,SHA256),
|
---|
563 | CS_ENTRY(0xC04A, ECDH,ECDSA,ARIA128,SHA256,,,,), /* ns */
|
---|
564 | CS_ENTRY(0xC04B, TLS,ECDH,ECDSA,WITH,ARIA,256,CBC,SHA384),
|
---|
565 | CS_ENTRY(0xC04B, ECDH,ECDSA,ARIA256,SHA384,,,,), /* ns */
|
---|
566 | CS_ENTRY(0xC04C, TLS,ECDHE,RSA,WITH,ARIA,128,CBC,SHA256),
|
---|
567 | CS_ENTRY(0xC04C, ECDHE,ARIA128,SHA256,,,,,), /* ns */
|
---|
568 | CS_ENTRY(0xC04D, TLS,ECDHE,RSA,WITH,ARIA,256,CBC,SHA384),
|
---|
569 | CS_ENTRY(0xC04D, ECDHE,ARIA256,SHA384,,,,,), /* ns */
|
---|
570 | CS_ENTRY(0xC04E, TLS,ECDH,RSA,WITH,ARIA,128,CBC,SHA256),
|
---|
571 | CS_ENTRY(0xC04E, ECDH,ARIA128,SHA256,,,,,), /* ns */
|
---|
572 | CS_ENTRY(0xC04F, TLS,ECDH,RSA,WITH,ARIA,256,CBC,SHA384),
|
---|
573 | CS_ENTRY(0xC04F, ECDH,ARIA256,SHA384,,,,,), /* ns */
|
---|
574 | CS_ENTRY(0xC050, TLS,RSA,WITH,ARIA,128,GCM,SHA256,),
|
---|
575 | CS_ENTRY(0xC050, ARIA128,GCM,SHA256,,,,,),
|
---|
576 | CS_ENTRY(0xC051, TLS,RSA,WITH,ARIA,256,GCM,SHA384,),
|
---|
577 | CS_ENTRY(0xC051, ARIA256,GCM,SHA384,,,,,),
|
---|
578 | CS_ENTRY(0xC052, TLS,DHE,RSA,WITH,ARIA,128,GCM,SHA256),
|
---|
579 | CS_ENTRY(0xC052, DHE,RSA,ARIA128,GCM,SHA256,,,),
|
---|
580 | CS_ENTRY(0xC053, TLS,DHE,RSA,WITH,ARIA,256,GCM,SHA384),
|
---|
581 | CS_ENTRY(0xC053, DHE,RSA,ARIA256,GCM,SHA384,,,),
|
---|
582 | CS_ENTRY(0xC05C, TLS,ECDHE,ECDSA,WITH,ARIA,128,GCM,SHA256),
|
---|
583 | CS_ENTRY(0xC05C, ECDHE,ECDSA,ARIA128,GCM,SHA256,,,),
|
---|
584 | CS_ENTRY(0xC05D, TLS,ECDHE,ECDSA,WITH,ARIA,256,GCM,SHA384),
|
---|
585 | CS_ENTRY(0xC05D, ECDHE,ECDSA,ARIA256,GCM,SHA384,,,),
|
---|
586 | CS_ENTRY(0xC05E, TLS,ECDH,ECDSA,WITH,ARIA,128,GCM,SHA256),
|
---|
587 | CS_ENTRY(0xC05E, ECDH,ECDSA,ARIA128,GCM,SHA256,,,), /* ns */
|
---|
588 | CS_ENTRY(0xC05F, TLS,ECDH,ECDSA,WITH,ARIA,256,GCM,SHA384),
|
---|
589 | CS_ENTRY(0xC05F, ECDH,ECDSA,ARIA256,GCM,SHA384,,,), /* ns */
|
---|
590 | CS_ENTRY(0xC060, TLS,ECDHE,RSA,WITH,ARIA,128,GCM,SHA256),
|
---|
591 | CS_ENTRY(0xC060, ECDHE,ARIA128,GCM,SHA256,,,,),
|
---|
592 | CS_ENTRY(0xC061, TLS,ECDHE,RSA,WITH,ARIA,256,GCM,SHA384),
|
---|
593 | CS_ENTRY(0xC061, ECDHE,ARIA256,GCM,SHA384,,,,),
|
---|
594 | CS_ENTRY(0xC062, TLS,ECDH,RSA,WITH,ARIA,128,GCM,SHA256),
|
---|
595 | CS_ENTRY(0xC062, ECDH,ARIA128,GCM,SHA256,,,,), /* ns */
|
---|
596 | CS_ENTRY(0xC063, TLS,ECDH,RSA,WITH,ARIA,256,GCM,SHA384),
|
---|
597 | CS_ENTRY(0xC063, ECDH,ARIA256,GCM,SHA384,,,,), /* ns */
|
---|
598 | CS_ENTRY(0xC064, TLS,PSK,WITH,ARIA,128,CBC,SHA256,),
|
---|
599 | CS_ENTRY(0xC064, PSK,ARIA128,SHA256,,,,,), /* ns */
|
---|
600 | CS_ENTRY(0xC065, TLS,PSK,WITH,ARIA,256,CBC,SHA384,),
|
---|
601 | CS_ENTRY(0xC065, PSK,ARIA256,SHA384,,,,,), /* ns */
|
---|
602 | CS_ENTRY(0xC066, TLS,DHE,PSK,WITH,ARIA,128,CBC,SHA256),
|
---|
603 | CS_ENTRY(0xC066, DHE,PSK,ARIA128,SHA256,,,,), /* ns */
|
---|
604 | CS_ENTRY(0xC067, TLS,DHE,PSK,WITH,ARIA,256,CBC,SHA384),
|
---|
605 | CS_ENTRY(0xC067, DHE,PSK,ARIA256,SHA384,,,,), /* ns */
|
---|
606 | CS_ENTRY(0xC068, TLS,RSA,PSK,WITH,ARIA,128,CBC,SHA256),
|
---|
607 | CS_ENTRY(0xC068, RSA,PSK,ARIA128,SHA256,,,,), /* ns */
|
---|
608 | CS_ENTRY(0xC069, TLS,RSA,PSK,WITH,ARIA,256,CBC,SHA384),
|
---|
609 | CS_ENTRY(0xC069, RSA,PSK,ARIA256,SHA384,,,,), /* ns */
|
---|
610 | CS_ENTRY(0xC06A, TLS,PSK,WITH,ARIA,128,GCM,SHA256,),
|
---|
611 | CS_ENTRY(0xC06A, PSK,ARIA128,GCM,SHA256,,,,),
|
---|
612 | CS_ENTRY(0xC06B, TLS,PSK,WITH,ARIA,256,GCM,SHA384,),
|
---|
613 | CS_ENTRY(0xC06B, PSK,ARIA256,GCM,SHA384,,,,),
|
---|
614 | CS_ENTRY(0xC06C, TLS,DHE,PSK,WITH,ARIA,128,GCM,SHA256),
|
---|
615 | CS_ENTRY(0xC06C, DHE,PSK,ARIA128,GCM,SHA256,,,),
|
---|
616 | CS_ENTRY(0xC06D, TLS,DHE,PSK,WITH,ARIA,256,GCM,SHA384),
|
---|
617 | CS_ENTRY(0xC06D, DHE,PSK,ARIA256,GCM,SHA384,,,),
|
---|
618 | CS_ENTRY(0xC06E, TLS,RSA,PSK,WITH,ARIA,128,GCM,SHA256),
|
---|
619 | CS_ENTRY(0xC06E, RSA,PSK,ARIA128,GCM,SHA256,,,),
|
---|
620 | CS_ENTRY(0xC06F, TLS,RSA,PSK,WITH,ARIA,256,GCM,SHA384),
|
---|
621 | CS_ENTRY(0xC06F, RSA,PSK,ARIA256,GCM,SHA384,,,),
|
---|
622 | CS_ENTRY(0xC070, TLS,ECDHE,PSK,WITH,ARIA,128,CBC,SHA256),
|
---|
623 | CS_ENTRY(0xC070, ECDHE,PSK,ARIA128,SHA256,,,,), /* ns */
|
---|
624 | CS_ENTRY(0xC071, TLS,ECDHE,PSK,WITH,ARIA,256,CBC,SHA384),
|
---|
625 | CS_ENTRY(0xC071, ECDHE,PSK,ARIA256,SHA384,,,,), /* ns */
|
---|
626 | CS_ENTRY(0xC072, TLS,ECDHE,ECDSA,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
627 | CS_ENTRY(0xC072, ECDHE,ECDSA,CAMELLIA128,SHA256,,,,),
|
---|
628 | CS_ENTRY(0xC073, TLS,ECDHE,ECDSA,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
629 | CS_ENTRY(0xC073, ECDHE,ECDSA,CAMELLIA256,SHA384,,,,),
|
---|
630 | CS_ENTRY(0xC074, TLS,ECDH,ECDSA,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
631 | CS_ENTRY(0xC074, ECDH,ECDSA,CAMELLIA128,SHA256,,,,), /* ns */
|
---|
632 | CS_ENTRY(0xC075, TLS,ECDH,ECDSA,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
633 | CS_ENTRY(0xC075, ECDH,ECDSA,CAMELLIA256,SHA384,,,,), /* ns */
|
---|
634 | CS_ENTRY(0xC076, TLS,ECDHE,RSA,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
635 | CS_ENTRY(0xC076, ECDHE,RSA,CAMELLIA128,SHA256,,,,),
|
---|
636 | CS_ENTRY(0xC077, TLS,ECDHE,RSA,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
637 | CS_ENTRY(0xC077, ECDHE,RSA,CAMELLIA256,SHA384,,,,),
|
---|
638 | CS_ENTRY(0xC078, TLS,ECDH,RSA,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
639 | CS_ENTRY(0xC078, ECDH,CAMELLIA128,SHA256,,,,,), /* ns */
|
---|
640 | CS_ENTRY(0xC079, TLS,ECDH,RSA,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
641 | CS_ENTRY(0xC079, ECDH,CAMELLIA256,SHA384,,,,,), /* ns */
|
---|
642 | CS_ENTRY(0xC07A, TLS,RSA,WITH,CAMELLIA,128,GCM,SHA256,),
|
---|
643 | CS_ENTRY(0xC07A, CAMELLIA128,GCM,SHA256,,,,,), /* ns */
|
---|
644 | CS_ENTRY(0xC07B, TLS,RSA,WITH,CAMELLIA,256,GCM,SHA384,),
|
---|
645 | CS_ENTRY(0xC07B, CAMELLIA256,GCM,SHA384,,,,,), /* ns */
|
---|
646 | CS_ENTRY(0xC07C, TLS,DHE,RSA,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
647 | CS_ENTRY(0xC07C, DHE,RSA,CAMELLIA128,GCM,SHA256,,,), /* ns */
|
---|
648 | CS_ENTRY(0xC07D, TLS,DHE,RSA,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
649 | CS_ENTRY(0xC07D, DHE,RSA,CAMELLIA256,GCM,SHA384,,,), /* ns */
|
---|
650 | CS_ENTRY(0xC086, TLS,ECDHE,ECDSA,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
651 | CS_ENTRY(0xC086, ECDHE,ECDSA,CAMELLIA128,GCM,SHA256,,,), /* ns */
|
---|
652 | CS_ENTRY(0xC087, TLS,ECDHE,ECDSA,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
653 | CS_ENTRY(0xC087, ECDHE,ECDSA,CAMELLIA256,GCM,SHA384,,,), /* ns */
|
---|
654 | CS_ENTRY(0xC088, TLS,ECDH,ECDSA,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
655 | CS_ENTRY(0xC088, ECDH,ECDSA,CAMELLIA128,GCM,SHA256,,,), /* ns */
|
---|
656 | CS_ENTRY(0xC089, TLS,ECDH,ECDSA,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
657 | CS_ENTRY(0xC089, ECDH,ECDSA,CAMELLIA256,GCM,SHA384,,,), /* ns */
|
---|
658 | CS_ENTRY(0xC08A, TLS,ECDHE,RSA,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
659 | CS_ENTRY(0xC08A, ECDHE,CAMELLIA128,GCM,SHA256,,,,), /* ns */
|
---|
660 | CS_ENTRY(0xC08B, TLS,ECDHE,RSA,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
661 | CS_ENTRY(0xC08B, ECDHE,CAMELLIA256,GCM,SHA384,,,,), /* ns */
|
---|
662 | CS_ENTRY(0xC08C, TLS,ECDH,RSA,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
663 | CS_ENTRY(0xC08C, ECDH,CAMELLIA128,GCM,SHA256,,,,), /* ns */
|
---|
664 | CS_ENTRY(0xC08D, TLS,ECDH,RSA,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
665 | CS_ENTRY(0xC08D, ECDH,CAMELLIA256,GCM,SHA384,,,,), /* ns */
|
---|
666 | CS_ENTRY(0xC08E, TLS,PSK,WITH,CAMELLIA,128,GCM,SHA256,),
|
---|
667 | CS_ENTRY(0xC08E, PSK,CAMELLIA128,GCM,SHA256,,,,), /* ns */
|
---|
668 | CS_ENTRY(0xC08F, TLS,PSK,WITH,CAMELLIA,256,GCM,SHA384,),
|
---|
669 | CS_ENTRY(0xC08F, PSK,CAMELLIA256,GCM,SHA384,,,,), /* ns */
|
---|
670 | CS_ENTRY(0xC090, TLS,DHE,PSK,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
671 | CS_ENTRY(0xC090, DHE,PSK,CAMELLIA128,GCM,SHA256,,,), /* ns */
|
---|
672 | CS_ENTRY(0xC091, TLS,DHE,PSK,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
673 | CS_ENTRY(0xC091, DHE,PSK,CAMELLIA256,GCM,SHA384,,,), /* ns */
|
---|
674 | CS_ENTRY(0xC092, TLS,RSA,PSK,WITH,CAMELLIA,128,GCM,SHA256),
|
---|
675 | CS_ENTRY(0xC092, RSA,PSK,CAMELLIA128,GCM,SHA256,,,), /* ns */
|
---|
676 | CS_ENTRY(0xC093, TLS,RSA,PSK,WITH,CAMELLIA,256,GCM,SHA384),
|
---|
677 | CS_ENTRY(0xC093, RSA,PSK,CAMELLIA256,GCM,SHA384,,,), /* ns */
|
---|
678 | CS_ENTRY(0xC094, TLS,PSK,WITH,CAMELLIA,128,CBC,SHA256,),
|
---|
679 | CS_ENTRY(0xC094, PSK,CAMELLIA128,SHA256,,,,,),
|
---|
680 | CS_ENTRY(0xC095, TLS,PSK,WITH,CAMELLIA,256,CBC,SHA384,),
|
---|
681 | CS_ENTRY(0xC095, PSK,CAMELLIA256,SHA384,,,,,),
|
---|
682 | CS_ENTRY(0xC096, TLS,DHE,PSK,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
683 | CS_ENTRY(0xC096, DHE,PSK,CAMELLIA128,SHA256,,,,),
|
---|
684 | CS_ENTRY(0xC097, TLS,DHE,PSK,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
685 | CS_ENTRY(0xC097, DHE,PSK,CAMELLIA256,SHA384,,,,),
|
---|
686 | CS_ENTRY(0xC098, TLS,RSA,PSK,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
687 | CS_ENTRY(0xC098, RSA,PSK,CAMELLIA128,SHA256,,,,),
|
---|
688 | CS_ENTRY(0xC099, TLS,RSA,PSK,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
689 | CS_ENTRY(0xC099, RSA,PSK,CAMELLIA256,SHA384,,,,),
|
---|
690 | CS_ENTRY(0xC09A, TLS,ECDHE,PSK,WITH,CAMELLIA,128,CBC,SHA256),
|
---|
691 | CS_ENTRY(0xC09A, ECDHE,PSK,CAMELLIA128,SHA256,,,,),
|
---|
692 | CS_ENTRY(0xC09B, TLS,ECDHE,PSK,WITH,CAMELLIA,256,CBC,SHA384),
|
---|
693 | CS_ENTRY(0xC09B, ECDHE,PSK,CAMELLIA256,SHA384,,,,),
|
---|
694 | CS_ENTRY(0xC09E, TLS,DHE,RSA,WITH,AES,128,CCM,),
|
---|
695 | CS_ENTRY(0xC09E, DHE,RSA,AES128,CCM,,,,),
|
---|
696 | CS_ENTRY(0xC09F, TLS,DHE,RSA,WITH,AES,256,CCM,),
|
---|
697 | CS_ENTRY(0xC09F, DHE,RSA,AES256,CCM,,,,),
|
---|
698 | CS_ENTRY(0xC0A2, TLS,DHE,RSA,WITH,AES,128,CCM,8),
|
---|
699 | CS_ENTRY(0xC0A2, DHE,RSA,AES128,CCM8,,,,),
|
---|
700 | CS_ENTRY(0xC0A3, TLS,DHE,RSA,WITH,AES,256,CCM,8),
|
---|
701 | CS_ENTRY(0xC0A3, DHE,RSA,AES256,CCM8,,,,),
|
---|
702 | CS_ENTRY(0xC0A4, TLS,PSK,WITH,AES,128,CCM,,),
|
---|
703 | CS_ENTRY(0xC0A4, PSK,AES128,CCM,,,,,),
|
---|
704 | CS_ENTRY(0xC0A5, TLS,PSK,WITH,AES,256,CCM,,),
|
---|
705 | CS_ENTRY(0xC0A5, PSK,AES256,CCM,,,,,),
|
---|
706 | CS_ENTRY(0xC0A6, TLS,DHE,PSK,WITH,AES,128,CCM,),
|
---|
707 | CS_ENTRY(0xC0A6, DHE,PSK,AES128,CCM,,,,),
|
---|
708 | CS_ENTRY(0xC0A7, TLS,DHE,PSK,WITH,AES,256,CCM,),
|
---|
709 | CS_ENTRY(0xC0A7, DHE,PSK,AES256,CCM,,,,),
|
---|
710 | CS_ENTRY(0xC0A8, TLS,PSK,WITH,AES,128,CCM,8,),
|
---|
711 | CS_ENTRY(0xC0A8, PSK,AES128,CCM8,,,,,),
|
---|
712 | CS_ENTRY(0xC0A9, TLS,PSK,WITH,AES,256,CCM,8,),
|
---|
713 | CS_ENTRY(0xC0A9, PSK,AES256,CCM8,,,,,),
|
---|
714 | CS_ENTRY(0xC0AA, TLS,PSK,DHE,WITH,AES,128,CCM,8),
|
---|
715 | CS_ENTRY(0xC0AA, DHE,PSK,AES128,CCM8,,,,),
|
---|
716 | CS_ENTRY(0xC0AB, TLS,PSK,DHE,WITH,AES,256,CCM,8),
|
---|
717 | CS_ENTRY(0xC0AB, DHE,PSK,AES256,CCM8,,,,),
|
---|
718 | CS_ENTRY(0xCCAA, TLS,DHE,RSA,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
719 | CS_ENTRY(0xCCAA, DHE,RSA,CHACHA20,POLY1305,,,,),
|
---|
720 | CS_ENTRY(0xCCAC, TLS,ECDHE,PSK,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
721 | CS_ENTRY(0xCCAC, ECDHE,PSK,CHACHA20,POLY1305,,,,),
|
---|
722 | CS_ENTRY(0xCCAD, TLS,DHE,PSK,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
723 | CS_ENTRY(0xCCAD, DHE,PSK,CHACHA20,POLY1305,,,,),
|
---|
724 | CS_ENTRY(0xCCAE, TLS,RSA,PSK,WITH,CHACHA20,POLY1305,SHA256,),
|
---|
725 | CS_ENTRY(0xCCAE, RSA,PSK,CHACHA20,POLY1305,,,,),
|
---|
726 | #endif
|
---|
727 | };
|
---|
728 | #define CS_LIST_LEN (sizeof(cs_list) / sizeof(cs_list[0]))
|
---|
729 |
|
---|
730 | static int cs_str_to_zip(const char *cs_str, size_t cs_len,
|
---|
731 | uint8_t zip[6])
|
---|
732 | {
|
---|
733 | uint8_t indexes[8] = {0};
|
---|
734 | const char *entry, *cur;
|
---|
735 | const char *nxt = cs_str;
|
---|
736 | const char *end = cs_str + cs_len;
|
---|
737 | char separator = '-';
|
---|
738 | int idx, i = 0;
|
---|
739 | size_t len;
|
---|
740 |
|
---|
741 | /* split the cipher string by '-' or '_' */
|
---|
742 | if(strncasecompare(cs_str, "TLS", 3))
|
---|
743 | separator = '_';
|
---|
744 |
|
---|
745 | do {
|
---|
746 | if(i == 8)
|
---|
747 | return -1;
|
---|
748 |
|
---|
749 | /* determine the length of the part */
|
---|
750 | cur = nxt;
|
---|
751 | for(; nxt < end && *nxt != '\0' && *nxt != separator; nxt++);
|
---|
752 | len = nxt - cur;
|
---|
753 |
|
---|
754 | /* lookup index for the part (skip empty string at 0) */
|
---|
755 | for(idx = 1, entry = cs_txt + 1; idx < CS_TXT_LEN; idx++) {
|
---|
756 | size_t elen = strlen(entry);
|
---|
757 | if(elen == len && strncasecompare(entry, cur, len))
|
---|
758 | break;
|
---|
759 | entry += elen + 1;
|
---|
760 | }
|
---|
761 | if(idx == CS_TXT_LEN)
|
---|
762 | return -1;
|
---|
763 |
|
---|
764 | indexes[i++] = (uint8_t) idx;
|
---|
765 | } while(nxt < end && *(nxt++) != '\0');
|
---|
766 |
|
---|
767 | /* zip the 8 indexes into 48 bits */
|
---|
768 | zip[0] = (uint8_t) (indexes[0] << 2 | (indexes[1] & 0x3F) >> 4);
|
---|
769 | zip[1] = (uint8_t) (indexes[1] << 4 | (indexes[2] & 0x3F) >> 2);
|
---|
770 | zip[2] = (uint8_t) (indexes[2] << 6 | (indexes[3] & 0x3F));
|
---|
771 | zip[3] = (uint8_t) (indexes[4] << 2 | (indexes[5] & 0x3F) >> 4);
|
---|
772 | zip[4] = (uint8_t) (indexes[5] << 4 | (indexes[6] & 0x3F) >> 2);
|
---|
773 | zip[5] = (uint8_t) (indexes[6] << 6 | (indexes[7] & 0x3F));
|
---|
774 |
|
---|
775 | return 0;
|
---|
776 | }
|
---|
777 |
|
---|
778 | static int cs_zip_to_str(const uint8_t zip[6],
|
---|
779 | char *buf, size_t buf_size)
|
---|
780 | {
|
---|
781 | uint8_t indexes[8] = {0};
|
---|
782 | const char *entry;
|
---|
783 | char separator = '-';
|
---|
784 | int idx, i, r;
|
---|
785 | size_t len = 0;
|
---|
786 |
|
---|
787 | /* unzip the 8 indexes */
|
---|
788 | indexes[0] = zip[0] >> 2;
|
---|
789 | indexes[1] = ((zip[0] << 4) & 0x3F) | zip[1] >> 4;
|
---|
790 | indexes[2] = ((zip[1] << 2) & 0x3F) | zip[2] >> 6;
|
---|
791 | indexes[3] = ((zip[2] << 0) & 0x3F);
|
---|
792 | indexes[4] = zip[3] >> 2;
|
---|
793 | indexes[5] = ((zip[3] << 4) & 0x3F) | zip[4] >> 4;
|
---|
794 | indexes[6] = ((zip[4] << 2) & 0x3F) | zip[5] >> 6;
|
---|
795 | indexes[7] = ((zip[5] << 0) & 0x3F);
|
---|
796 |
|
---|
797 | if(indexes[0] == CS_TXT_IDX_TLS)
|
---|
798 | separator = '_';
|
---|
799 |
|
---|
800 | for(i = 0; i < 8 && indexes[i] != 0 && len < buf_size; i++) {
|
---|
801 | if(indexes[i] >= CS_TXT_LEN)
|
---|
802 | return -1;
|
---|
803 |
|
---|
804 | /* lookup the part string for the index (skip empty string at 0) */
|
---|
805 | for(idx = 1, entry = cs_txt + 1; idx < indexes[i]; idx++) {
|
---|
806 | size_t elen = strlen(entry);
|
---|
807 | entry += elen + 1;
|
---|
808 | }
|
---|
809 |
|
---|
810 | /* append the part string to the buffer */
|
---|
811 | if(i > 0)
|
---|
812 | r = msnprintf(&buf[len], buf_size - len, "%c%s", separator, entry);
|
---|
813 | else
|
---|
814 | r = msnprintf(&buf[len], buf_size - len, "%s", entry);
|
---|
815 |
|
---|
816 | if(r < 0)
|
---|
817 | return -1;
|
---|
818 | len += r;
|
---|
819 | }
|
---|
820 |
|
---|
821 | return 0;
|
---|
822 | }
|
---|
823 |
|
---|
824 | uint16_t Curl_cipher_suite_lookup_id(const char *cs_str, size_t cs_len)
|
---|
825 | {
|
---|
826 | size_t i;
|
---|
827 | uint8_t zip[6];
|
---|
828 |
|
---|
829 | if(cs_len > 0 && cs_str_to_zip(cs_str, cs_len, zip) == 0) {
|
---|
830 | for(i = 0; i < CS_LIST_LEN; i++) {
|
---|
831 | if(memcmp(cs_list[i].zip, zip, sizeof(zip)) == 0)
|
---|
832 | return cs_list[i].id;
|
---|
833 | }
|
---|
834 | }
|
---|
835 |
|
---|
836 | return 0;
|
---|
837 | }
|
---|
838 |
|
---|
839 | static bool cs_is_separator(char c)
|
---|
840 | {
|
---|
841 | switch(c) {
|
---|
842 | case ' ':
|
---|
843 | case '\t':
|
---|
844 | case ':':
|
---|
845 | case ',':
|
---|
846 | case ';':
|
---|
847 | return TRUE;
|
---|
848 | default:;
|
---|
849 | }
|
---|
850 | return FALSE;
|
---|
851 | }
|
---|
852 |
|
---|
853 | uint16_t Curl_cipher_suite_walk_str(const char **str, const char **end)
|
---|
854 | {
|
---|
855 | /* move string pointer to first non-separator or end of string */
|
---|
856 | for(; cs_is_separator(*str[0]); (*str)++);
|
---|
857 |
|
---|
858 | /* move end pointer to next separator or end of string */
|
---|
859 | for(*end = *str; *end[0] != '\0' && !cs_is_separator(*end[0]); (*end)++);
|
---|
860 |
|
---|
861 | return Curl_cipher_suite_lookup_id(*str, *end - *str);
|
---|
862 | }
|
---|
863 |
|
---|
864 | int Curl_cipher_suite_get_str(uint16_t id, char *buf, size_t buf_size,
|
---|
865 | bool prefer_rfc)
|
---|
866 | {
|
---|
867 | size_t i, j = CS_LIST_LEN;
|
---|
868 | int r = -1;
|
---|
869 |
|
---|
870 | for(i = 0; i < CS_LIST_LEN; i++) {
|
---|
871 | if(cs_list[i].id != id)
|
---|
872 | continue;
|
---|
873 | if((cs_list[i].zip[0] >> 2 != CS_TXT_IDX_TLS) == !prefer_rfc) {
|
---|
874 | j = i;
|
---|
875 | break;
|
---|
876 | }
|
---|
877 | if(j == CS_LIST_LEN)
|
---|
878 | j = i;
|
---|
879 | }
|
---|
880 |
|
---|
881 | if(j < CS_LIST_LEN)
|
---|
882 | r = cs_zip_to_str(cs_list[j].zip, buf, buf_size);
|
---|
883 |
|
---|
884 | if(r < 0)
|
---|
885 | msnprintf(buf, buf_size, "TLS_UNKNOWN_0x%04x", id);
|
---|
886 |
|
---|
887 | return r;
|
---|
888 | }
|
---|
889 |
|
---|
890 | #endif /* defined(USE_SECTRANSP) || defined(USE_MBEDTLS) || \
|
---|
891 | defined(USE_BEARSSL) || defined(USE_RUSTLS) */
|
---|