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