xref: /optee_os/lib/libmbedtls/mbedtls/library/ssl_ciphersuites.c (revision c6672fdcd95b9a895eb5b4191f8ba3483a34a442)
1*c6672fdcSEdison Ai // SPDX-License-Identifier: Apache-2.0
2817466cbSJens Wiklander /**
3817466cbSJens Wiklander  * \file ssl_ciphersuites.c
4817466cbSJens Wiklander  *
5817466cbSJens Wiklander  * \brief SSL ciphersuites for mbed TLS
6817466cbSJens Wiklander  *
7817466cbSJens Wiklander  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
8817466cbSJens Wiklander  *
9817466cbSJens Wiklander  *  Licensed under the Apache License, Version 2.0 (the "License"); you may
10817466cbSJens Wiklander  *  not use this file except in compliance with the License.
11817466cbSJens Wiklander  *  You may obtain a copy of the License at
12817466cbSJens Wiklander  *
13817466cbSJens Wiklander  *  http://www.apache.org/licenses/LICENSE-2.0
14817466cbSJens Wiklander  *
15817466cbSJens Wiklander  *  Unless required by applicable law or agreed to in writing, software
16817466cbSJens Wiklander  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17817466cbSJens Wiklander  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18817466cbSJens Wiklander  *  See the License for the specific language governing permissions and
19817466cbSJens Wiklander  *  limitations under the License.
20817466cbSJens Wiklander  *
21817466cbSJens Wiklander  *  This file is part of mbed TLS (https://tls.mbed.org)
22817466cbSJens Wiklander  */
23817466cbSJens Wiklander 
24817466cbSJens Wiklander #if !defined(MBEDTLS_CONFIG_FILE)
25817466cbSJens Wiklander #include "mbedtls/config.h"
26817466cbSJens Wiklander #else
27817466cbSJens Wiklander #include MBEDTLS_CONFIG_FILE
28817466cbSJens Wiklander #endif
29817466cbSJens Wiklander 
30817466cbSJens Wiklander #if defined(MBEDTLS_SSL_TLS_C)
31817466cbSJens Wiklander 
32817466cbSJens Wiklander #if defined(MBEDTLS_PLATFORM_C)
33817466cbSJens Wiklander #include "mbedtls/platform.h"
34817466cbSJens Wiklander #else
35817466cbSJens Wiklander #include <stdlib.h>
36817466cbSJens Wiklander #endif
37817466cbSJens Wiklander 
38817466cbSJens Wiklander #include "mbedtls/ssl_ciphersuites.h"
39817466cbSJens Wiklander #include "mbedtls/ssl.h"
40817466cbSJens Wiklander 
41817466cbSJens Wiklander #include <string.h>
42817466cbSJens Wiklander 
43817466cbSJens Wiklander /*
44817466cbSJens Wiklander  * Ordered from most preferred to least preferred in terms of security.
45817466cbSJens Wiklander  *
46817466cbSJens Wiklander  * Current rule (except rc4, weak and null which come last):
47817466cbSJens Wiklander  * 1. By key exchange:
48817466cbSJens Wiklander  *    Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
49817466cbSJens Wiklander  * 2. By key length and cipher:
50817466cbSJens Wiklander  *    AES-256 > Camellia-256 > AES-128 > Camellia-128 > 3DES
51817466cbSJens Wiklander  * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
52817466cbSJens Wiklander  * 4. By hash function used when relevant
53817466cbSJens Wiklander  * 5. By key exchange/auth again: EC > non-EC
54817466cbSJens Wiklander  */
55817466cbSJens Wiklander static const int ciphersuite_preference[] =
56817466cbSJens Wiklander {
57817466cbSJens Wiklander #if defined(MBEDTLS_SSL_CIPHERSUITES)
58817466cbSJens Wiklander     MBEDTLS_SSL_CIPHERSUITES,
59817466cbSJens Wiklander #else
60817466cbSJens Wiklander     /* All AES-256 ephemeral suites */
61817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
62817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
63817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
64817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
65817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
66817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
67817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
68817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
69817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
70817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
71817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
72817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
73817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,
74817466cbSJens Wiklander 
75817466cbSJens Wiklander     /* All CAMELLIA-256 ephemeral suites */
76817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
77817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
78817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
79817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
80817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
81817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
82817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
83817466cbSJens Wiklander 
84817466cbSJens Wiklander     /* All AES-128 ephemeral suites */
85817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
86817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
87817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
88817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
89817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
90817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
91817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
92817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
93817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
94817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
95817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
96817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
97817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,
98817466cbSJens Wiklander 
99817466cbSJens Wiklander     /* All CAMELLIA-128 ephemeral suites */
100817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
101817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
102817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
103817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
104817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
105817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
106817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
107817466cbSJens Wiklander 
108817466cbSJens Wiklander     /* All remaining >= 128-bit ephemeral suites */
109817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
110817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
111817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
112817466cbSJens Wiklander 
113817466cbSJens Wiklander     /* The PSK ephemeral suites */
114817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
115817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
116817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
117817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
118817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
119817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
120817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
121817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
122817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
123817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
124817466cbSJens Wiklander 
125817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
126817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
127817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
128817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
129817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
130817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
131817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
132817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
133817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
134817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
135817466cbSJens Wiklander 
136817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
137817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
138817466cbSJens Wiklander 
139817466cbSJens Wiklander     /* The ECJPAKE suite */
140817466cbSJens Wiklander     MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
141817466cbSJens Wiklander 
142817466cbSJens Wiklander     /* All AES-256 suites */
143817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
144817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
145817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
146817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
147817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
148817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
149817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
150817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
151817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
152817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
153817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
154817466cbSJens Wiklander 
155817466cbSJens Wiklander     /* All CAMELLIA-256 suites */
156817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
157817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
158817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
159817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
160817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
161817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
162817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
163817466cbSJens Wiklander 
164817466cbSJens Wiklander     /* All AES-128 suites */
165817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
166817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
167817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
168817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
169817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
170817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
171817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
172817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
173817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
174817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
175817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
176817466cbSJens Wiklander 
177817466cbSJens Wiklander     /* All CAMELLIA-128 suites */
178817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
179817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
180817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
181817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
182817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
183817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
184817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
185817466cbSJens Wiklander 
186817466cbSJens Wiklander     /* All remaining >= 128-bit suites */
187817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
188817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
189817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
190817466cbSJens Wiklander 
191817466cbSJens Wiklander     /* The RSA PSK suites */
192817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
193817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
194817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
195817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
196817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
197817466cbSJens Wiklander 
198817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
199817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
200817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
201817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
202817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
203817466cbSJens Wiklander 
204817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
205817466cbSJens Wiklander 
206817466cbSJens Wiklander     /* The PSK suites */
207817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
208817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
209817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384,
210817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA,
211817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
212817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
213817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8,
214817466cbSJens Wiklander 
215817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256,
216817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_128_CCM,
217817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256,
218817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA,
219817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
220817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
221817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
222817466cbSJens Wiklander 
223817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
224817466cbSJens Wiklander 
225817466cbSJens Wiklander     /* RC4 suites */
226817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
227817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA,
228817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA,
229817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA,
230817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_RC4_128_SHA,
231817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_RC4_128_MD5,
232817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA,
233817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
234817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA,
235817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_RC4_128_SHA,
236817466cbSJens Wiklander 
237817466cbSJens Wiklander     /* Weak suites */
238817466cbSJens Wiklander     MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA,
239817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA,
240817466cbSJens Wiklander 
241817466cbSJens Wiklander     /* NULL suites */
242817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
243817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA,
244817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
245817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
246817466cbSJens Wiklander     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
247817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
248817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
249817466cbSJens Wiklander     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
250817466cbSJens Wiklander 
251817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
252817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_NULL_SHA,
253817466cbSJens Wiklander     MBEDTLS_TLS_RSA_WITH_NULL_MD5,
254817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
255817466cbSJens Wiklander     MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
256817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
257817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
258817466cbSJens Wiklander     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
259817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
260817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
261817466cbSJens Wiklander     MBEDTLS_TLS_PSK_WITH_NULL_SHA,
262817466cbSJens Wiklander 
263817466cbSJens Wiklander #endif /* MBEDTLS_SSL_CIPHERSUITES */
264817466cbSJens Wiklander     0
265817466cbSJens Wiklander };
266817466cbSJens Wiklander 
267817466cbSJens Wiklander static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
268817466cbSJens Wiklander {
269817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
270817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
271817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
272817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
273817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
274817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
275817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
276817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
277817466cbSJens Wiklander       0 },
278817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
279817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
280817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
281817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
282817466cbSJens Wiklander       0 },
283817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
284817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
285817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
286817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
287817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
288817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
289817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
290817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
291817466cbSJens Wiklander       0 },
292817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
293817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
294817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
295817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
296817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
297817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
298817466cbSJens Wiklander       0 },
299817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
300817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
301817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
302817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
303817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
304817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
305817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
306817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
307817466cbSJens Wiklander       0 },
308817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
309817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
310817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
311817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
312817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
313817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
314817466cbSJens Wiklander       0 },
315817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
316817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
317817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
318817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
319817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
320817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
321817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
322817466cbSJens Wiklander       0 },
323817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
324817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
325817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
326817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
327817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
328817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
329817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
330817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
331817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
332817466cbSJens Wiklander       0 },
333817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
334817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
335817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
336817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
337817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
338817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
339817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
340817466cbSJens Wiklander 
341817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
342817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
343817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
344817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
345817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
346817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
347817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
348817466cbSJens Wiklander       0 },
349817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
350817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
351817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
352817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
353817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
354817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
355817466cbSJens Wiklander       0 },
356817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
357817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
358817466cbSJens Wiklander 
359817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
360817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
361817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
362817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
363817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
364817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
365817466cbSJens Wiklander       0 },
366817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
367817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
368817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
369817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
370817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
371817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
372817466cbSJens Wiklander       0 },
373817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
374817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
375817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
376817466cbSJens Wiklander 
377817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
378817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
379817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
380817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA",
381817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
382817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
383817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
384817466cbSJens Wiklander       0 },
385817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
386817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
387817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
388817466cbSJens Wiklander 
389817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
390817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
391817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA",
392817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
393817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
394817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
395817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
396817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
397817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
398817466cbSJens Wiklander 
399817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
400817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
401817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
402817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
403817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
404817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
405817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
406817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
407817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
408817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
409817466cbSJens Wiklander 
410817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
411817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
412817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
413817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
414817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
415817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
416817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
417817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
418817466cbSJens Wiklander       0 },
419817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
420817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
421817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
422817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
423817466cbSJens Wiklander       0 },
424817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
425817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
426817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
427817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
428817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
429817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
430817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
431817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
432817466cbSJens Wiklander       0 },
433817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
434817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
435817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
436817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
437817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
438817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
439817466cbSJens Wiklander       0 },
440817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
441817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
442817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
443817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
444817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
445817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
446817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
447817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
448817466cbSJens Wiklander       0 },
449817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
450817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
451817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
452817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
453817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
454817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
455817466cbSJens Wiklander       0 },
456817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
457817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
458817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
459817466cbSJens Wiklander 
460817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
461817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
462817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
463817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
464817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
465817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
466817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
467817466cbSJens Wiklander       0 },
468817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
469817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
470817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
471817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
472817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
473817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
474817466cbSJens Wiklander       0 },
475817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
476817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
477817466cbSJens Wiklander 
478817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
479817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
480817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
481817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
482817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
483817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
484817466cbSJens Wiklander       0 },
485817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
486817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
487817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
488817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
489817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
490817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
491817466cbSJens Wiklander       0 },
492817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
493817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
494817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
495817466cbSJens Wiklander 
496817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
497817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
498817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
499817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA",
500817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
501817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
502817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
503817466cbSJens Wiklander       0 },
504817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
505817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
506817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
507817466cbSJens Wiklander 
508817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
509817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
510817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA",
511817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
512817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
513817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
514817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
515817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
516817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
517817466cbSJens Wiklander 
518817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
519817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
520817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
521817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
522817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
523817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
524817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
525817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
526817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
527817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
528817466cbSJens Wiklander 
529817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
530817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
531817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
532817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
533817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
534817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
535817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
536817466cbSJens Wiklander       0 },
537817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
538817466cbSJens Wiklander 
539817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
540817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
541817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
542817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
543817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
544817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
545817466cbSJens Wiklander       0 },
546817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
547817466cbSJens Wiklander 
548817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
549817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
550817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
551817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
552817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
553817466cbSJens Wiklander       0 },
554817466cbSJens Wiklander 
555817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
556817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
557817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
558817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
559817466cbSJens Wiklander       0 },
560817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
561817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
562817466cbSJens Wiklander 
563817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
564817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
565817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
566817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
567817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
568817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
569817466cbSJens Wiklander       0 },
570817466cbSJens Wiklander 
571817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
572817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
573817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
574817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
575817466cbSJens Wiklander       0 },
576817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
577817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
578817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
579817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
580817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
581817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
582817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
583817466cbSJens Wiklander       0 },
584817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
585817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
586817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
587817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
588817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
589817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
590817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
591817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
592817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
593817466cbSJens Wiklander       0 },
594817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
595817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
596817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
597817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
598817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
599817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
600817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
601817466cbSJens Wiklander 
602817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
603817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
604817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
605817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
606817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
607817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
608817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
609817466cbSJens Wiklander       0 },
610817466cbSJens Wiklander 
611817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
612817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
613817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
614817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
615817466cbSJens Wiklander       0 },
616817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
617817466cbSJens Wiklander 
618817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
619817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
620817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
621817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
622817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
623817466cbSJens Wiklander       0 },
624817466cbSJens Wiklander 
625817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
626817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
627817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
628817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
629817466cbSJens Wiklander       0 },
630817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
631817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
632817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
633817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
634817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
635817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
636817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
637817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
638817466cbSJens Wiklander       0 },
639817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
640817466cbSJens Wiklander 
641817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
642817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
643817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
644817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
645817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
646817466cbSJens Wiklander       0 },
647817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
648817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
649817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
650817466cbSJens Wiklander 
651817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
652817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
653817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
654817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA",
655817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
656817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
657817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
658817466cbSJens Wiklander       0 },
659817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
660817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
661817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
662817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
663817466cbSJens Wiklander 
664817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
665817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
666817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
667817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
668817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
669817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
670817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
671817466cbSJens Wiklander       0 },
672817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
673817466cbSJens Wiklander 
674817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
675817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
676817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
677817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
678817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
679817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
680817466cbSJens Wiklander       0 },
681817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
682817466cbSJens Wiklander 
683817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
684817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
685817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
686817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
687817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
688817466cbSJens Wiklander       0 },
689817466cbSJens Wiklander 
690817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
691817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
692817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
693817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
694817466cbSJens Wiklander       0 },
695817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
696817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
697817466cbSJens Wiklander 
698817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
699817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
700817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
701817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
702817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
703817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
704817466cbSJens Wiklander       0 },
705817466cbSJens Wiklander 
706817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
707817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
708817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
709817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
710817466cbSJens Wiklander       0 },
711817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
712817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
713817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
714817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
715817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
716817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
717817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
718817466cbSJens Wiklander       0 },
719817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
720817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
721817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
722817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
723817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
724817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
725817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
726817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
727817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
728817466cbSJens Wiklander       0 },
729817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
730817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
731817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
732817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
733817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
734817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
735817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
736817466cbSJens Wiklander 
737817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
738817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
739817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
740817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
741817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
742817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
743817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
744817466cbSJens Wiklander       0 },
745817466cbSJens Wiklander 
746817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
747817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
748817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
749817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
750817466cbSJens Wiklander       0 },
751817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
752817466cbSJens Wiklander 
753817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
754817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
755817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
756817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
757817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
758817466cbSJens Wiklander       0 },
759817466cbSJens Wiklander 
760817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
761817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
762817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
763817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
764817466cbSJens Wiklander       0 },
765817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
766817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
767817466cbSJens Wiklander 
768817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
769817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
770817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
771817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
772817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
773817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
774817466cbSJens Wiklander       0 },
775817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
776817466cbSJens Wiklander 
777817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
778817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
779817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
780817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
781817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
782817466cbSJens Wiklander       0 },
783817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
784817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
785817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
786817466cbSJens Wiklander 
787817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
788817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
789817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
790817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA",
791817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
792817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
793817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
794817466cbSJens Wiklander       0 },
795817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
796817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
797817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
798817466cbSJens Wiklander 
799817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
800817466cbSJens Wiklander #if defined(MBEDTLS_MD5_C)
801817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5",
802817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
803817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
804817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
805817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
806817466cbSJens Wiklander #endif
807817466cbSJens Wiklander 
808817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
809817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA",
810817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
811817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
812817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
813817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
814817466cbSJens Wiklander #endif
815817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
816817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
817817466cbSJens Wiklander 
818817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
819817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
820817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
821817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
822817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
823817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
824817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
825817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
826817466cbSJens Wiklander       0 },
827817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
828817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
829817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
830817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
831817466cbSJens Wiklander       0 },
832817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
833817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
834817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
835817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
836817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
837817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
838817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
839817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
840817466cbSJens Wiklander       0 },
841817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
842817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
843817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
844817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
845817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
846817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
847817466cbSJens Wiklander       0 },
848817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
849817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
850817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
851817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
852817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
853817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
854817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
855817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
856817466cbSJens Wiklander       0 },
857817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
858817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
859817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
860817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
861817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
862817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
863817466cbSJens Wiklander       0 },
864817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
865817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
866817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
867817466cbSJens Wiklander 
868817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
869817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
870817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
871817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
872817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
873817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
874817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
875817466cbSJens Wiklander       0 },
876817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
877817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
878817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
879817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
880817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
881817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
882817466cbSJens Wiklander       0 },
883817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
884817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
885817466cbSJens Wiklander 
886817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
887817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
888817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
889817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
890817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
891817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
892817466cbSJens Wiklander       0 },
893817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
894817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
895817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
896817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
897817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
898817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
899817466cbSJens Wiklander       0 },
900817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
901817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
902817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
903817466cbSJens Wiklander 
904817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
905817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
906817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
907817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA",
908817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
909817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
910817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
911817466cbSJens Wiklander       0 },
912817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
913817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
914817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
915817466cbSJens Wiklander 
916817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
917817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
918817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA",
919817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
920817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
921817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
922817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
923817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
924817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
925817466cbSJens Wiklander 
926817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
927817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
928817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
929817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
930817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
931817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
932817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
933817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
934817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
935817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
936817466cbSJens Wiklander 
937817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
938817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
939817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
940817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
941817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
942817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
943817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
944817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
945817466cbSJens Wiklander       0 },
946817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
947817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
948817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
949817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
950817466cbSJens Wiklander       0 },
951817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
952817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
953817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
954817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
955817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
956817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
957817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
958817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
959817466cbSJens Wiklander       0 },
960817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
961817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
962817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
963817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
964817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
965817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
966817466cbSJens Wiklander       0 },
967817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
968817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
969817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
970817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
971817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
972817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
973817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
974817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
975817466cbSJens Wiklander       0 },
976817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
977817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
978817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
979817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
980817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
981817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
982817466cbSJens Wiklander       0 },
983817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
984817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
985817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
986817466cbSJens Wiklander 
987817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
988817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
989817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
990817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
991817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
992817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
993817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
994817466cbSJens Wiklander       0 },
995817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
996817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
997817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
998817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
999817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1000817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1001817466cbSJens Wiklander       0 },
1002817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1003817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1004817466cbSJens Wiklander 
1005817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1006817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1007817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
1008817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1009817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1010817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1011817466cbSJens Wiklander       0 },
1012817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1013817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1014817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
1015817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1016817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1017817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1018817466cbSJens Wiklander       0 },
1019817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1020817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1021817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
1022817466cbSJens Wiklander 
1023817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1024817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1025817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1026817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA",
1027817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1028817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1029817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1030817466cbSJens Wiklander       0 },
1031817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1032817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1033817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1034817466cbSJens Wiklander 
1035817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
1036817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1037817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA",
1038817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1039817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1040817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1041817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
1042817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1043817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
1044817466cbSJens Wiklander 
1045817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1046817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1047817466cbSJens Wiklander     { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
1048817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
1049817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1050817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1051817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1052817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1053817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1054817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1055817466cbSJens Wiklander 
1056817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1057817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
1058817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1059817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1060817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
1061817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1062817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1063817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1064817466cbSJens Wiklander       0 },
1065817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1066817466cbSJens Wiklander 
1067817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1068817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
1069817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1070817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1071817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1072817466cbSJens Wiklander       0 },
1073817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1074817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1075817466cbSJens Wiklander 
1076817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1077817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1078817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1079817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1080817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1081817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1082817466cbSJens Wiklander       0 },
1083817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1084817466cbSJens Wiklander 
1085817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1086817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1087817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1088817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1089817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1090817466cbSJens Wiklander       0 },
1091817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1092817466cbSJens Wiklander 
1093817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1094817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1095817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1096817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1097817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1098817466cbSJens Wiklander       0 },
1099817466cbSJens Wiklander 
1100817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1101817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1102817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1103817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1104817466cbSJens Wiklander       0 },
1105817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1106817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1107817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
1108817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1109817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1110817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1111817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1112817466cbSJens Wiklander       0 },
1113817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1114817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1115817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1116817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1117817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
1118817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1119817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1120817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1121817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1122817466cbSJens Wiklander       0 },
1123817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1124817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1125817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1126817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1127817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
1128817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
1129817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
1130817466cbSJens Wiklander 
1131817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
1132817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1133817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1134817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1135817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1136817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1137817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1138817466cbSJens Wiklander       0 },
1139817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1140817466cbSJens Wiklander 
1141817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1142817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1143817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1144817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1145817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1146817466cbSJens Wiklander       0 },
1147817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1148817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1149817466cbSJens Wiklander 
1150817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1151817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1152817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1153817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1154817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1155817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1156817466cbSJens Wiklander       0 },
1157817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1158817466cbSJens Wiklander 
1159817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1160817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1161817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1162817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1163817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1164817466cbSJens Wiklander       0 },
1165817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1166817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1167817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
1168817466cbSJens Wiklander 
1169817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1170817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1171817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1172817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA",
1173817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1174817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1175817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1176817466cbSJens Wiklander       0 },
1177817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1178817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1179817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1180817466cbSJens Wiklander 
1181817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
1182817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1183817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA",
1184817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1185817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1186817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1187817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
1188817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1189817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
1190817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1191817466cbSJens Wiklander 
1192817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1193817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
1194817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1195817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1196817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1197817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1198817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1199817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1200817466cbSJens Wiklander       0 },
1201817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1202817466cbSJens Wiklander 
1203817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1204817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1205817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1206817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1207817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1208817466cbSJens Wiklander       0 },
1209817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1210817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1211817466cbSJens Wiklander 
1212817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1213817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1214817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1215817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1216817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1217817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1218817466cbSJens Wiklander       0 },
1219817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1220817466cbSJens Wiklander 
1221817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1222817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1223817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1224817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1225817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1226817466cbSJens Wiklander       0 },
1227817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1228817466cbSJens Wiklander 
1229817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1230817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1231817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1232817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1233817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1234817466cbSJens Wiklander       0 },
1235817466cbSJens Wiklander 
1236817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1237817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1238817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1239817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1240817466cbSJens Wiklander       0 },
1241817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1242817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1243817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
1244817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1245817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1246817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1247817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1248817466cbSJens Wiklander       0 },
1249817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1250817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1251817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1252817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1253817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
1254817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1255817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1256817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1257817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1258817466cbSJens Wiklander       0 },
1259817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1260817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1261817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1262817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1263817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
1264817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
1265817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
1266817466cbSJens Wiklander 
1267817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
1268817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1269817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1270817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1271817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1272817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1273817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1274817466cbSJens Wiklander       0 },
1275817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1276817466cbSJens Wiklander 
1277817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1278817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1279817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1280817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1281817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1282817466cbSJens Wiklander       0 },
1283817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1284817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1285817466cbSJens Wiklander 
1286817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1287817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1288817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1289817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1290817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1291817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1292817466cbSJens Wiklander       0 },
1293817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1294817466cbSJens Wiklander 
1295817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1296817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1297817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1298817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1299817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1300817466cbSJens Wiklander       0 },
1301817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1302817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1303817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
1304817466cbSJens Wiklander 
1305817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1306817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1307817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1308817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA",
1309817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1310817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1311817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1312817466cbSJens Wiklander       0 },
1313817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1314817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1315817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1316817466cbSJens Wiklander 
1317817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
1318817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1319817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA",
1320817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1321817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1322817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1323817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
1324817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1325817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
1326817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1327817466cbSJens Wiklander 
1328817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1329817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
1330817466cbSJens Wiklander 
1331817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1332817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1333817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1334817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1335817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1336817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1337817466cbSJens Wiklander       0 },
1338817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1339817466cbSJens Wiklander 
1340817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1341817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1342817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1343817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1344817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1345817466cbSJens Wiklander       0 },
1346817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1347817466cbSJens Wiklander 
1348817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1349817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1350817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1351817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1352817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1353817466cbSJens Wiklander       0 },
1354817466cbSJens Wiklander 
1355817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1356817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1357817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1358817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1359817466cbSJens Wiklander       0 },
1360817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1361817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1362817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
1363817466cbSJens Wiklander 
1364817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
1365817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1366817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1367817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1368817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1369817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1370817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1371817466cbSJens Wiklander       0 },
1372817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1373817466cbSJens Wiklander 
1374817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1375817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1376817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1377817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1378817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1379817466cbSJens Wiklander       0 },
1380817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1381817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1382817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
1383817466cbSJens Wiklander 
1384817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1385817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1386817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1387817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA",
1388817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1389817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1390817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1391817466cbSJens Wiklander       0 },
1392817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1393817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1394817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1395817466cbSJens Wiklander 
1396817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
1397817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1398817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA",
1399817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1400817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1401817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1402817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
1403817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1404817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
1405817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1406817466cbSJens Wiklander 
1407817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1408817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
1409817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1410817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1411817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1412817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1413817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1414817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1415817466cbSJens Wiklander       0 },
1416817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1417817466cbSJens Wiklander 
1418817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1419817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1420817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1421817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1422817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1423817466cbSJens Wiklander       0 },
1424817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1425817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1426817466cbSJens Wiklander 
1427817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1428817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1429817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1430817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1431817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1432817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1433817466cbSJens Wiklander       0 },
1434817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1435817466cbSJens Wiklander 
1436817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1437817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1438817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1439817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1440817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1441817466cbSJens Wiklander       0 },
1442817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1443817466cbSJens Wiklander 
1444817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1445817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1446817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1447817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1448817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1449817466cbSJens Wiklander       0 },
1450817466cbSJens Wiklander 
1451817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1452817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1453817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1454817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1455817466cbSJens Wiklander       0 },
1456817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1457817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1458817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
1459817466cbSJens Wiklander 
1460817466cbSJens Wiklander #if defined(MBEDTLS_CAMELLIA_C)
1461817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1462817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1463817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1464817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1465817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1466817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1467817466cbSJens Wiklander       0 },
1468817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1469817466cbSJens Wiklander 
1470817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1471817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1472817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1473817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1474817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1475817466cbSJens Wiklander       0 },
1476817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1477817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1478817466cbSJens Wiklander 
1479817466cbSJens Wiklander #if defined(MBEDTLS_GCM_C)
1480817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1481817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1482817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1483817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1484817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1485817466cbSJens Wiklander       0 },
1486817466cbSJens Wiklander #endif /* MBEDTLS_SHA256_C */
1487817466cbSJens Wiklander 
1488817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1489817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1490817466cbSJens Wiklander       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1491817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1492817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1493817466cbSJens Wiklander       0 },
1494817466cbSJens Wiklander #endif /* MBEDTLS_SHA512_C */
1495817466cbSJens Wiklander #endif /* MBEDTLS_GCM_C */
1496817466cbSJens Wiklander #endif /* MBEDTLS_CAMELLIA_C */
1497817466cbSJens Wiklander 
1498817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1499817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1500817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1501817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA",
1502817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1503817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1504817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1505817466cbSJens Wiklander       0 },
1506817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1507817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1508817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1509817466cbSJens Wiklander 
1510817466cbSJens Wiklander #if defined(MBEDTLS_ARC4_C)
1511817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1512817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA",
1513817466cbSJens Wiklander       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1514817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1515817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1516817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_NODTLS },
1517817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1518817466cbSJens Wiklander #endif /* MBEDTLS_ARC4_C */
1519817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1520817466cbSJens Wiklander 
1521817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
1522817466cbSJens Wiklander #if defined(MBEDTLS_AES_C)
1523817466cbSJens Wiklander #if defined(MBEDTLS_CCM_C)
1524817466cbSJens Wiklander     { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
1525817466cbSJens Wiklander       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
1526817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1527817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1528817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_SHORT_TAG },
1529817466cbSJens Wiklander #endif /* MBEDTLS_CCM_C */
1530817466cbSJens Wiklander #endif /* MBEDTLS_AES_C */
1531817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
1532817466cbSJens Wiklander 
1533817466cbSJens Wiklander #if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
1534817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1535817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1536817466cbSJens Wiklander #if defined(MBEDTLS_MD5_C)
1537817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1538817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
1539817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1540817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1541817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1542817466cbSJens Wiklander #endif
1543817466cbSJens Wiklander 
1544817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1545817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1546817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
1547817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1548817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1549817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1550817466cbSJens Wiklander #endif
1551817466cbSJens Wiklander 
1552817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1553817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1554817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
1555817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1556817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1557817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1558817466cbSJens Wiklander #endif
1559817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1560817466cbSJens Wiklander 
1561817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1562817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1563817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1564817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
1565817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1566817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1567817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1568817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1569817466cbSJens Wiklander 
1570817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1571817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1572817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
1573817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1574817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1575817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1576817466cbSJens Wiklander #endif
1577817466cbSJens Wiklander 
1578817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1579817466cbSJens Wiklander     { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1580817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1581817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1582817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1583817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1584817466cbSJens Wiklander #endif
1585817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1586817466cbSJens Wiklander 
1587817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1588817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1589817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1590817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1591817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1592817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1593817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1594817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1595817466cbSJens Wiklander 
1596817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1597817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1598817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1599817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1600817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1601817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1602817466cbSJens Wiklander #endif
1603817466cbSJens Wiklander 
1604817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1605817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1606817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
1607817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1608817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1609817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1610817466cbSJens Wiklander #endif
1611817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1612817466cbSJens Wiklander 
1613817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1614817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1615817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1616817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1617817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1618817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1619817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1620817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1621817466cbSJens Wiklander 
1622817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1623817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1624817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1625817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1626817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1627817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1628817466cbSJens Wiklander #endif
1629817466cbSJens Wiklander 
1630817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1631817466cbSJens Wiklander     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1632817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
1633817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1634817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1635817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1636817466cbSJens Wiklander #endif
1637817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1638817466cbSJens Wiklander 
1639817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1640817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1641817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1642817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1643817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1644817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1645817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1646817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1647817466cbSJens Wiklander 
1648817466cbSJens Wiklander #if defined(MBEDTLS_SHA256_C)
1649817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
1650817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1651817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1652817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1653817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1654817466cbSJens Wiklander #endif
1655817466cbSJens Wiklander 
1656817466cbSJens Wiklander #if defined(MBEDTLS_SHA512_C)
1657817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
1658817466cbSJens Wiklander       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
1659817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
1660817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1661817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1662817466cbSJens Wiklander #endif
1663817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1664817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1665817466cbSJens Wiklander 
1666817466cbSJens Wiklander #if defined(MBEDTLS_DES_C)
1667817466cbSJens Wiklander #if defined(MBEDTLS_CIPHER_MODE_CBC)
1668817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
1669817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1670817466cbSJens Wiklander     { MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA",
1671817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
1672817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1673817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1674817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1675817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1676817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
1677817466cbSJens Wiklander 
1678817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1679817466cbSJens Wiklander #if defined(MBEDTLS_SHA1_C)
1680817466cbSJens Wiklander     { MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA",
1681817466cbSJens Wiklander       MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
1682817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
1683817466cbSJens Wiklander       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
1684817466cbSJens Wiklander       MBEDTLS_CIPHERSUITE_WEAK },
1685817466cbSJens Wiklander #endif /* MBEDTLS_SHA1_C */
1686817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1687817466cbSJens Wiklander #endif /* MBEDTLS_CIPHER_MODE_CBC */
1688817466cbSJens Wiklander #endif /* MBEDTLS_DES_C */
1689817466cbSJens Wiklander #endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
1690817466cbSJens Wiklander 
1691817466cbSJens Wiklander     { 0, "",
1692817466cbSJens Wiklander       MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE,
1693817466cbSJens Wiklander       0, 0, 0, 0, 0 }
1694817466cbSJens Wiklander };
1695817466cbSJens Wiklander 
1696817466cbSJens Wiklander #if defined(MBEDTLS_SSL_CIPHERSUITES)
1697817466cbSJens Wiklander const int *mbedtls_ssl_list_ciphersuites( void )
1698817466cbSJens Wiklander {
1699817466cbSJens Wiklander     return( ciphersuite_preference );
1700817466cbSJens Wiklander }
1701817466cbSJens Wiklander #else
1702817466cbSJens Wiklander #define MAX_CIPHERSUITES    sizeof( ciphersuite_definitions     ) /         \
1703817466cbSJens Wiklander                             sizeof( ciphersuite_definitions[0]  )
1704817466cbSJens Wiklander static int supported_ciphersuites[MAX_CIPHERSUITES];
1705817466cbSJens Wiklander static int supported_init = 0;
1706817466cbSJens Wiklander 
1707817466cbSJens Wiklander const int *mbedtls_ssl_list_ciphersuites( void )
1708817466cbSJens Wiklander {
1709817466cbSJens Wiklander     /*
1710817466cbSJens Wiklander      * On initial call filter out all ciphersuites not supported by current
1711817466cbSJens Wiklander      * build based on presence in the ciphersuite_definitions.
1712817466cbSJens Wiklander      */
1713817466cbSJens Wiklander     if( supported_init == 0 )
1714817466cbSJens Wiklander     {
1715817466cbSJens Wiklander         const int *p;
1716817466cbSJens Wiklander         int *q;
1717817466cbSJens Wiklander 
1718817466cbSJens Wiklander         for( p = ciphersuite_preference, q = supported_ciphersuites;
1719817466cbSJens Wiklander              *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
1720817466cbSJens Wiklander              p++ )
1721817466cbSJens Wiklander         {
1722817466cbSJens Wiklander #if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
1723817466cbSJens Wiklander             const mbedtls_ssl_ciphersuite_t *cs_info;
1724817466cbSJens Wiklander             if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
1725817466cbSJens Wiklander                 cs_info->cipher != MBEDTLS_CIPHER_ARC4_128 )
1726817466cbSJens Wiklander #else
1727817466cbSJens Wiklander             if( mbedtls_ssl_ciphersuite_from_id( *p ) != NULL )
1728817466cbSJens Wiklander #endif
1729817466cbSJens Wiklander                 *(q++) = *p;
1730817466cbSJens Wiklander         }
1731817466cbSJens Wiklander         *q = 0;
1732817466cbSJens Wiklander 
1733817466cbSJens Wiklander         supported_init = 1;
1734817466cbSJens Wiklander     }
1735817466cbSJens Wiklander 
1736817466cbSJens Wiklander     return( supported_ciphersuites );
1737817466cbSJens Wiklander }
1738817466cbSJens Wiklander #endif /* MBEDTLS_SSL_CIPHERSUITES */
1739817466cbSJens Wiklander 
1740817466cbSJens Wiklander const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(
1741817466cbSJens Wiklander                                                 const char *ciphersuite_name )
1742817466cbSJens Wiklander {
1743817466cbSJens Wiklander     const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1744817466cbSJens Wiklander 
1745817466cbSJens Wiklander     if( NULL == ciphersuite_name )
1746817466cbSJens Wiklander         return( NULL );
1747817466cbSJens Wiklander 
1748817466cbSJens Wiklander     while( cur->id != 0 )
1749817466cbSJens Wiklander     {
1750817466cbSJens Wiklander         if( 0 == strcmp( cur->name, ciphersuite_name ) )
1751817466cbSJens Wiklander             return( cur );
1752817466cbSJens Wiklander 
1753817466cbSJens Wiklander         cur++;
1754817466cbSJens Wiklander     }
1755817466cbSJens Wiklander 
1756817466cbSJens Wiklander     return( NULL );
1757817466cbSJens Wiklander }
1758817466cbSJens Wiklander 
1759817466cbSJens Wiklander const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite )
1760817466cbSJens Wiklander {
1761817466cbSJens Wiklander     const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1762817466cbSJens Wiklander 
1763817466cbSJens Wiklander     while( cur->id != 0 )
1764817466cbSJens Wiklander     {
1765817466cbSJens Wiklander         if( cur->id == ciphersuite )
1766817466cbSJens Wiklander             return( cur );
1767817466cbSJens Wiklander 
1768817466cbSJens Wiklander         cur++;
1769817466cbSJens Wiklander     }
1770817466cbSJens Wiklander 
1771817466cbSJens Wiklander     return( NULL );
1772817466cbSJens Wiklander }
1773817466cbSJens Wiklander 
1774817466cbSJens Wiklander const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id )
1775817466cbSJens Wiklander {
1776817466cbSJens Wiklander     const mbedtls_ssl_ciphersuite_t *cur;
1777817466cbSJens Wiklander 
1778817466cbSJens Wiklander     cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id );
1779817466cbSJens Wiklander 
1780817466cbSJens Wiklander     if( cur == NULL )
1781817466cbSJens Wiklander         return( "unknown" );
1782817466cbSJens Wiklander 
1783817466cbSJens Wiklander     return( cur->name );
1784817466cbSJens Wiklander }
1785817466cbSJens Wiklander 
1786817466cbSJens Wiklander int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name )
1787817466cbSJens Wiklander {
1788817466cbSJens Wiklander     const mbedtls_ssl_ciphersuite_t *cur;
1789817466cbSJens Wiklander 
1790817466cbSJens Wiklander     cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name );
1791817466cbSJens Wiklander 
1792817466cbSJens Wiklander     if( cur == NULL )
1793817466cbSJens Wiklander         return( 0 );
1794817466cbSJens Wiklander 
1795817466cbSJens Wiklander     return( cur->id );
1796817466cbSJens Wiklander }
1797817466cbSJens Wiklander 
1798817466cbSJens Wiklander #if defined(MBEDTLS_PK_C)
1799817466cbSJens Wiklander mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info )
1800817466cbSJens Wiklander {
1801817466cbSJens Wiklander     switch( info->key_exchange )
1802817466cbSJens Wiklander     {
1803817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_RSA:
1804817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1805817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1806817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1807817466cbSJens Wiklander             return( MBEDTLS_PK_RSA );
1808817466cbSJens Wiklander 
1809817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1810817466cbSJens Wiklander             return( MBEDTLS_PK_ECDSA );
1811817466cbSJens Wiklander 
1812817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1813817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1814817466cbSJens Wiklander             return( MBEDTLS_PK_ECKEY );
1815817466cbSJens Wiklander 
1816817466cbSJens Wiklander         default:
1817817466cbSJens Wiklander             return( MBEDTLS_PK_NONE );
1818817466cbSJens Wiklander     }
1819817466cbSJens Wiklander }
1820817466cbSJens Wiklander 
1821817466cbSJens Wiklander mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphersuite_t *info )
1822817466cbSJens Wiklander {
1823817466cbSJens Wiklander     switch( info->key_exchange )
1824817466cbSJens Wiklander     {
1825817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_RSA:
1826817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1827817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1828817466cbSJens Wiklander             return( MBEDTLS_PK_RSA );
1829817466cbSJens Wiklander 
1830817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1831817466cbSJens Wiklander             return( MBEDTLS_PK_ECDSA );
1832817466cbSJens Wiklander 
1833817466cbSJens Wiklander         default:
1834817466cbSJens Wiklander             return( MBEDTLS_PK_NONE );
1835817466cbSJens Wiklander     }
1836817466cbSJens Wiklander }
1837817466cbSJens Wiklander 
1838817466cbSJens Wiklander #endif /* MBEDTLS_PK_C */
1839817466cbSJens Wiklander 
1840817466cbSJens Wiklander #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C)
1841817466cbSJens Wiklander int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info )
1842817466cbSJens Wiklander {
1843817466cbSJens Wiklander     switch( info->key_exchange )
1844817466cbSJens Wiklander     {
1845817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1846817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1847817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
1848817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1849817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1850817466cbSJens Wiklander             return( 1 );
1851817466cbSJens Wiklander 
1852817466cbSJens Wiklander         default:
1853817466cbSJens Wiklander             return( 0 );
1854817466cbSJens Wiklander     }
1855817466cbSJens Wiklander }
1856817466cbSJens Wiklander #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C */
1857817466cbSJens Wiklander 
1858817466cbSJens Wiklander #if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
1859817466cbSJens Wiklander int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info )
1860817466cbSJens Wiklander {
1861817466cbSJens Wiklander     switch( info->key_exchange )
1862817466cbSJens Wiklander     {
1863817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_PSK:
1864817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1865817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
1866817466cbSJens Wiklander         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
1867817466cbSJens Wiklander             return( 1 );
1868817466cbSJens Wiklander 
1869817466cbSJens Wiklander         default:
1870817466cbSJens Wiklander             return( 0 );
1871817466cbSJens Wiklander     }
1872817466cbSJens Wiklander }
1873817466cbSJens Wiklander #endif /* MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED */
1874817466cbSJens Wiklander 
1875817466cbSJens Wiklander #endif /* MBEDTLS_SSL_TLS_C */
1876