This Trac instance is not used for development anymore!

We migrated our development workflow to git and Gitea.
To test the future redirection, replace trac by ariadne in the page URL.

source: ps/trunk/build/premake/premake5/contrib/mbedtls/library/ssl_ciphersuites.c

Last change on this file was 20366, checked in by Itms, 7 years ago

Alpha 12 version of Premake 5, including prebuilt binary for Windows.
Directly taken from https://premake.github.io/.

Refs #3729.

File size: 79.3 KB
Line 
1/**
2 * \file ssl_ciphersuites.c
3 *
4 * \brief SSL ciphersuites for mbed TLS
5 *
6 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
7 * SPDX-License-Identifier: Apache-2.0
8 *
9 * Licensed under the Apache License, Version 2.0 (the "License"); you may
10 * not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
20 *
21 * This file is part of mbed TLS (https://tls.mbed.org)
22 */
23
24#if !defined(MBEDTLS_CONFIG_FILE)
25#include "mbedtls/config.h"
26#else
27#include MBEDTLS_CONFIG_FILE
28#endif
29
30#if defined(MBEDTLS_SSL_TLS_C)
31
32#include "mbedtls/ssl_ciphersuites.h"
33#include "mbedtls/ssl.h"
34
35// #include <stdlib.h>
36#include <string.h>
37
38/*
39 * Ordered from most preferred to least preferred in terms of security.
40 *
41 * Current rule (except rc4, weak and null which come last):
42 * 1. By key exchange:
43 * Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
44 * 2. By key length and cipher:
45 * AES-256 > Camellia-256 > AES-128 > Camellia-128 > 3DES
46 * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
47 * 4. By hash function used when relevant
48 * 5. By key exchange/auth again: EC > non-EC
49 */
50static const int ciphersuite_preference[] =
51{
52#if defined(MBEDTLS_SSL_CIPHERSUITES)
53 MBEDTLS_SSL_CIPHERSUITES,
54#else
55 /* All AES-256 ephemeral suites */
56 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
57 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
58 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
59 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
60 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
61 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
62 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
63 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
64 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
65 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
66 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
67 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
68 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,
69
70 /* All CAMELLIA-256 ephemeral suites */
71 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
72 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
73 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
74 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
75 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
76 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
77 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
78
79 /* All AES-128 ephemeral suites */
80 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
81 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
82 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
83 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
84 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
85 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
86 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
87 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
88 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
89 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
90 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
91 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
92 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,
93
94 /* All CAMELLIA-128 ephemeral suites */
95 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
96 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
97 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
98 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
99 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
100 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
101 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
102
103 /* All remaining >= 128-bit ephemeral suites */
104 MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
105 MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
106 MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
107
108 /* The PSK ephemeral suites */
109 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
110 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
111 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
112 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
113 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
114 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
115 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
116 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
117 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
118 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
119
120 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
121 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
122 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
123 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
124 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
125 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
126 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
127 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
128 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
129 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
130
131 MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
132 MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
133
134 /* The ECJPAKE suite */
135 MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
136
137 /* All AES-256 suites */
138 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
139 MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
140 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
141 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
142 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
143 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
144 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
145 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
146 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
147 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
148 MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
149
150 /* All CAMELLIA-256 suites */
151 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
152 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
153 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
154 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
155 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
156 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
157 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
158
159 /* All AES-128 suites */
160 MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
161 MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
162 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
163 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
164 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
165 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
166 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
167 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
168 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
169 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
170 MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
171
172 /* All CAMELLIA-128 suites */
173 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
174 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
175 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
176 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
177 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
178 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
179 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
180
181 /* All remaining >= 128-bit suites */
182 MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
183 MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
184 MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
185
186 /* The RSA PSK suites */
187 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
188 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
189 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
190 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
191 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
192
193 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
194 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
195 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
196 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
197 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
198
199 MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
200
201 /* The PSK suites */
202 MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
203 MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
204 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384,
205 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA,
206 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
207 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
208 MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8,
209
210 MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256,
211 MBEDTLS_TLS_PSK_WITH_AES_128_CCM,
212 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256,
213 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA,
214 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
215 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
216 MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
217
218 MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
219
220 /* RC4 suites */
221 MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
222 MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA,
223 MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA,
224 MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA,
225 MBEDTLS_TLS_RSA_WITH_RC4_128_SHA,
226 MBEDTLS_TLS_RSA_WITH_RC4_128_MD5,
227 MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA,
228 MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
229 MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA,
230 MBEDTLS_TLS_PSK_WITH_RC4_128_SHA,
231
232 /* Weak suites */
233 MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA,
234 MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA,
235
236 /* NULL suites */
237 MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
238 MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA,
239 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
240 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
241 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
242 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
243 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
244 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
245
246 MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
247 MBEDTLS_TLS_RSA_WITH_NULL_SHA,
248 MBEDTLS_TLS_RSA_WITH_NULL_MD5,
249 MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
250 MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
251 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
252 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
253 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
254 MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
255 MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
256 MBEDTLS_TLS_PSK_WITH_NULL_SHA,
257
258#endif /* MBEDTLS_SSL_CIPHERSUITES */
259 0
260};
261
262static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
263{
264#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
265#if defined(MBEDTLS_AES_C)
266#if defined(MBEDTLS_SHA1_C)
267#if defined(MBEDTLS_CIPHER_MODE_CBC)
268 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
269 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
270 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
271 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
272 0 },
273 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
274 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
275 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
276 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
277 0 },
278#endif /* MBEDTLS_CIPHER_MODE_CBC */
279#endif /* MBEDTLS_SHA1_C */
280#if defined(MBEDTLS_SHA256_C)
281#if defined(MBEDTLS_CIPHER_MODE_CBC)
282 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
283 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
284 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
285 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
286 0 },
287#endif /* MBEDTLS_CIPHER_MODE_CBC */
288#if defined(MBEDTLS_GCM_C)
289 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
290 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
291 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
292 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
293 0 },
294#endif /* MBEDTLS_GCM_C */
295#endif /* MBEDTLS_SHA256_C */
296#if defined(MBEDTLS_SHA512_C)
297#if defined(MBEDTLS_CIPHER_MODE_CBC)
298 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
299 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
300 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
301 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
302 0 },
303#endif /* MBEDTLS_CIPHER_MODE_CBC */
304#if defined(MBEDTLS_GCM_C)
305 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
306 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
307 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
308 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
309 0 },
310#endif /* MBEDTLS_GCM_C */
311#endif /* MBEDTLS_SHA512_C */
312#if defined(MBEDTLS_CCM_C)
313 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
314 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
315 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
316 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
317 0 },
318 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
319 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
320 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
321 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
322 MBEDTLS_CIPHERSUITE_SHORT_TAG },
323 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
324 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
325 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
326 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
327 0 },
328 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
329 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
330 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
331 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
332 MBEDTLS_CIPHERSUITE_SHORT_TAG },
333#endif /* MBEDTLS_CCM_C */
334#endif /* MBEDTLS_AES_C */
335
336#if defined(MBEDTLS_CAMELLIA_C)
337#if defined(MBEDTLS_CIPHER_MODE_CBC)
338#if defined(MBEDTLS_SHA256_C)
339 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
340 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
341 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
342 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
343 0 },
344#endif /* MBEDTLS_SHA256_C */
345#if defined(MBEDTLS_SHA512_C)
346 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
347 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
348 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
349 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
350 0 },
351#endif /* MBEDTLS_SHA512_C */
352#endif /* MBEDTLS_CIPHER_MODE_CBC */
353
354#if defined(MBEDTLS_GCM_C)
355#if defined(MBEDTLS_SHA256_C)
356 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
357 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
358 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
359 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
360 0 },
361#endif /* MBEDTLS_SHA256_C */
362#if defined(MBEDTLS_SHA512_C)
363 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
364 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
365 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
366 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
367 0 },
368#endif /* MBEDTLS_SHA512_C */
369#endif /* MBEDTLS_GCM_C */
370#endif /* MBEDTLS_CAMELLIA_C */
371
372#if defined(MBEDTLS_DES_C)
373#if defined(MBEDTLS_CIPHER_MODE_CBC)
374#if defined(MBEDTLS_SHA1_C)
375 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA",
376 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
377 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
378 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
379 0 },
380#endif /* MBEDTLS_SHA1_C */
381#endif /* MBEDTLS_CIPHER_MODE_CBC */
382#endif /* MBEDTLS_DES_C */
383
384#if defined(MBEDTLS_ARC4_C)
385#if defined(MBEDTLS_SHA1_C)
386 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA",
387 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
388 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
389 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
390 MBEDTLS_CIPHERSUITE_NODTLS },
391#endif /* MBEDTLS_SHA1_C */
392#endif /* MBEDTLS_ARC4_C */
393
394#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
395#if defined(MBEDTLS_SHA1_C)
396 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
397 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
398 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
399 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
400 MBEDTLS_CIPHERSUITE_WEAK },
401#endif /* MBEDTLS_SHA1_C */
402#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
403#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
404
405#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
406#if defined(MBEDTLS_AES_C)
407#if defined(MBEDTLS_SHA1_C)
408#if defined(MBEDTLS_CIPHER_MODE_CBC)
409 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
410 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
411 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
412 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
413 0 },
414 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
415 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
416 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
417 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
418 0 },
419#endif /* MBEDTLS_CIPHER_MODE_CBC */
420#endif /* MBEDTLS_SHA1_C */
421#if defined(MBEDTLS_SHA256_C)
422#if defined(MBEDTLS_CIPHER_MODE_CBC)
423 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
424 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
425 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
426 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
427 0 },
428#endif /* MBEDTLS_CIPHER_MODE_CBC */
429#if defined(MBEDTLS_GCM_C)
430 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
431 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
432 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
433 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
434 0 },
435#endif /* MBEDTLS_GCM_C */
436#endif /* MBEDTLS_SHA256_C */
437#if defined(MBEDTLS_SHA512_C)
438#if defined(MBEDTLS_CIPHER_MODE_CBC)
439 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
440 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
441 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
442 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
443 0 },
444#endif /* MBEDTLS_CIPHER_MODE_CBC */
445#if defined(MBEDTLS_GCM_C)
446 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
447 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
448 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
449 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
450 0 },
451#endif /* MBEDTLS_GCM_C */
452#endif /* MBEDTLS_SHA512_C */
453#endif /* MBEDTLS_AES_C */
454
455#if defined(MBEDTLS_CAMELLIA_C)
456#if defined(MBEDTLS_CIPHER_MODE_CBC)
457#if defined(MBEDTLS_SHA256_C)
458 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
459 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
460 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
461 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
462 0 },
463#endif /* MBEDTLS_SHA256_C */
464#if defined(MBEDTLS_SHA512_C)
465 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
466 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
467 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
468 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
469 0 },
470#endif /* MBEDTLS_SHA512_C */
471#endif /* MBEDTLS_CIPHER_MODE_CBC */
472
473#if defined(MBEDTLS_GCM_C)
474#if defined(MBEDTLS_SHA256_C)
475 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
476 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
477 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
478 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
479 0 },
480#endif /* MBEDTLS_SHA256_C */
481#if defined(MBEDTLS_SHA512_C)
482 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
483 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
484 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
485 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
486 0 },
487#endif /* MBEDTLS_SHA512_C */
488#endif /* MBEDTLS_GCM_C */
489#endif /* MBEDTLS_CAMELLIA_C */
490
491#if defined(MBEDTLS_DES_C)
492#if defined(MBEDTLS_CIPHER_MODE_CBC)
493#if defined(MBEDTLS_SHA1_C)
494 { MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA",
495 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
496 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
497 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
498 0 },
499#endif /* MBEDTLS_SHA1_C */
500#endif /* MBEDTLS_CIPHER_MODE_CBC */
501#endif /* MBEDTLS_DES_C */
502
503#if defined(MBEDTLS_ARC4_C)
504#if defined(MBEDTLS_SHA1_C)
505 { MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA",
506 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
507 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
508 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
509 MBEDTLS_CIPHERSUITE_NODTLS },
510#endif /* MBEDTLS_SHA1_C */
511#endif /* MBEDTLS_ARC4_C */
512
513#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
514#if defined(MBEDTLS_SHA1_C)
515 { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
516 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
517 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
518 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
519 MBEDTLS_CIPHERSUITE_WEAK },
520#endif /* MBEDTLS_SHA1_C */
521#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
522#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
523
524#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
525#if defined(MBEDTLS_AES_C)
526#if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
527 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
528 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
529 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
530 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
531 0 },
532#endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
533
534#if defined(MBEDTLS_SHA256_C)
535#if defined(MBEDTLS_GCM_C)
536 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
537 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
538 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
539 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
540 0 },
541#endif /* MBEDTLS_GCM_C */
542
543#if defined(MBEDTLS_CIPHER_MODE_CBC)
544 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
545 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
546 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
547 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
548 0 },
549
550 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
551 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
552 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
553 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
554 0 },
555#endif /* MBEDTLS_CIPHER_MODE_CBC */
556#endif /* MBEDTLS_SHA256_C */
557
558#if defined(MBEDTLS_CIPHER_MODE_CBC)
559#if defined(MBEDTLS_SHA1_C)
560 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
561 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
562 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
563 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
564 0 },
565
566 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
567 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
568 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
569 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
570 0 },
571#endif /* MBEDTLS_SHA1_C */
572#endif /* MBEDTLS_CIPHER_MODE_CBC */
573#if defined(MBEDTLS_CCM_C)
574 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
575 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
576 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
577 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
578 0 },
579 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
580 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
581 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
582 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
583 MBEDTLS_CIPHERSUITE_SHORT_TAG },
584 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
585 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
586 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
587 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
588 0 },
589 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
590 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
591 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
592 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
593 MBEDTLS_CIPHERSUITE_SHORT_TAG },
594#endif /* MBEDTLS_CCM_C */
595#endif /* MBEDTLS_AES_C */
596
597#if defined(MBEDTLS_CAMELLIA_C)
598#if defined(MBEDTLS_CIPHER_MODE_CBC)
599#if defined(MBEDTLS_SHA256_C)
600 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
601 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
602 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
603 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
604 0 },
605
606 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
607 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
608 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
609 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
610 0 },
611#endif /* MBEDTLS_SHA256_C */
612
613#if defined(MBEDTLS_SHA1_C)
614 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
615 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
616 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
617 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
618 0 },
619
620 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
621 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
622 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
623 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
624 0 },
625#endif /* MBEDTLS_SHA1_C */
626#endif /* MBEDTLS_CIPHER_MODE_CBC */
627#if defined(MBEDTLS_GCM_C)
628#if defined(MBEDTLS_SHA256_C)
629 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
630 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
631 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
632 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
633 0 },
634#endif /* MBEDTLS_SHA256_C */
635
636#if defined(MBEDTLS_SHA512_C)
637 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
638 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
639 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
640 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
641 0 },
642#endif /* MBEDTLS_SHA512_C */
643#endif /* MBEDTLS_GCM_C */
644#endif /* MBEDTLS_CAMELLIA_C */
645
646#if defined(MBEDTLS_DES_C)
647#if defined(MBEDTLS_CIPHER_MODE_CBC)
648#if defined(MBEDTLS_SHA1_C)
649 { MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA",
650 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
651 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
652 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
653 0 },
654#endif /* MBEDTLS_SHA1_C */
655#endif /* MBEDTLS_CIPHER_MODE_CBC */
656#endif /* MBEDTLS_DES_C */
657#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
658
659#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
660#if defined(MBEDTLS_AES_C)
661#if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
662 { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
663 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
664 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
665 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
666 0 },
667#endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
668
669#if defined(MBEDTLS_SHA256_C)
670#if defined(MBEDTLS_GCM_C)
671 { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
672 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
673 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
674 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
675 0 },
676#endif /* MBEDTLS_GCM_C */
677
678#if defined(MBEDTLS_CIPHER_MODE_CBC)
679 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
680 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
681 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
682 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
683 0 },
684
685 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
686 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
687 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
688 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
689 0 },
690#endif /* MBEDTLS_CIPHER_MODE_CBC */
691#endif /* MBEDTLS_SHA256_C */
692
693#if defined(MBEDTLS_SHA1_C)
694#if defined(MBEDTLS_CIPHER_MODE_CBC)
695 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
696 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
697 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
698 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
699 0 },
700
701 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
702 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
703 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
704 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
705 0 },
706#endif /* MBEDTLS_CIPHER_MODE_CBC */
707#endif /* MBEDTLS_SHA1_C */
708#if defined(MBEDTLS_CCM_C)
709 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
710 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
711 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
712 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
713 0 },
714 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
715 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
716 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
717 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
718 MBEDTLS_CIPHERSUITE_SHORT_TAG },
719 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
720 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
721 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
722 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
723 0 },
724 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
725 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
726 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
727 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
728 MBEDTLS_CIPHERSUITE_SHORT_TAG },
729#endif /* MBEDTLS_CCM_C */
730#endif /* MBEDTLS_AES_C */
731
732#if defined(MBEDTLS_CAMELLIA_C)
733#if defined(MBEDTLS_CIPHER_MODE_CBC)
734#if defined(MBEDTLS_SHA256_C)
735 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
736 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
737 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
738 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
739 0 },
740
741 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
742 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
743 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
744 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
745 0 },
746#endif /* MBEDTLS_SHA256_C */
747
748#if defined(MBEDTLS_SHA1_C)
749 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
750 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
751 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
752 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
753 0 },
754
755 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
756 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
757 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
758 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
759 0 },
760#endif /* MBEDTLS_SHA1_C */
761#endif /* MBEDTLS_CIPHER_MODE_CBC */
762
763#if defined(MBEDTLS_GCM_C)
764#if defined(MBEDTLS_SHA256_C)
765 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
766 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
767 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
768 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
769 0 },
770#endif /* MBEDTLS_SHA256_C */
771
772#if defined(MBEDTLS_SHA1_C)
773 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
774 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
775 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
776 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
777 0 },
778#endif /* MBEDTLS_SHA1_C */
779#endif /* MBEDTLS_GCM_C */
780#endif /* MBEDTLS_CAMELLIA_C */
781
782#if defined(MBEDTLS_DES_C)
783#if defined(MBEDTLS_CIPHER_MODE_CBC)
784#if defined(MBEDTLS_SHA1_C)
785 { MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA",
786 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
787 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
788 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
789 0 },
790#endif /* MBEDTLS_SHA1_C */
791#endif /* MBEDTLS_CIPHER_MODE_CBC */
792#endif /* MBEDTLS_DES_C */
793
794#if defined(MBEDTLS_ARC4_C)
795#if defined(MBEDTLS_MD5_C)
796 { MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5",
797 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
798 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
799 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
800 MBEDTLS_CIPHERSUITE_NODTLS },
801#endif
802
803#if defined(MBEDTLS_SHA1_C)
804 { MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA",
805 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
806 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
807 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
808 MBEDTLS_CIPHERSUITE_NODTLS },
809#endif
810#endif /* MBEDTLS_ARC4_C */
811#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
812
813#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
814#if defined(MBEDTLS_AES_C)
815#if defined(MBEDTLS_SHA1_C)
816#if defined(MBEDTLS_CIPHER_MODE_CBC)
817 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
818 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
819 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
820 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
821 0 },
822 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
823 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
824 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
825 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
826 0 },
827#endif /* MBEDTLS_CIPHER_MODE_CBC */
828#endif /* MBEDTLS_SHA1_C */
829#if defined(MBEDTLS_SHA256_C)
830#if defined(MBEDTLS_CIPHER_MODE_CBC)
831 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
832 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
833 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
834 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
835 0 },
836#endif /* MBEDTLS_CIPHER_MODE_CBC */
837#if defined(MBEDTLS_GCM_C)
838 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
839 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
840 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
841 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
842 0 },
843#endif /* MBEDTLS_GCM_C */
844#endif /* MBEDTLS_SHA256_C */
845#if defined(MBEDTLS_SHA512_C)
846#if defined(MBEDTLS_CIPHER_MODE_CBC)
847 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
848 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
849 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
850 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
851 0 },
852#endif /* MBEDTLS_CIPHER_MODE_CBC */
853#if defined(MBEDTLS_GCM_C)
854 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
855 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
856 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
857 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
858 0 },
859#endif /* MBEDTLS_GCM_C */
860#endif /* MBEDTLS_SHA512_C */
861#endif /* MBEDTLS_AES_C */
862
863#if defined(MBEDTLS_CAMELLIA_C)
864#if defined(MBEDTLS_CIPHER_MODE_CBC)
865#if defined(MBEDTLS_SHA256_C)
866 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
867 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
868 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
869 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
870 0 },
871#endif /* MBEDTLS_SHA256_C */
872#if defined(MBEDTLS_SHA512_C)
873 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
874 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
875 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
876 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
877 0 },
878#endif /* MBEDTLS_SHA512_C */
879#endif /* MBEDTLS_CIPHER_MODE_CBC */
880
881#if defined(MBEDTLS_GCM_C)
882#if defined(MBEDTLS_SHA256_C)
883 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
884 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
885 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
886 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
887 0 },
888#endif /* MBEDTLS_SHA256_C */
889#if defined(MBEDTLS_SHA512_C)
890 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
891 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
892 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
893 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
894 0 },
895#endif /* MBEDTLS_SHA512_C */
896#endif /* MBEDTLS_GCM_C */
897#endif /* MBEDTLS_CAMELLIA_C */
898
899#if defined(MBEDTLS_DES_C)
900#if defined(MBEDTLS_CIPHER_MODE_CBC)
901#if defined(MBEDTLS_SHA1_C)
902 { MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA",
903 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
904 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
905 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
906 0 },
907#endif /* MBEDTLS_SHA1_C */
908#endif /* MBEDTLS_CIPHER_MODE_CBC */
909#endif /* MBEDTLS_DES_C */
910
911#if defined(MBEDTLS_ARC4_C)
912#if defined(MBEDTLS_SHA1_C)
913 { MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA",
914 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
915 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
916 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
917 MBEDTLS_CIPHERSUITE_NODTLS },
918#endif /* MBEDTLS_SHA1_C */
919#endif /* MBEDTLS_ARC4_C */
920
921#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
922#if defined(MBEDTLS_SHA1_C)
923 { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
924 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
925 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
926 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
927 MBEDTLS_CIPHERSUITE_WEAK },
928#endif /* MBEDTLS_SHA1_C */
929#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
930#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
931
932#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
933#if defined(MBEDTLS_AES_C)
934#if defined(MBEDTLS_SHA1_C)
935#if defined(MBEDTLS_CIPHER_MODE_CBC)
936 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
937 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
938 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
939 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
940 0 },
941 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
942 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
943 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
944 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
945 0 },
946#endif /* MBEDTLS_CIPHER_MODE_CBC */
947#endif /* MBEDTLS_SHA1_C */
948#if defined(MBEDTLS_SHA256_C)
949#if defined(MBEDTLS_CIPHER_MODE_CBC)
950 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
951 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
952 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
953 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
954 0 },
955#endif /* MBEDTLS_CIPHER_MODE_CBC */
956#if defined(MBEDTLS_GCM_C)
957 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
958 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
959 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
960 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
961 0 },
962#endif /* MBEDTLS_GCM_C */
963#endif /* MBEDTLS_SHA256_C */
964#if defined(MBEDTLS_SHA512_C)
965#if defined(MBEDTLS_CIPHER_MODE_CBC)
966 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
967 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
968 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
969 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
970 0 },
971#endif /* MBEDTLS_CIPHER_MODE_CBC */
972#if defined(MBEDTLS_GCM_C)
973 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
974 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
975 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
976 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
977 0 },
978#endif /* MBEDTLS_GCM_C */
979#endif /* MBEDTLS_SHA512_C */
980#endif /* MBEDTLS_AES_C */
981
982#if defined(MBEDTLS_CAMELLIA_C)
983#if defined(MBEDTLS_CIPHER_MODE_CBC)
984#if defined(MBEDTLS_SHA256_C)
985 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
986 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
987 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
988 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
989 0 },
990#endif /* MBEDTLS_SHA256_C */
991#if defined(MBEDTLS_SHA512_C)
992 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
993 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
994 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
995 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
996 0 },
997#endif /* MBEDTLS_SHA512_C */
998#endif /* MBEDTLS_CIPHER_MODE_CBC */
999
1000#if defined(MBEDTLS_GCM_C)
1001#if defined(MBEDTLS_SHA256_C)
1002 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
1003 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1004 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1005 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1006 0 },
1007#endif /* MBEDTLS_SHA256_C */
1008#if defined(MBEDTLS_SHA512_C)
1009 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
1010 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1011 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1012 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1013 0 },
1014#endif /* MBEDTLS_SHA512_C */
1015#endif /* MBEDTLS_GCM_C */
1016#endif /* MBEDTLS_CAMELLIA_C */
1017
1018#if defined(MBEDTLS_DES_C)
1019#if defined(MBEDTLS_CIPHER_MODE_CBC)
1020#if defined(MBEDTLS_SHA1_C)
1021 { MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA",
1022 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1023 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1024 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1025 0 },
1026#endif /* MBEDTLS_SHA1_C */
1027#endif /* MBEDTLS_CIPHER_MODE_CBC */
1028#endif /* MBEDTLS_DES_C */
1029
1030#if defined(MBEDTLS_ARC4_C)
1031#if defined(MBEDTLS_SHA1_C)
1032 { MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA",
1033 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1034 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1035 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1036 MBEDTLS_CIPHERSUITE_NODTLS },
1037#endif /* MBEDTLS_SHA1_C */
1038#endif /* MBEDTLS_ARC4_C */
1039
1040#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1041#if defined(MBEDTLS_SHA1_C)
1042 { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
1043 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1044 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1045 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1046 MBEDTLS_CIPHERSUITE_WEAK },
1047#endif /* MBEDTLS_SHA1_C */
1048#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1049#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1050
1051#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1052#if defined(MBEDTLS_AES_C)
1053#if defined(MBEDTLS_GCM_C)
1054#if defined(MBEDTLS_SHA256_C)
1055 { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
1056 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1057 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1058 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1059 0 },
1060#endif /* MBEDTLS_SHA256_C */
1061
1062#if defined(MBEDTLS_SHA512_C)
1063 { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
1064 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1065 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1066 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1067 0 },
1068#endif /* MBEDTLS_SHA512_C */
1069#endif /* MBEDTLS_GCM_C */
1070
1071#if defined(MBEDTLS_CIPHER_MODE_CBC)
1072#if defined(MBEDTLS_SHA256_C)
1073 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1074 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1075 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1076 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1077 0 },
1078#endif /* MBEDTLS_SHA256_C */
1079
1080#if defined(MBEDTLS_SHA512_C)
1081 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1082 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1083 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1084 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1085 0 },
1086#endif /* MBEDTLS_SHA512_C */
1087
1088#if defined(MBEDTLS_SHA1_C)
1089 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1090 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1091 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1092 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1093 0 },
1094
1095 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1096 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1097 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1098 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1099 0 },
1100#endif /* MBEDTLS_SHA1_C */
1101#endif /* MBEDTLS_CIPHER_MODE_CBC */
1102#if defined(MBEDTLS_CCM_C)
1103 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1104 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1105 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1106 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1107 0 },
1108 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1109 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1110 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1111 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1112 MBEDTLS_CIPHERSUITE_SHORT_TAG },
1113 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1114 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1115 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1116 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1117 0 },
1118 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1119 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1120 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1121 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1122 MBEDTLS_CIPHERSUITE_SHORT_TAG },
1123#endif /* MBEDTLS_CCM_C */
1124#endif /* MBEDTLS_AES_C */
1125
1126#if defined(MBEDTLS_CAMELLIA_C)
1127#if defined(MBEDTLS_CIPHER_MODE_CBC)
1128#if defined(MBEDTLS_SHA256_C)
1129 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1130 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1131 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1132 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1133 0 },
1134#endif /* MBEDTLS_SHA256_C */
1135
1136#if defined(MBEDTLS_SHA512_C)
1137 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1138 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1139 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1140 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1141 0 },
1142#endif /* MBEDTLS_SHA512_C */
1143#endif /* MBEDTLS_CIPHER_MODE_CBC */
1144
1145#if defined(MBEDTLS_GCM_C)
1146#if defined(MBEDTLS_SHA256_C)
1147 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1148 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1149 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1150 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1151 0 },
1152#endif /* MBEDTLS_SHA256_C */
1153
1154#if defined(MBEDTLS_SHA512_C)
1155 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1156 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1157 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1158 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1159 0 },
1160#endif /* MBEDTLS_SHA512_C */
1161#endif /* MBEDTLS_GCM_C */
1162#endif /* MBEDTLS_CAMELLIA_C */
1163
1164#if defined(MBEDTLS_DES_C)
1165#if defined(MBEDTLS_CIPHER_MODE_CBC)
1166#if defined(MBEDTLS_SHA1_C)
1167 { MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA",
1168 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1169 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1170 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1171 0 },
1172#endif /* MBEDTLS_SHA1_C */
1173#endif /* MBEDTLS_CIPHER_MODE_CBC */
1174#endif /* MBEDTLS_DES_C */
1175
1176#if defined(MBEDTLS_ARC4_C)
1177#if defined(MBEDTLS_SHA1_C)
1178 { MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA",
1179 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1180 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1181 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1182 MBEDTLS_CIPHERSUITE_NODTLS },
1183#endif /* MBEDTLS_SHA1_C */
1184#endif /* MBEDTLS_ARC4_C */
1185#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1186
1187#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1188#if defined(MBEDTLS_AES_C)
1189#if defined(MBEDTLS_GCM_C)
1190#if defined(MBEDTLS_SHA256_C)
1191 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1192 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1193 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1194 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1195 0 },
1196#endif /* MBEDTLS_SHA256_C */
1197
1198#if defined(MBEDTLS_SHA512_C)
1199 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1200 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1201 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1202 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1203 0 },
1204#endif /* MBEDTLS_SHA512_C */
1205#endif /* MBEDTLS_GCM_C */
1206
1207#if defined(MBEDTLS_CIPHER_MODE_CBC)
1208#if defined(MBEDTLS_SHA256_C)
1209 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1210 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1211 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1212 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1213 0 },
1214#endif /* MBEDTLS_SHA256_C */
1215
1216#if defined(MBEDTLS_SHA512_C)
1217 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1218 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1219 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1220 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1221 0 },
1222#endif /* MBEDTLS_SHA512_C */
1223
1224#if defined(MBEDTLS_SHA1_C)
1225 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1226 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1227 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1228 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1229 0 },
1230
1231 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1232 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1233 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1234 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1235 0 },
1236#endif /* MBEDTLS_SHA1_C */
1237#endif /* MBEDTLS_CIPHER_MODE_CBC */
1238#if defined(MBEDTLS_CCM_C)
1239 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1240 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1241 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1242 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1243 0 },
1244 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1245 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1246 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1247 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1248 MBEDTLS_CIPHERSUITE_SHORT_TAG },
1249 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1250 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1251 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1252 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1253 0 },
1254 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1255 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1256 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1257 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1258 MBEDTLS_CIPHERSUITE_SHORT_TAG },
1259#endif /* MBEDTLS_CCM_C */
1260#endif /* MBEDTLS_AES_C */
1261
1262#if defined(MBEDTLS_CAMELLIA_C)
1263#if defined(MBEDTLS_CIPHER_MODE_CBC)
1264#if defined(MBEDTLS_SHA256_C)
1265 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1266 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1267 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1268 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1269 0 },
1270#endif /* MBEDTLS_SHA256_C */
1271
1272#if defined(MBEDTLS_SHA512_C)
1273 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1274 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1275 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1276 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1277 0 },
1278#endif /* MBEDTLS_SHA512_C */
1279#endif /* MBEDTLS_CIPHER_MODE_CBC */
1280
1281#if defined(MBEDTLS_GCM_C)
1282#if defined(MBEDTLS_SHA256_C)
1283 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1284 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1285 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1286 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1287 0 },
1288#endif /* MBEDTLS_SHA256_C */
1289
1290#if defined(MBEDTLS_SHA512_C)
1291 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1292 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1293 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1294 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1295 0 },
1296#endif /* MBEDTLS_SHA512_C */
1297#endif /* MBEDTLS_GCM_C */
1298#endif /* MBEDTLS_CAMELLIA_C */
1299
1300#if defined(MBEDTLS_DES_C)
1301#if defined(MBEDTLS_CIPHER_MODE_CBC)
1302#if defined(MBEDTLS_SHA1_C)
1303 { MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA",
1304 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1305 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1306 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1307 0 },
1308#endif /* MBEDTLS_SHA1_C */
1309#endif /* MBEDTLS_CIPHER_MODE_CBC */
1310#endif /* MBEDTLS_DES_C */
1311
1312#if defined(MBEDTLS_ARC4_C)
1313#if defined(MBEDTLS_SHA1_C)
1314 { MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA",
1315 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1316 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1317 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1318 MBEDTLS_CIPHERSUITE_NODTLS },
1319#endif /* MBEDTLS_SHA1_C */
1320#endif /* MBEDTLS_ARC4_C */
1321#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1322
1323#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1324#if defined(MBEDTLS_AES_C)
1325
1326#if defined(MBEDTLS_CIPHER_MODE_CBC)
1327#if defined(MBEDTLS_SHA256_C)
1328 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1329 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1330 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1331 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1332 0 },
1333#endif /* MBEDTLS_SHA256_C */
1334
1335#if defined(MBEDTLS_SHA512_C)
1336 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1337 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1338 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1339 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1340 0 },
1341#endif /* MBEDTLS_SHA512_C */
1342
1343#if defined(MBEDTLS_SHA1_C)
1344 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1345 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1346 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1347 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1348 0 },
1349
1350 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1351 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1352 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1353 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1354 0 },
1355#endif /* MBEDTLS_SHA1_C */
1356#endif /* MBEDTLS_CIPHER_MODE_CBC */
1357#endif /* MBEDTLS_AES_C */
1358
1359#if defined(MBEDTLS_CAMELLIA_C)
1360#if defined(MBEDTLS_CIPHER_MODE_CBC)
1361#if defined(MBEDTLS_SHA256_C)
1362 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1363 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1364 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1365 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1366 0 },
1367#endif /* MBEDTLS_SHA256_C */
1368
1369#if defined(MBEDTLS_SHA512_C)
1370 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1371 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1372 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1373 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1374 0 },
1375#endif /* MBEDTLS_SHA512_C */
1376#endif /* MBEDTLS_CIPHER_MODE_CBC */
1377#endif /* MBEDTLS_CAMELLIA_C */
1378
1379#if defined(MBEDTLS_DES_C)
1380#if defined(MBEDTLS_CIPHER_MODE_CBC)
1381#if defined(MBEDTLS_SHA1_C)
1382 { MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA",
1383 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1384 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1385 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1386 0 },
1387#endif /* MBEDTLS_SHA1_C */
1388#endif /* MBEDTLS_CIPHER_MODE_CBC */
1389#endif /* MBEDTLS_DES_C */
1390
1391#if defined(MBEDTLS_ARC4_C)
1392#if defined(MBEDTLS_SHA1_C)
1393 { MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA",
1394 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1395 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1396 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1397 MBEDTLS_CIPHERSUITE_NODTLS },
1398#endif /* MBEDTLS_SHA1_C */
1399#endif /* MBEDTLS_ARC4_C */
1400#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1401
1402#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1403#if defined(MBEDTLS_AES_C)
1404#if defined(MBEDTLS_GCM_C)
1405#if defined(MBEDTLS_SHA256_C)
1406 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1407 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1408 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1409 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1410 0 },
1411#endif /* MBEDTLS_SHA256_C */
1412
1413#if defined(MBEDTLS_SHA512_C)
1414 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1415 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1416 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1417 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1418 0 },
1419#endif /* MBEDTLS_SHA512_C */
1420#endif /* MBEDTLS_GCM_C */
1421
1422#if defined(MBEDTLS_CIPHER_MODE_CBC)
1423#if defined(MBEDTLS_SHA256_C)
1424 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1425 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1426 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1427 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1428 0 },
1429#endif /* MBEDTLS_SHA256_C */
1430
1431#if defined(MBEDTLS_SHA512_C)
1432 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1433 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1434 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1435 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1436 0 },
1437#endif /* MBEDTLS_SHA512_C */
1438
1439#if defined(MBEDTLS_SHA1_C)
1440 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1441 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1442 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1443 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1444 0 },
1445
1446 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1447 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1448 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1449 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1450 0 },
1451#endif /* MBEDTLS_SHA1_C */
1452#endif /* MBEDTLS_CIPHER_MODE_CBC */
1453#endif /* MBEDTLS_AES_C */
1454
1455#if defined(MBEDTLS_CAMELLIA_C)
1456#if defined(MBEDTLS_CIPHER_MODE_CBC)
1457#if defined(MBEDTLS_SHA256_C)
1458 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1459 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1460 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1461 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1462 0 },
1463#endif /* MBEDTLS_SHA256_C */
1464
1465#if defined(MBEDTLS_SHA512_C)
1466 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1467 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1468 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1469 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1470 0 },
1471#endif /* MBEDTLS_SHA512_C */
1472#endif /* MBEDTLS_CIPHER_MODE_CBC */
1473
1474#if defined(MBEDTLS_GCM_C)
1475#if defined(MBEDTLS_SHA256_C)
1476 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1477 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1478 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1479 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1480 0 },
1481#endif /* MBEDTLS_SHA256_C */
1482
1483#if defined(MBEDTLS_SHA512_C)
1484 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1485 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1486 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1487 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1488 0 },
1489#endif /* MBEDTLS_SHA512_C */
1490#endif /* MBEDTLS_GCM_C */
1491#endif /* MBEDTLS_CAMELLIA_C */
1492
1493#if defined(MBEDTLS_DES_C)
1494#if defined(MBEDTLS_CIPHER_MODE_CBC)
1495#if defined(MBEDTLS_SHA1_C)
1496 { MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA",
1497 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1498 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1499 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1500 0 },
1501#endif /* MBEDTLS_SHA1_C */
1502#endif /* MBEDTLS_CIPHER_MODE_CBC */
1503#endif /* MBEDTLS_DES_C */
1504
1505#if defined(MBEDTLS_ARC4_C)
1506#if defined(MBEDTLS_SHA1_C)
1507 { MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA",
1508 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1509 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1510 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1511 MBEDTLS_CIPHERSUITE_NODTLS },
1512#endif /* MBEDTLS_SHA1_C */
1513#endif /* MBEDTLS_ARC4_C */
1514#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1515
1516#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
1517#if defined(MBEDTLS_AES_C)
1518#if defined(MBEDTLS_CCM_C)
1519 { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
1520 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
1521 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1522 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1523 MBEDTLS_CIPHERSUITE_SHORT_TAG },
1524#endif /* MBEDTLS_CCM_C */
1525#endif /* MBEDTLS_AES_C */
1526#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
1527
1528#if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
1529#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1530#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1531#if defined(MBEDTLS_MD5_C)
1532 { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1533 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
1534 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1535 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1536 MBEDTLS_CIPHERSUITE_WEAK },
1537#endif
1538
1539#if defined(MBEDTLS_SHA1_C)
1540 { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1541 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
1542 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1543 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1544 MBEDTLS_CIPHERSUITE_WEAK },
1545#endif
1546
1547#if defined(MBEDTLS_SHA256_C)
1548 { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1549 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
1550 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1551 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1552 MBEDTLS_CIPHERSUITE_WEAK },
1553#endif
1554#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1555
1556#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1557#if defined(MBEDTLS_SHA1_C)
1558 { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1559 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1560 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1561 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1562 MBEDTLS_CIPHERSUITE_WEAK },
1563#endif /* MBEDTLS_SHA1_C */
1564
1565#if defined(MBEDTLS_SHA256_C)
1566 { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1567 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1568 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1569 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1570 MBEDTLS_CIPHERSUITE_WEAK },
1571#endif
1572
1573#if defined(MBEDTLS_SHA512_C)
1574 { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1575 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1576 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1577 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1578 MBEDTLS_CIPHERSUITE_WEAK },
1579#endif
1580#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1581
1582#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1583#if defined(MBEDTLS_SHA1_C)
1584 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1585 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1586 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1587 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1588 MBEDTLS_CIPHERSUITE_WEAK },
1589#endif /* MBEDTLS_SHA1_C */
1590
1591#if defined(MBEDTLS_SHA256_C)
1592 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1593 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1594 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1595 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1596 MBEDTLS_CIPHERSUITE_WEAK },
1597#endif
1598
1599#if defined(MBEDTLS_SHA512_C)
1600 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1601 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1602 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1603 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1604 MBEDTLS_CIPHERSUITE_WEAK },
1605#endif
1606#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1607
1608#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1609#if defined(MBEDTLS_SHA1_C)
1610 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1611 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1612 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1613 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1614 MBEDTLS_CIPHERSUITE_WEAK },
1615#endif /* MBEDTLS_SHA1_C */
1616
1617#if defined(MBEDTLS_SHA256_C)
1618 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1619 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1620 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1621 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1622 MBEDTLS_CIPHERSUITE_WEAK },
1623#endif
1624
1625#if defined(MBEDTLS_SHA512_C)
1626 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1627 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1628 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1629 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1630 MBEDTLS_CIPHERSUITE_WEAK },
1631#endif
1632#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1633
1634#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1635#if defined(MBEDTLS_SHA1_C)
1636 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1637 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1638 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1639 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1640 MBEDTLS_CIPHERSUITE_WEAK },
1641#endif /* MBEDTLS_SHA1_C */
1642
1643#if defined(MBEDTLS_SHA256_C)
1644 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
1645 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1646 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1647 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1648 MBEDTLS_CIPHERSUITE_WEAK },
1649#endif
1650
1651#if defined(MBEDTLS_SHA512_C)
1652 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
1653 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1654 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1655 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1656 MBEDTLS_CIPHERSUITE_WEAK },
1657#endif
1658#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1659#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1660
1661#if defined(MBEDTLS_DES_C)
1662#if defined(MBEDTLS_CIPHER_MODE_CBC)
1663#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
1664#if defined(MBEDTLS_SHA1_C)
1665 { MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA",
1666 MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
1667 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1668 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1669 MBEDTLS_CIPHERSUITE_WEAK },
1670#endif /* MBEDTLS_SHA1_C */
1671#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
1672
1673#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1674#if defined(MBEDTLS_SHA1_C)
1675 { MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA",
1676 MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
1677 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1678 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1679 MBEDTLS_CIPHERSUITE_WEAK },
1680#endif /* MBEDTLS_SHA1_C */
1681#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1682#endif /* MBEDTLS_CIPHER_MODE_CBC */
1683#endif /* MBEDTLS_DES_C */
1684#endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
1685
1686 { 0, "",
1687 MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE,
1688 0, 0, 0, 0, 0 }
1689};
1690
1691#if defined(MBEDTLS_SSL_CIPHERSUITES)
1692const int *mbedtls_ssl_list_ciphersuites( void )
1693{
1694 return( ciphersuite_preference );
1695}
1696#else
1697#define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \
1698 sizeof( ciphersuite_definitions[0] )
1699static int supported_ciphersuites[MAX_CIPHERSUITES];
1700static int supported_init = 0;
1701
1702const int *mbedtls_ssl_list_ciphersuites( void )
1703{
1704 /*
1705 * On initial call filter out all ciphersuites not supported by current
1706 * build based on presence in the ciphersuite_definitions.
1707 */
1708 if( supported_init == 0 )
1709 {
1710 const int *p;
1711 int *q;
1712
1713 for( p = ciphersuite_preference, q = supported_ciphersuites;
1714 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
1715 p++ )
1716 {
1717#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
1718 const mbedtls_ssl_ciphersuite_t *cs_info;
1719 if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
1720 cs_info->cipher != MBEDTLS_CIPHER_ARC4_128 )
1721#else
1722 if( mbedtls_ssl_ciphersuite_from_id( *p ) != NULL )
1723#endif
1724 *(q++) = *p;
1725 }
1726 *q = 0;
1727
1728 supported_init = 1;
1729 }
1730
1731 return( supported_ciphersuites );
1732}
1733#endif /* MBEDTLS_SSL_CIPHERSUITES */
1734
1735const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(
1736 const char *ciphersuite_name )
1737{
1738 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1739
1740 if( NULL == ciphersuite_name )
1741 return( NULL );
1742
1743 while( cur->id != 0 )
1744 {
1745 if( 0 == strcmp( cur->name, ciphersuite_name ) )
1746 return( cur );
1747
1748 cur++;
1749 }
1750
1751 return( NULL );
1752}
1753
1754const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite )
1755{
1756 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1757
1758 while( cur->id != 0 )
1759 {
1760 if( cur->id == ciphersuite )
1761 return( cur );
1762
1763 cur++;
1764 }
1765
1766 return( NULL );
1767}
1768
1769const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id )
1770{
1771 const mbedtls_ssl_ciphersuite_t *cur;
1772
1773 cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id );
1774
1775 if( cur == NULL )
1776 return( "unknown" );
1777
1778 return( cur->name );
1779}
1780
1781int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name )
1782{
1783 const mbedtls_ssl_ciphersuite_t *cur;
1784
1785 cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name );
1786
1787 if( cur == NULL )
1788 return( 0 );
1789
1790 return( cur->id );
1791}
1792
1793#if defined(MBEDTLS_PK_C)
1794mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info )
1795{
1796 switch( info->key_exchange )
1797 {
1798 case MBEDTLS_KEY_EXCHANGE_RSA:
1799 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1800 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1801 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1802 return( MBEDTLS_PK_RSA );
1803
1804 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1805 return( MBEDTLS_PK_ECDSA );
1806
1807 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1808 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1809 return( MBEDTLS_PK_ECKEY );
1810
1811 default:
1812 return( MBEDTLS_PK_NONE );
1813 }
1814}
1815#endif /* MBEDTLS_PK_C */
1816
1817#if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C)
1818int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info )
1819{
1820 switch( info->key_exchange )
1821 {
1822 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1823 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1824 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
1825 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1826 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1827 return( 1 );
1828
1829 default:
1830 return( 0 );
1831 }
1832}
1833#endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C */
1834
1835#if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
1836int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info )
1837{
1838 switch( info->key_exchange )
1839 {
1840 case MBEDTLS_KEY_EXCHANGE_PSK:
1841 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1842 case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
1843 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
1844 return( 1 );
1845
1846 default:
1847 return( 0 );
1848 }
1849}
1850#endif /* MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED */
1851
1852#endif /* MBEDTLS_SSL_TLS_C */
Note: See TracBrowser for help on using the repository browser.