blob: 23619a26c88f6d9cf25144a7e1e5c63b63b86f42 [file] [log] [blame]
Jens Wiklander817466c2018-05-22 13:49:31 +02001/**
2 * \file ssl_ciphersuites.c
3 *
Tom Van Eyckc1633172024-04-09 18:44:13 +02004 * \brief SSL ciphersuites for Mbed TLS
Jens Wiklander817466c2018-05-22 13:49:31 +02005 *
Jerome Forissier79013242021-07-28 10:24:04 +02006 * Copyright The Mbed TLS Contributors
Tom Van Eyckc1633172024-04-09 18:44:13 +02007 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
Jens Wiklander817466c2018-05-22 13:49:31 +02008 */
9
Jerome Forissier79013242021-07-28 10:24:04 +020010#include "common.h"
Jens Wiklander817466c2018-05-22 13:49:31 +020011
12#if defined(MBEDTLS_SSL_TLS_C)
13
Jens Wiklander817466c2018-05-22 13:49:31 +020014#include "mbedtls/platform.h"
Jens Wiklander817466c2018-05-22 13:49:31 +020015
16#include "mbedtls/ssl_ciphersuites.h"
17#include "mbedtls/ssl.h"
Jens Wiklander32b31802023-10-06 16:59:46 +020018#include "ssl_misc.h"
Tom Van Eyckc1633172024-04-09 18:44:13 +020019#if defined(MBEDTLS_USE_PSA_CRYPTO)
20#include "mbedtls/psa_util.h"
21#endif
Jens Wiklander817466c2018-05-22 13:49:31 +020022
23#include <string.h>
24
25/*
26 * Ordered from most preferred to least preferred in terms of security.
27 *
Jens Wiklander32b31802023-10-06 16:59:46 +020028 * Current rule (except weak and null which come last):
Jens Wiklander817466c2018-05-22 13:49:31 +020029 * 1. By key exchange:
30 * Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
31 * 2. By key length and cipher:
Jerome Forissier5b25c762020-04-07 11:18:49 +020032 * ChaCha > AES-256 > Camellia-256 > ARIA-256 > AES-128 > Camellia-128 > ARIA-128
Jens Wiklander817466c2018-05-22 13:49:31 +020033 * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
34 * 4. By hash function used when relevant
35 * 5. By key exchange/auth again: EC > non-EC
36 */
37static const int ciphersuite_preference[] =
38{
39#if defined(MBEDTLS_SSL_CIPHERSUITES)
40 MBEDTLS_SSL_CIPHERSUITES,
41#else
Jens Wiklander32b31802023-10-06 16:59:46 +020042#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
43 /* TLS 1.3 ciphersuites */
44 MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
45 MBEDTLS_TLS1_3_AES_256_GCM_SHA384,
46 MBEDTLS_TLS1_3_AES_128_GCM_SHA256,
47 MBEDTLS_TLS1_3_AES_128_CCM_SHA256,
48 MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256,
49#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
50
Jens Wiklander3d3b0592019-03-20 15:30:29 +010051 /* Chacha-Poly ephemeral suites */
52 MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
53 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
54 MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
55
Jens Wiklander817466c2018-05-22 13:49:31 +020056 /* All AES-256 ephemeral suites */
57 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
58 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
59 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
60 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
61 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
62 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
63 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
64 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
65 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
66 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
67 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
68 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
69 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,
70
71 /* All CAMELLIA-256 ephemeral suites */
72 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
73 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
74 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
75 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
76 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
77 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
78 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
79
Jens Wiklander3d3b0592019-03-20 15:30:29 +010080 /* All ARIA-256 ephemeral suites */
81 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
82 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
83 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
84 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
85 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
86 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
87
Jens Wiklander817466c2018-05-22 13:49:31 +020088 /* All AES-128 ephemeral suites */
89 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
90 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
91 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
92 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
93 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
94 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
95 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
96 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
97 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
98 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
99 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
100 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
101 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,
102
103 /* All CAMELLIA-128 ephemeral suites */
104 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
105 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
106 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
107 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
108 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
109 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
110 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
111
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100112 /* All ARIA-128 ephemeral suites */
113 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
114 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
115 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
116 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
117 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
118 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
119
Jens Wiklander817466c2018-05-22 13:49:31 +0200120 /* The PSK ephemeral suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100121 MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
122 MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200123 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
124 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
125 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
126 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
127 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
128 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
129 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
130 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
131 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
132 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100133 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
134 MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
135 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200136
137 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
138 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
139 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
140 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
141 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
142 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
143 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
144 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
145 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
146 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100147 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
148 MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
149 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200150
Jens Wiklander817466c2018-05-22 13:49:31 +0200151 /* The ECJPAKE suite */
152 MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
153
154 /* All AES-256 suites */
155 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
156 MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
157 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
158 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
159 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
160 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
161 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
162 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
163 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
164 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
165 MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
166
167 /* All CAMELLIA-256 suites */
168 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
169 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
170 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
171 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
172 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
173 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
174 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
175
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100176 /* All ARIA-256 suites */
177 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
178 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
179 MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
180 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
181 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
182 MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
183
Jens Wiklander817466c2018-05-22 13:49:31 +0200184 /* All AES-128 suites */
185 MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
186 MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
187 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
188 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
189 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
190 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
191 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
192 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
193 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
194 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
195 MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
196
197 /* All CAMELLIA-128 suites */
198 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
199 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
200 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
201 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
202 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
203 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
204 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
205
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100206 /* All ARIA-128 suites */
207 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
208 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
209 MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
210 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
211 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
212 MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
213
Jens Wiklander817466c2018-05-22 13:49:31 +0200214 /* The RSA PSK suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100215 MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200216 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
217 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
218 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
219 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
220 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100221 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
222 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200223
224 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
225 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
226 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
227 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
228 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100229 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
230 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200231
Jens Wiklander817466c2018-05-22 13:49:31 +0200232 /* The PSK suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100233 MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200234 MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
235 MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
236 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384,
237 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA,
238 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
239 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
240 MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100241 MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
242 MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200243
244 MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256,
245 MBEDTLS_TLS_PSK_WITH_AES_128_CCM,
246 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256,
247 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA,
248 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
249 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
250 MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100251 MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
252 MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200253
Jens Wiklander817466c2018-05-22 13:49:31 +0200254 /* NULL suites */
255 MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
256 MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA,
257 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
258 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
259 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
260 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
261 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
262 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
263
264 MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
265 MBEDTLS_TLS_RSA_WITH_NULL_SHA,
266 MBEDTLS_TLS_RSA_WITH_NULL_MD5,
267 MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
268 MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
269 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
270 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
271 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
272 MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
273 MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
274 MBEDTLS_TLS_PSK_WITH_NULL_SHA,
275
276#endif /* MBEDTLS_SSL_CIPHERSUITES */
277 0
278};
279
280static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
281{
Jens Wiklander32b31802023-10-06 16:59:46 +0200282#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200283#if defined(MBEDTLS_SSL_HAVE_AES)
284#if defined(MBEDTLS_SSL_HAVE_GCM)
285#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200286 { MBEDTLS_TLS1_3_AES_256_GCM_SHA384, "TLS1-3-AES-256-GCM-SHA384",
287 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384,
288 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
289 0,
290 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200291#endif /* MBEDTLS_MD_CAN_SHA384 */
292#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200293 { MBEDTLS_TLS1_3_AES_128_GCM_SHA256, "TLS1-3-AES-128-GCM-SHA256",
294 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256,
295 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
296 0,
297 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200298#endif /* MBEDTLS_MD_CAN_SHA256 */
299#endif /* MBEDTLS_SSL_HAVE_GCM */
300#if defined(MBEDTLS_SSL_HAVE_CCM) && defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200301 { MBEDTLS_TLS1_3_AES_128_CCM_SHA256, "TLS1-3-AES-128-CCM-SHA256",
302 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
303 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
304 0,
305 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
306 { MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256, "TLS1-3-AES-128-CCM-8-SHA256",
307 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
308 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
309 MBEDTLS_CIPHERSUITE_SHORT_TAG,
310 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200311#endif /* MBEDTLS_MD_CAN_SHA256 && MBEDTLS_SSL_HAVE_CCM */
312#endif /* MBEDTLS_SSL_HAVE_AES */
313#if defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) && defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200314 { MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
315 "TLS1-3-CHACHA20-POLY1305-SHA256",
316 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
317 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
318 0,
319 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200320#endif /* MBEDTLS_SSL_HAVE_CHACHAPOLY && MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander32b31802023-10-06 16:59:46 +0200321#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
322
Tom Van Eyckc1633172024-04-09 18:44:13 +0200323#if defined(MBEDTLS_SSL_HAVE_CHACHAPOLY) && \
324 defined(MBEDTLS_MD_CAN_SHA256) && \
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100325 defined(MBEDTLS_SSL_PROTO_TLS1_2)
326#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
327 { MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
328 "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
329 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
330 MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200331 0,
332 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100333#endif
334#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
335 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
336 "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256",
337 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
338 MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200339 0,
340 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100341#endif
342#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
343 { MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
344 "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
345 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
346 MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200347 0,
348 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100349#endif
350#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
351 { MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
352 "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256",
353 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
354 MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200355 0,
356 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100357#endif
358#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
359 { MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
360 "TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
361 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
362 MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200363 0,
364 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100365#endif
366#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
367 { MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
368 "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
369 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
370 MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200371 0,
372 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100373#endif
374#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
375 { MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
376 "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256",
377 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
378 MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200379 0,
380 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100381#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +0200382#endif /* MBEDTLS_SSL_HAVE_CHACHAPOLY &&
383 MBEDTLS_MD_CAN_SHA256 &&
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100384 MBEDTLS_SSL_PROTO_TLS1_2 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200385#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200386#if defined(MBEDTLS_SSL_HAVE_AES)
387#if defined(MBEDTLS_MD_CAN_SHA1)
388#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200389 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
390 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200391 0,
392 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200393 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
394 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200395 0,
396 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200397#endif /* MBEDTLS_SSL_HAVE_CBC */
398#endif /* MBEDTLS_MD_CAN_SHA1 */
399#if defined(MBEDTLS_MD_CAN_SHA256)
400#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200401 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
402 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200403 0,
404 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200405#endif /* MBEDTLS_SSL_HAVE_CBC */
406#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200407 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
408 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200409 0,
410 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200411#endif /* MBEDTLS_SSL_HAVE_GCM */
412#endif /* MBEDTLS_MD_CAN_SHA256 */
413#if defined(MBEDTLS_MD_CAN_SHA384)
414#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200415 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
416 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200417 0,
418 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200419#endif /* MBEDTLS_SSL_HAVE_CBC */
420#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200421 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
422 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200423 0,
424 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200425#endif /* MBEDTLS_SSL_HAVE_GCM */
426#endif /* MBEDTLS_MD_CAN_SHA384 */
427#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200428 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
429 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200430 0,
431 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200432 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
433 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200434 MBEDTLS_CIPHERSUITE_SHORT_TAG,
435 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200436 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
437 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200438 0,
439 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200440 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
441 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200442 MBEDTLS_CIPHERSUITE_SHORT_TAG,
443 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200444#endif /* MBEDTLS_SSL_HAVE_CCM */
445#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200446
Tom Van Eyckc1633172024-04-09 18:44:13 +0200447#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
448#if defined(MBEDTLS_SSL_HAVE_CBC)
449#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200450 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
451 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200452 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200453 0,
454 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200455#endif /* MBEDTLS_MD_CAN_SHA256 */
456#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200457 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
458 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200459 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200460 0,
461 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200462#endif /* MBEDTLS_MD_CAN_SHA384 */
463#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +0200464
Tom Van Eyckc1633172024-04-09 18:44:13 +0200465#if defined(MBEDTLS_SSL_HAVE_GCM)
466#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200467 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
468 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200469 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200470 0,
471 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200472#endif /* MBEDTLS_MD_CAN_SHA256 */
473#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200474 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
475 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200476 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200477 0,
478 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200479#endif /* MBEDTLS_MD_CAN_SHA384 */
480#endif /* MBEDTLS_SSL_HAVE_GCM */
481#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200482
Jens Wiklander817466c2018-05-22 13:49:31 +0200483#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200484#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200485 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
486 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200487 MBEDTLS_CIPHERSUITE_WEAK,
488 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200489#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200490#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
491#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
492
493#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200494#if defined(MBEDTLS_SSL_HAVE_AES)
495#if defined(MBEDTLS_MD_CAN_SHA1)
496#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200497 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
498 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200499 0,
500 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200501 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
502 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200503 0,
504 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200505#endif /* MBEDTLS_SSL_HAVE_CBC */
506#endif /* MBEDTLS_MD_CAN_SHA1 */
507#if defined(MBEDTLS_MD_CAN_SHA256)
508#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200509 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
510 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200511 0,
512 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200513#endif /* MBEDTLS_SSL_HAVE_CBC */
514#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200515 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
516 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200517 0,
518 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200519#endif /* MBEDTLS_SSL_HAVE_GCM */
520#endif /* MBEDTLS_MD_CAN_SHA256 */
521#if defined(MBEDTLS_MD_CAN_SHA384)
522#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200523 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
524 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200525 0,
526 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200527#endif /* MBEDTLS_SSL_HAVE_CBC */
528#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200529 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
530 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200531 0,
532 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200533#endif /* MBEDTLS_SSL_HAVE_GCM */
534#endif /* MBEDTLS_MD_CAN_SHA384 */
535#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200536
Tom Van Eyckc1633172024-04-09 18:44:13 +0200537#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
538#if defined(MBEDTLS_SSL_HAVE_CBC)
539#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200540 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
541 "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200542 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200543 0,
544 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200545#endif /* MBEDTLS_MD_CAN_SHA256 */
546#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200547 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
548 "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200549 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200550 0,
551 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200552#endif /* MBEDTLS_MD_CAN_SHA384 */
553#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +0200554
Tom Van Eyckc1633172024-04-09 18:44:13 +0200555#if defined(MBEDTLS_SSL_HAVE_GCM)
556#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200557 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
558 "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200559 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200560 0,
561 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200562#endif /* MBEDTLS_MD_CAN_SHA256 */
563#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200564 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
565 "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200566 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200567 0,
568 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200569#endif /* MBEDTLS_MD_CAN_SHA384 */
570#endif /* MBEDTLS_SSL_HAVE_GCM */
571#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200572
Jens Wiklander817466c2018-05-22 13:49:31 +0200573#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200574#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200575 { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
576 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200577 MBEDTLS_CIPHERSUITE_WEAK,
578 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200579#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200580#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
581#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
582
583#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200584#if defined(MBEDTLS_SSL_HAVE_AES)
585#if defined(MBEDTLS_MD_CAN_SHA384) && \
586 defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200587 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
588 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200589 0,
590 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200591#endif /* MBEDTLS_MD_CAN_SHA384 && MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +0200592
Tom Van Eyckc1633172024-04-09 18:44:13 +0200593#if defined(MBEDTLS_MD_CAN_SHA256)
594#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200595 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
596 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200597 0,
598 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200599#endif /* MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +0200600
Tom Van Eyckc1633172024-04-09 18:44:13 +0200601#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200602 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
603 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200604 0,
605 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200606
607 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
608 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200609 0,
610 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200611#endif /* MBEDTLS_SSL_HAVE_CBC */
612#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200613
Tom Van Eyckc1633172024-04-09 18:44:13 +0200614#if defined(MBEDTLS_SSL_HAVE_CBC)
615#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200616 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
617 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200618 0,
619 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200620
621 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
622 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200623 0,
624 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200625#endif /* MBEDTLS_MD_CAN_SHA1 */
626#endif /* MBEDTLS_SSL_HAVE_CBC */
627#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200628 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
629 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200630 0,
631 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200632 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
633 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200634 MBEDTLS_CIPHERSUITE_SHORT_TAG,
635 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200636 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
637 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200638 0,
639 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200640 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
641 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200642 MBEDTLS_CIPHERSUITE_SHORT_TAG,
643 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200644#endif /* MBEDTLS_SSL_HAVE_CCM */
645#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200646
Tom Van Eyckc1633172024-04-09 18:44:13 +0200647#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
648#if defined(MBEDTLS_SSL_HAVE_CBC)
649#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +0200650 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
651 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200652 0,
653 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200654
655 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
656 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200657 0,
658 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200659#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200660
Tom Van Eyckc1633172024-04-09 18:44:13 +0200661#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200662 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
663 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200664 0,
665 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200666
667 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
668 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200669 0,
670 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200671#endif /* MBEDTLS_MD_CAN_SHA1 */
672#endif /* MBEDTLS_SSL_HAVE_CBC */
673#if defined(MBEDTLS_SSL_HAVE_GCM)
674#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +0200675 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
676 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200677 0,
678 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200679#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200680
Tom Van Eyckc1633172024-04-09 18:44:13 +0200681#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +0200682 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
683 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200684 0,
685 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200686#endif /* MBEDTLS_MD_CAN_SHA384 */
687#endif /* MBEDTLS_SSL_HAVE_GCM */
688#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200689
Jens Wiklander817466c2018-05-22 13:49:31 +0200690#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
691
692#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200693#if defined(MBEDTLS_SSL_HAVE_AES)
694#if defined(MBEDTLS_MD_CAN_SHA384) && \
695 defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200696 { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
697 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200698 0,
699 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200700#endif /* MBEDTLS_MD_CAN_SHA384 && MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +0200701
Tom Van Eyckc1633172024-04-09 18:44:13 +0200702#if defined(MBEDTLS_MD_CAN_SHA256)
703#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200704 { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
705 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200706 0,
707 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200708#endif /* MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +0200709
Tom Van Eyckc1633172024-04-09 18:44:13 +0200710#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200711 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
712 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200713 0,
714 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200715
716 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
717 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200718 0,
719 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200720#endif /* MBEDTLS_SSL_HAVE_CBC */
721#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200722
Tom Van Eyckc1633172024-04-09 18:44:13 +0200723#if defined(MBEDTLS_MD_CAN_SHA1)
724#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200725 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
726 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200727 0,
728 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200729
730 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
731 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200732 0,
733 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200734#endif /* MBEDTLS_SSL_HAVE_CBC */
735#endif /* MBEDTLS_MD_CAN_SHA1 */
736#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200737 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
738 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200739 0,
740 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200741 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
742 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200743 MBEDTLS_CIPHERSUITE_SHORT_TAG,
744 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200745 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
746 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200747 0,
748 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200749 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
750 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200751 MBEDTLS_CIPHERSUITE_SHORT_TAG,
752 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200753#endif /* MBEDTLS_SSL_HAVE_CCM */
754#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200755
Tom Van Eyckc1633172024-04-09 18:44:13 +0200756#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
757#if defined(MBEDTLS_SSL_HAVE_CBC)
758#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +0200759 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
760 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200761 0,
762 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200763
764 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
765 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200766 0,
767 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200768#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200769
Tom Van Eyckc1633172024-04-09 18:44:13 +0200770#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200771 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
772 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200773 0,
774 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200775
776 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
777 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200778 0,
779 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200780#endif /* MBEDTLS_MD_CAN_SHA1 */
781#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +0200782
Tom Van Eyckc1633172024-04-09 18:44:13 +0200783#if defined(MBEDTLS_SSL_HAVE_GCM)
784#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +0200785 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
786 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200787 0,
788 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200789#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200790
Tom Van Eyckc1633172024-04-09 18:44:13 +0200791#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +0200792 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
793 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200794 0,
795 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200796#endif /* MBEDTLS_MD_CAN_SHA384 */
797#endif /* MBEDTLS_SSL_HAVE_GCM */
798#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200799
Jens Wiklander817466c2018-05-22 13:49:31 +0200800#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
801
802#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200803#if defined(MBEDTLS_SSL_HAVE_AES)
804#if defined(MBEDTLS_MD_CAN_SHA1)
805#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200806 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
807 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200808 0,
809 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200810 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
811 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200812 0,
813 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200814#endif /* MBEDTLS_SSL_HAVE_CBC */
815#endif /* MBEDTLS_MD_CAN_SHA1 */
816#if defined(MBEDTLS_MD_CAN_SHA256)
817#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200818 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
819 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200820 0,
821 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200822#endif /* MBEDTLS_SSL_HAVE_CBC */
823#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200824 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
825 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200826 0,
827 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200828#endif /* MBEDTLS_SSL_HAVE_GCM */
829#endif /* MBEDTLS_MD_CAN_SHA256 */
830#if defined(MBEDTLS_MD_CAN_SHA384)
831#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200832 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
833 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200834 0,
835 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200836#endif /* MBEDTLS_SSL_HAVE_CBC */
837#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200838 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
839 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200840 0,
841 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200842#endif /* MBEDTLS_SSL_HAVE_GCM */
843#endif /* MBEDTLS_MD_CAN_SHA384 */
844#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200845
Tom Van Eyckc1633172024-04-09 18:44:13 +0200846#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
847#if defined(MBEDTLS_SSL_HAVE_CBC)
848#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200849 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
850 "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200851 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200852 0,
853 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200854#endif /* MBEDTLS_MD_CAN_SHA256 */
855#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200856 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
857 "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200858 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200859 0,
860 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200861#endif /* MBEDTLS_MD_CAN_SHA384 */
862#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +0200863
Tom Van Eyckc1633172024-04-09 18:44:13 +0200864#if defined(MBEDTLS_SSL_HAVE_GCM)
865#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200866 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
867 "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200868 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200869 0,
870 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200871#endif /* MBEDTLS_MD_CAN_SHA256 */
872#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200873 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
874 "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200875 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200876 0,
877 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200878#endif /* MBEDTLS_MD_CAN_SHA384 */
879#endif /* MBEDTLS_SSL_HAVE_GCM */
880#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200881
Jens Wiklander817466c2018-05-22 13:49:31 +0200882#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200883#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200884 { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
885 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200886 MBEDTLS_CIPHERSUITE_WEAK,
887 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200888#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200889#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
890#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
891
892#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200893#if defined(MBEDTLS_SSL_HAVE_AES)
894#if defined(MBEDTLS_MD_CAN_SHA1)
895#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200896 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
897 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200898 0,
899 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200900 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
901 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200902 0,
903 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200904#endif /* MBEDTLS_SSL_HAVE_CBC */
905#endif /* MBEDTLS_MD_CAN_SHA1 */
906#if defined(MBEDTLS_MD_CAN_SHA256)
907#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200908 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
909 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200910 0,
911 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200912#endif /* MBEDTLS_SSL_HAVE_CBC */
913#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200914 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
915 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200916 0,
917 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200918#endif /* MBEDTLS_SSL_HAVE_GCM */
919#endif /* MBEDTLS_MD_CAN_SHA256 */
920#if defined(MBEDTLS_MD_CAN_SHA384)
921#if defined(MBEDTLS_SSL_HAVE_CBC)
Jens Wiklander817466c2018-05-22 13:49:31 +0200922 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
923 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200924 0,
925 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200926#endif /* MBEDTLS_SSL_HAVE_CBC */
927#if defined(MBEDTLS_SSL_HAVE_GCM)
Jens Wiklander817466c2018-05-22 13:49:31 +0200928 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
929 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200930 0,
931 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200932#endif /* MBEDTLS_SSL_HAVE_GCM */
933#endif /* MBEDTLS_MD_CAN_SHA384 */
934#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +0200935
Tom Van Eyckc1633172024-04-09 18:44:13 +0200936#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
937#if defined(MBEDTLS_SSL_HAVE_CBC)
938#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200939 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
940 "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200941 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200942 0,
943 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200944#endif /* MBEDTLS_MD_CAN_SHA256 */
945#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200946 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
947 "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200948 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200949 0,
950 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200951#endif /* MBEDTLS_MD_CAN_SHA384 */
952#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +0200953
Tom Van Eyckc1633172024-04-09 18:44:13 +0200954#if defined(MBEDTLS_SSL_HAVE_GCM)
955#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +0200956 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
957 "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200958 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200959 0,
960 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200961#endif /* MBEDTLS_MD_CAN_SHA256 */
962#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +0200963 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
964 "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200965 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200966 0,
967 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200968#endif /* MBEDTLS_MD_CAN_SHA384 */
969#endif /* MBEDTLS_SSL_HAVE_GCM */
970#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200971
Jens Wiklander817466c2018-05-22 13:49:31 +0200972#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200973#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +0200974 { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
975 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200976 MBEDTLS_CIPHERSUITE_WEAK,
977 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200978#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200979#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
980#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
981
982#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +0200983#if defined(MBEDTLS_SSL_HAVE_AES)
984#if defined(MBEDTLS_SSL_HAVE_GCM)
985#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +0200986 { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
987 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200988 0,
989 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200990#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200991
Tom Van Eyckc1633172024-04-09 18:44:13 +0200992#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +0200993 { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
994 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200995 0,
996 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +0200997#endif /* MBEDTLS_MD_CAN_SHA384 */
998#endif /* MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +0200999
Tom Van Eyckc1633172024-04-09 18:44:13 +02001000#if defined(MBEDTLS_SSL_HAVE_CBC)
1001#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001002 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1003 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001004 0,
1005 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001006#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001007
Tom Van Eyckc1633172024-04-09 18:44:13 +02001008#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001009 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1010 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001011 0,
1012 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001013#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001014
Tom Van Eyckc1633172024-04-09 18:44:13 +02001015#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001016 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1017 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001018 0,
1019 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001020
1021 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1022 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001023 0,
1024 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001025#endif /* MBEDTLS_MD_CAN_SHA1 */
1026#endif /* MBEDTLS_SSL_HAVE_CBC */
1027#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +02001028 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1029 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001030 0,
1031 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001032 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1033 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001034 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1035 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001036 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1037 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001038 0,
1039 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001040 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1041 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001042 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1043 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001044#endif /* MBEDTLS_SSL_HAVE_CCM */
1045#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +02001046
Tom Van Eyckc1633172024-04-09 18:44:13 +02001047#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
1048#if defined(MBEDTLS_SSL_HAVE_CBC)
1049#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001050 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1051 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001052 0,
1053 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001054#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001055
Tom Van Eyckc1633172024-04-09 18:44:13 +02001056#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001057 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1058 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001059 0,
1060 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001061#endif /* MBEDTLS_MD_CAN_SHA384 */
1062#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +02001063
Tom Van Eyckc1633172024-04-09 18:44:13 +02001064#if defined(MBEDTLS_SSL_HAVE_GCM)
1065#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001066 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1067 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001068 0,
1069 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001070#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001071
Tom Van Eyckc1633172024-04-09 18:44:13 +02001072#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001073 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1074 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001075 0,
1076 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001077#endif /* MBEDTLS_MD_CAN_SHA384 */
1078#endif /* MBEDTLS_SSL_HAVE_GCM */
1079#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001080
Jens Wiklander817466c2018-05-22 13:49:31 +02001081#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1082
1083#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001084#if defined(MBEDTLS_SSL_HAVE_AES)
1085#if defined(MBEDTLS_SSL_HAVE_GCM)
1086#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001087 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1088 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001089 0,
1090 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001091#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001092
Tom Van Eyckc1633172024-04-09 18:44:13 +02001093#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001094 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1095 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001096 0,
1097 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001098#endif /* MBEDTLS_MD_CAN_SHA384 */
1099#endif /* MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +02001100
Tom Van Eyckc1633172024-04-09 18:44:13 +02001101#if defined(MBEDTLS_SSL_HAVE_CBC)
1102#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001103 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1104 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001105 0,
1106 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001107#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001108
Tom Van Eyckc1633172024-04-09 18:44:13 +02001109#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001110 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1111 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001112 0,
1113 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001114#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001115
Tom Van Eyckc1633172024-04-09 18:44:13 +02001116#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001117 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1118 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001119 0,
1120 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001121
1122 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1123 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001124 0,
1125 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001126#endif /* MBEDTLS_MD_CAN_SHA1 */
1127#endif /* MBEDTLS_SSL_HAVE_CBC */
1128#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +02001129 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1130 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001131 0,
1132 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001133 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1134 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001135 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1136 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001137 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1138 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001139 0,
1140 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001141 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1142 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001143 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1144 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001145#endif /* MBEDTLS_SSL_HAVE_CCM */
1146#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +02001147
Tom Van Eyckc1633172024-04-09 18:44:13 +02001148#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
1149#if defined(MBEDTLS_SSL_HAVE_CBC)
1150#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001151 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1152 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001153 0,
1154 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001155#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001156
Tom Van Eyckc1633172024-04-09 18:44:13 +02001157#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001158 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1159 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001160 0,
1161 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001162#endif /* MBEDTLS_MD_CAN_SHA384 */
1163#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +02001164
Tom Van Eyckc1633172024-04-09 18:44:13 +02001165#if defined(MBEDTLS_SSL_HAVE_GCM)
1166#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001167 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1168 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001169 0,
1170 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001171#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001172
Tom Van Eyckc1633172024-04-09 18:44:13 +02001173#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001174 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1175 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001176 0,
1177 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001178#endif /* MBEDTLS_MD_CAN_SHA384 */
1179#endif /* MBEDTLS_SSL_HAVE_GCM */
1180#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001181
Jens Wiklander817466c2018-05-22 13:49:31 +02001182#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1183
1184#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001185#if defined(MBEDTLS_SSL_HAVE_AES)
Jens Wiklander817466c2018-05-22 13:49:31 +02001186
Tom Van Eyckc1633172024-04-09 18:44:13 +02001187#if defined(MBEDTLS_SSL_HAVE_CBC)
1188#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001189 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1190 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001191 0,
1192 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001193#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001194
Tom Van Eyckc1633172024-04-09 18:44:13 +02001195#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001196 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1197 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001198 0,
1199 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001200#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001201
Tom Van Eyckc1633172024-04-09 18:44:13 +02001202#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001203 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1204 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001205 0,
1206 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001207
1208 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1209 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001210 0,
1211 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001212#endif /* MBEDTLS_MD_CAN_SHA1 */
1213#endif /* MBEDTLS_SSL_HAVE_CBC */
1214#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +02001215
Tom Van Eyckc1633172024-04-09 18:44:13 +02001216#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
1217#if defined(MBEDTLS_SSL_HAVE_CBC)
1218#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander32b31802023-10-06 16:59:46 +02001219 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
1220 "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +02001221 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001222 0,
1223 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001224#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001225
Tom Van Eyckc1633172024-04-09 18:44:13 +02001226#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander32b31802023-10-06 16:59:46 +02001227 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
1228 "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +02001229 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001230 0,
1231 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001232#endif /* MBEDTLS_MD_CAN_SHA384 */
1233#endif /* MBEDTLS_SSL_HAVE_CBC */
1234#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001235
Jens Wiklander817466c2018-05-22 13:49:31 +02001236#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1237
1238#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001239#if defined(MBEDTLS_SSL_HAVE_AES)
1240#if defined(MBEDTLS_SSL_HAVE_GCM)
1241#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001242 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1243 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001244 0,
1245 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001246#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001247
Tom Van Eyckc1633172024-04-09 18:44:13 +02001248#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001249 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1250 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001251 0,
1252 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001253#endif /* MBEDTLS_MD_CAN_SHA384 */
1254#endif /* MBEDTLS_SSL_HAVE_GCM */
Jens Wiklander817466c2018-05-22 13:49:31 +02001255
Tom Van Eyckc1633172024-04-09 18:44:13 +02001256#if defined(MBEDTLS_SSL_HAVE_CBC)
1257#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001258 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1259 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001260 0,
1261 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001262#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001263
Tom Van Eyckc1633172024-04-09 18:44:13 +02001264#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001265 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1266 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001267 0,
1268 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001269#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001270
Tom Van Eyckc1633172024-04-09 18:44:13 +02001271#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001272 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1273 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001274 0,
1275 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001276
1277 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1278 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001279 0,
1280 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001281#endif /* MBEDTLS_MD_CAN_SHA1 */
1282#endif /* MBEDTLS_SSL_HAVE_CBC */
1283#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +02001284
Tom Van Eyckc1633172024-04-09 18:44:13 +02001285#if defined(MBEDTLS_SSL_HAVE_CAMELLIA)
1286#if defined(MBEDTLS_SSL_HAVE_CBC)
1287#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001288 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1289 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001290 0,
1291 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001292#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001293
Tom Van Eyckc1633172024-04-09 18:44:13 +02001294#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001295 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1296 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001297 0,
1298 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001299#endif /* MBEDTLS_MD_CAN_SHA384 */
1300#endif /* MBEDTLS_SSL_HAVE_CBC */
Jens Wiklander817466c2018-05-22 13:49:31 +02001301
Tom Van Eyckc1633172024-04-09 18:44:13 +02001302#if defined(MBEDTLS_SSL_HAVE_GCM)
1303#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001304 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1305 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001306 0,
1307 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001308#endif /* MBEDTLS_MD_CAN_SHA256 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001309
Tom Van Eyckc1633172024-04-09 18:44:13 +02001310#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001311 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1312 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001313 0,
1314 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001315#endif /* MBEDTLS_MD_CAN_SHA384 */
1316#endif /* MBEDTLS_SSL_HAVE_GCM */
1317#endif /* MBEDTLS_SSL_HAVE_CAMELLIA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001318
Jens Wiklander817466c2018-05-22 13:49:31 +02001319#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1320
1321#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001322#if defined(MBEDTLS_SSL_HAVE_AES)
1323#if defined(MBEDTLS_SSL_HAVE_CCM)
Jens Wiklander817466c2018-05-22 13:49:31 +02001324 { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
1325 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
Jens Wiklander32b31802023-10-06 16:59:46 +02001326 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1327 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001328#endif /* MBEDTLS_SSL_HAVE_CCM */
1329#endif /* MBEDTLS_SSL_HAVE_AES */
Jens Wiklander817466c2018-05-22 13:49:31 +02001330#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
1331
Jens Wiklander817466c2018-05-22 13:49:31 +02001332#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1333#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001334#if defined(MBEDTLS_MD_CAN_MD5)
Jens Wiklander817466c2018-05-22 13:49:31 +02001335 { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1336 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001337 MBEDTLS_CIPHERSUITE_WEAK,
1338 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001339#endif
1340
Tom Van Eyckc1633172024-04-09 18:44:13 +02001341#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001342 { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1343 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001344 MBEDTLS_CIPHERSUITE_WEAK,
1345 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001346#endif
1347
Tom Van Eyckc1633172024-04-09 18:44:13 +02001348#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001349 { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1350 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001351 MBEDTLS_CIPHERSUITE_WEAK,
1352 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001353#endif
1354#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1355
1356#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001357#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001358 { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1359 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001360 MBEDTLS_CIPHERSUITE_WEAK,
1361 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001362#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001363
Tom Van Eyckc1633172024-04-09 18:44:13 +02001364#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001365 { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1366 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001367 MBEDTLS_CIPHERSUITE_WEAK,
1368 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001369#endif
1370
Tom Van Eyckc1633172024-04-09 18:44:13 +02001371#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001372 { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1373 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001374 MBEDTLS_CIPHERSUITE_WEAK,
1375 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001376#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001377#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1378
1379#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001380#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001381 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1382 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001383 MBEDTLS_CIPHERSUITE_WEAK,
1384 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001385#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001386
Tom Van Eyckc1633172024-04-09 18:44:13 +02001387#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001388 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1389 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001390 MBEDTLS_CIPHERSUITE_WEAK,
1391 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001392#endif
1393
Tom Van Eyckc1633172024-04-09 18:44:13 +02001394#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001395 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1396 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001397 MBEDTLS_CIPHERSUITE_WEAK,
1398 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001399#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001400#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1401
1402#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001403#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001404 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1405 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001406 MBEDTLS_CIPHERSUITE_WEAK,
1407 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001408#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001409
Tom Van Eyckc1633172024-04-09 18:44:13 +02001410#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001411 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1412 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001413 MBEDTLS_CIPHERSUITE_WEAK,
1414 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001415#endif
1416
Tom Van Eyckc1633172024-04-09 18:44:13 +02001417#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001418 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1419 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001420 MBEDTLS_CIPHERSUITE_WEAK,
1421 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001422#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001423#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1424
1425#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
Tom Van Eyckc1633172024-04-09 18:44:13 +02001426#if defined(MBEDTLS_MD_CAN_SHA1)
Jens Wiklander817466c2018-05-22 13:49:31 +02001427 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1428 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001429 MBEDTLS_CIPHERSUITE_WEAK,
1430 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001431#endif /* MBEDTLS_MD_CAN_SHA1 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001432
Tom Van Eyckc1633172024-04-09 18:44:13 +02001433#if defined(MBEDTLS_MD_CAN_SHA256)
Jens Wiklander817466c2018-05-22 13:49:31 +02001434 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
1435 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001436 MBEDTLS_CIPHERSUITE_WEAK,
1437 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001438#endif
1439
Tom Van Eyckc1633172024-04-09 18:44:13 +02001440#if defined(MBEDTLS_MD_CAN_SHA384)
Jens Wiklander817466c2018-05-22 13:49:31 +02001441 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
1442 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001443 MBEDTLS_CIPHERSUITE_WEAK,
1444 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Tom Van Eyckc1633172024-04-09 18:44:13 +02001445#endif /* MBEDTLS_MD_CAN_SHA384 */
Jens Wiklander817466c2018-05-22 13:49:31 +02001446#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1447#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1448
Tom Van Eyckc1633172024-04-09 18:44:13 +02001449#if defined(MBEDTLS_SSL_HAVE_ARIA)
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001450
1451#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1452
Tom Van Eyckc1633172024-04-09 18:44:13 +02001453#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001454 { MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001455 "TLS-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001456 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001457 0,
1458 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001459#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001460#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1461 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001462 { MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001463 "TLS-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001464 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001465 0,
1466 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001467#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001468#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001469 { MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001470 "TLS-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001471 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001472 0,
1473 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001474#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001475#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1476 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001477 { MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001478 "TLS-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001479 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001480 0,
1481 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001482#endif
1483
1484#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1485
1486#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1487
Tom Van Eyckc1633172024-04-09 18:44:13 +02001488#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001489 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001490 "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001491 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001492 0,
1493 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001494#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001495#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1496 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001497 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001498 "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001499 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001500 0,
1501 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001502#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001503#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001504 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001505 "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001506 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001507 0,
1508 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001509#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001510#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1511 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001512 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001513 "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001514 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001515 0,
1516 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001517#endif
1518
1519#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1520
1521#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1522
Tom Van Eyckc1633172024-04-09 18:44:13 +02001523#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001524 { MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001525 "TLS-PSK-WITH-ARIA-256-GCM-SHA384",
1526 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1527 0,
1528 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001529#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001530#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1531 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001532 { MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001533 "TLS-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001534 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001535 0,
1536 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001537#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001538#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001539 { MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001540 "TLS-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001541 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001542 0,
1543 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001544#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001545#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1546 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001547 { MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001548 "TLS-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001549 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001550 0,
1551 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001552#endif
1553
1554#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1555
1556#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
1557
Tom Van Eyckc1633172024-04-09 18:44:13 +02001558#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001559 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001560 "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001561 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001562 0,
1563 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001564#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001565#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1566 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001567 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001568 "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001569 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001570 0,
1571 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001572#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001573#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001574 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001575 "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001576 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001577 0,
1578 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001579#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001580#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1581 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001582 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001583 "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001584 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001585 0,
1586 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001587#endif
1588
1589#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
1590
1591#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
1592
Tom Van Eyckc1633172024-04-09 18:44:13 +02001593#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001594 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001595 "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001596 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001597 0,
1598 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001599#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001600#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1601 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001602 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001603 "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001604 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001605 0,
1606 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001607#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001608#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001609 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001610 "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001611 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001612 0,
1613 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001614#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001615#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1616 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001617 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001618 "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001619 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001620 0,
1621 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001622#endif
1623
1624#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
1625
1626#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1627
Tom Van Eyckc1633172024-04-09 18:44:13 +02001628#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1629 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001630 { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001631 "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001632 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001633 0,
1634 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001635#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001636#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1637 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001638 { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001639 "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001640 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001641 0,
1642 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001643#endif
1644
1645#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1646
1647#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
1648
Tom Van Eyckc1633172024-04-09 18:44:13 +02001649#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001650 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001651 "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001652 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001653 0,
1654 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001655#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001656#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1657 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001658 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001659 "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001660 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001661 0,
1662 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001663#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001664#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001665 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001666 "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001667 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001668 0,
1669 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001670#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001671#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1672 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001673 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001674 "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001675 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001676 0,
1677 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001678#endif
1679
1680#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
1681
1682#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
1683
Tom Van Eyckc1633172024-04-09 18:44:13 +02001684#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001685 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001686 "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001687 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001688 0,
1689 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001690#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001691#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1692 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001693 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001694 "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001695 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001696 0,
1697 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001698#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001699#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001700 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001701 "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001702 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001703 0,
1704 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001705#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001706#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1707 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001708 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001709 "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001710 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001711 0,
1712 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001713#endif
1714
1715#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1716
1717#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
1718
Tom Van Eyckc1633172024-04-09 18:44:13 +02001719#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001720 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001721 "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001722 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001723 0,
1724 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001725#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001726#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1727 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001728 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001729 "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001730 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001731 0,
1732 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001733#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001734#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001735 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001736 "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001737 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001738 0,
1739 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001740#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001741#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1742 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001743 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001744 "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001745 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001746 0,
1747 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001748#endif
1749
1750#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
1751
1752#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1753
Tom Van Eyckc1633172024-04-09 18:44:13 +02001754#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001755 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001756 "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001757 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001758 0,
1759 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001760#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001761#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1762 defined(MBEDTLS_MD_CAN_SHA384))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001763 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001764 "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001765 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001766 0,
1767 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001768#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001769#if (defined(MBEDTLS_SSL_HAVE_GCM) && defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001770 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001771 "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001772 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001773 0,
1774 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001775#endif
Tom Van Eyckc1633172024-04-09 18:44:13 +02001776#if (defined(MBEDTLS_SSL_HAVE_CBC) && \
1777 defined(MBEDTLS_MD_CAN_SHA256))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001778 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001779 "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001780 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001781 0,
1782 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001783#endif
1784
1785#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1786
Tom Van Eyckc1633172024-04-09 18:44:13 +02001787#endif /* MBEDTLS_SSL_HAVE_ARIA */
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001788
1789
Jens Wiklander817466c2018-05-22 13:49:31 +02001790 { 0, "",
1791 MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE,
Jens Wiklander32b31802023-10-06 16:59:46 +02001792 0, 0, 0 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001793};
1794
1795#if defined(MBEDTLS_SSL_CIPHERSUITES)
Jens Wiklander32b31802023-10-06 16:59:46 +02001796const int *mbedtls_ssl_list_ciphersuites(void)
Jens Wiklander817466c2018-05-22 13:49:31 +02001797{
Jens Wiklander32b31802023-10-06 16:59:46 +02001798 return ciphersuite_preference;
Jens Wiklander817466c2018-05-22 13:49:31 +02001799}
1800#else
Jens Wiklander32b31802023-10-06 16:59:46 +02001801#define MAX_CIPHERSUITES sizeof(ciphersuite_definitions) / \
1802 sizeof(ciphersuite_definitions[0])
Jens Wiklander817466c2018-05-22 13:49:31 +02001803static int supported_ciphersuites[MAX_CIPHERSUITES];
1804static int supported_init = 0;
1805
Jerome Forissier039e02d2022-08-09 17:10:15 +02001806MBEDTLS_CHECK_RETURN_CRITICAL
Jens Wiklander32b31802023-10-06 16:59:46 +02001807static int ciphersuite_is_removed(const mbedtls_ssl_ciphersuite_t *cs_info)
Jerome Forissier5b25c762020-04-07 11:18:49 +02001808{
Jens Wiklander32b31802023-10-06 16:59:46 +02001809 (void) cs_info;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001810
Jens Wiklander32b31802023-10-06 16:59:46 +02001811 return 0;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001812}
1813
Jens Wiklander32b31802023-10-06 16:59:46 +02001814const int *mbedtls_ssl_list_ciphersuites(void)
Jens Wiklander817466c2018-05-22 13:49:31 +02001815{
1816 /*
1817 * On initial call filter out all ciphersuites not supported by current
1818 * build based on presence in the ciphersuite_definitions.
1819 */
Jens Wiklander32b31802023-10-06 16:59:46 +02001820 if (supported_init == 0) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001821 const int *p;
1822 int *q;
1823
Jens Wiklander32b31802023-10-06 16:59:46 +02001824 for (p = ciphersuite_preference, q = supported_ciphersuites;
Jens Wiklander817466c2018-05-22 13:49:31 +02001825 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
Jens Wiklander32b31802023-10-06 16:59:46 +02001826 p++) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001827 const mbedtls_ssl_ciphersuite_t *cs_info;
Jens Wiklander32b31802023-10-06 16:59:46 +02001828 if ((cs_info = mbedtls_ssl_ciphersuite_from_id(*p)) != NULL &&
1829 !ciphersuite_is_removed(cs_info)) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001830 *(q++) = *p;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001831 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001832 }
1833 *q = 0;
1834
1835 supported_init = 1;
1836 }
1837
Jens Wiklander32b31802023-10-06 16:59:46 +02001838 return supported_ciphersuites;
Jens Wiklander817466c2018-05-22 13:49:31 +02001839}
1840#endif /* MBEDTLS_SSL_CIPHERSUITES */
1841
1842const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(
Jens Wiklander32b31802023-10-06 16:59:46 +02001843 const char *ciphersuite_name)
Jens Wiklander817466c2018-05-22 13:49:31 +02001844{
1845 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1846
Jens Wiklander32b31802023-10-06 16:59:46 +02001847 if (NULL == ciphersuite_name) {
1848 return NULL;
1849 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001850
Jens Wiklander32b31802023-10-06 16:59:46 +02001851 while (cur->id != 0) {
1852 if (0 == strcmp(cur->name, ciphersuite_name)) {
1853 return cur;
1854 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001855
1856 cur++;
1857 }
1858
Jens Wiklander32b31802023-10-06 16:59:46 +02001859 return NULL;
Jens Wiklander817466c2018-05-22 13:49:31 +02001860}
1861
Jens Wiklander32b31802023-10-06 16:59:46 +02001862const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id(int ciphersuite)
Jens Wiklander817466c2018-05-22 13:49:31 +02001863{
1864 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1865
Jens Wiklander32b31802023-10-06 16:59:46 +02001866 while (cur->id != 0) {
1867 if (cur->id == ciphersuite) {
1868 return cur;
1869 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001870
1871 cur++;
1872 }
1873
Jens Wiklander32b31802023-10-06 16:59:46 +02001874 return NULL;
Jens Wiklander817466c2018-05-22 13:49:31 +02001875}
1876
Jens Wiklander32b31802023-10-06 16:59:46 +02001877const char *mbedtls_ssl_get_ciphersuite_name(const int ciphersuite_id)
Jens Wiklander817466c2018-05-22 13:49:31 +02001878{
1879 const mbedtls_ssl_ciphersuite_t *cur;
1880
Jens Wiklander32b31802023-10-06 16:59:46 +02001881 cur = mbedtls_ssl_ciphersuite_from_id(ciphersuite_id);
Jens Wiklander817466c2018-05-22 13:49:31 +02001882
Jens Wiklander32b31802023-10-06 16:59:46 +02001883 if (cur == NULL) {
1884 return "unknown";
1885 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001886
Jens Wiklander32b31802023-10-06 16:59:46 +02001887 return cur->name;
Jens Wiklander817466c2018-05-22 13:49:31 +02001888}
1889
Jens Wiklander32b31802023-10-06 16:59:46 +02001890int mbedtls_ssl_get_ciphersuite_id(const char *ciphersuite_name)
Jens Wiklander817466c2018-05-22 13:49:31 +02001891{
1892 const mbedtls_ssl_ciphersuite_t *cur;
1893
Jens Wiklander32b31802023-10-06 16:59:46 +02001894 cur = mbedtls_ssl_ciphersuite_from_string(ciphersuite_name);
Jens Wiklander817466c2018-05-22 13:49:31 +02001895
Jens Wiklander32b31802023-10-06 16:59:46 +02001896 if (cur == NULL) {
1897 return 0;
1898 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001899
Jens Wiklander32b31802023-10-06 16:59:46 +02001900 return cur->id;
1901}
1902
1903size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersuite_t *info)
1904{
1905#if defined(MBEDTLS_USE_PSA_CRYPTO)
1906 psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
1907 psa_key_type_t key_type;
1908 psa_algorithm_t alg;
1909 size_t key_bits;
1910
Tom Van Eyckc1633172024-04-09 18:44:13 +02001911 status = mbedtls_ssl_cipher_to_psa((mbedtls_cipher_type_t) info->cipher,
Jens Wiklander32b31802023-10-06 16:59:46 +02001912 info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16,
1913 &alg, &key_type, &key_bits);
1914
1915 if (status != PSA_SUCCESS) {
1916 return 0;
1917 }
1918
1919 return key_bits;
1920#else
1921 const mbedtls_cipher_info_t * const cipher_info =
Tom Van Eyckc1633172024-04-09 18:44:13 +02001922 mbedtls_cipher_info_from_type((mbedtls_cipher_type_t) info->cipher);
Jens Wiklander32b31802023-10-06 16:59:46 +02001923
1924 return mbedtls_cipher_info_get_key_bitlen(cipher_info);
1925#endif /* MBEDTLS_USE_PSA_CRYPTO */
Jens Wiklander817466c2018-05-22 13:49:31 +02001926}
1927
1928#if defined(MBEDTLS_PK_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001929mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02001930{
Jens Wiklander32b31802023-10-06 16:59:46 +02001931 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001932 case MBEDTLS_KEY_EXCHANGE_RSA:
1933 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1934 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1935 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
Jens Wiklander32b31802023-10-06 16:59:46 +02001936 return MBEDTLS_PK_RSA;
Jens Wiklander817466c2018-05-22 13:49:31 +02001937
1938 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001939 return MBEDTLS_PK_ECDSA;
Jens Wiklander817466c2018-05-22 13:49:31 +02001940
1941 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1942 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001943 return MBEDTLS_PK_ECKEY;
Jens Wiklander817466c2018-05-22 13:49:31 +02001944
1945 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02001946 return MBEDTLS_PK_NONE;
Jens Wiklander817466c2018-05-22 13:49:31 +02001947 }
1948}
1949
Jens Wiklander32b31802023-10-06 16:59:46 +02001950#if defined(MBEDTLS_USE_PSA_CRYPTO)
1951psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02001952{
Jens Wiklander32b31802023-10-06 16:59:46 +02001953 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001954 case MBEDTLS_KEY_EXCHANGE_RSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001955 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1956 return PSA_ALG_RSA_PKCS1V15_CRYPT;
Jens Wiklander817466c2018-05-22 13:49:31 +02001957 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1958 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001959 return PSA_ALG_RSA_PKCS1V15_SIGN(
Tom Van Eyckc1633172024-04-09 18:44:13 +02001960 mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) info->mac));
Jens Wiklander817466c2018-05-22 13:49:31 +02001961
1962 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
Tom Van Eyckc1633172024-04-09 18:44:13 +02001963 return PSA_ALG_ECDSA(mbedtls_md_psa_alg_from_type((mbedtls_md_type_t) info->mac));
Jens Wiklander32b31802023-10-06 16:59:46 +02001964
1965 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1966 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1967 return PSA_ALG_ECDH;
Jens Wiklander817466c2018-05-22 13:49:31 +02001968
1969 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02001970 return PSA_ALG_NONE;
1971 }
1972}
1973
1974psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info)
1975{
1976 switch (info->key_exchange) {
1977 case MBEDTLS_KEY_EXCHANGE_RSA:
1978 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1979 return PSA_KEY_USAGE_DECRYPT;
1980 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1981 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1982 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1983 return PSA_KEY_USAGE_SIGN_HASH;
1984
1985 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1986 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1987 return PSA_KEY_USAGE_DERIVE;
1988
1989 default:
1990 return 0;
1991 }
1992}
1993#endif /* MBEDTLS_USE_PSA_CRYPTO */
1994
1995mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info)
1996{
1997 switch (info->key_exchange) {
1998 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1999 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
2000 return MBEDTLS_PK_RSA;
2001
2002 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
2003 return MBEDTLS_PK_ECDSA;
2004
2005 default:
2006 return MBEDTLS_PK_NONE;
Jens Wiklander817466c2018-05-22 13:49:31 +02002007 }
2008}
2009
2010#endif /* MBEDTLS_PK_C */
2011
Tom Van Eyckc1633172024-04-09 18:44:13 +02002012#if defined(MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED) || \
2013 defined(MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED) || \
Jens Wiklander3d3b0592019-03-20 15:30:29 +01002014 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02002015int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02002016{
Jens Wiklander32b31802023-10-06 16:59:46 +02002017 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02002018 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
2019 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
2020 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
2021 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
2022 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
Jens Wiklander3d3b0592019-03-20 15:30:29 +01002023 case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
Jens Wiklander32b31802023-10-06 16:59:46 +02002024 return 1;
Jens Wiklander817466c2018-05-22 13:49:31 +02002025
2026 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02002027 return 0;
Jens Wiklander817466c2018-05-22 13:49:31 +02002028 }
2029}
Tom Van Eyckc1633172024-04-09 18:44:13 +02002030#endif /* MBEDTLS_KEY_EXCHANGE_SOME_ECDH_OR_ECDHE_1_2_ENABLED ||
2031 * MBEDTLS_KEY_EXCHANGE_ECDSA_CERT_REQ_ALLOWED_ENABLED ||
2032 * MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED*/
Jens Wiklander817466c2018-05-22 13:49:31 +02002033
Jerome Forissier11fa71b2020-04-20 17:17:56 +02002034#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02002035int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02002036{
Jens Wiklander32b31802023-10-06 16:59:46 +02002037 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02002038 case MBEDTLS_KEY_EXCHANGE_PSK:
2039 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
2040 case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
2041 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
Jens Wiklander32b31802023-10-06 16:59:46 +02002042 return 1;
Jens Wiklander817466c2018-05-22 13:49:31 +02002043
2044 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02002045 return 0;
Jens Wiklander817466c2018-05-22 13:49:31 +02002046 }
2047}
Jerome Forissier11fa71b2020-04-20 17:17:56 +02002048#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
Jens Wiklander817466c2018-05-22 13:49:31 +02002049
2050#endif /* MBEDTLS_SSL_TLS_C */