blob: 501608a5a8d3e8bc80fb9f08f9a21112a2b3be31 [file] [log] [blame]
Jens Wiklander817466c2018-05-22 13:49:31 +02001/**
2 * \file ssl_ciphersuites.c
3 *
4 * \brief SSL ciphersuites for mbed TLS
5 *
Jerome Forissier79013242021-07-28 10:24:04 +02006 * Copyright The Mbed TLS Contributors
7 * SPDX-License-Identifier: Apache-2.0
Jens Wiklander817466c2018-05-22 13:49:31 +02008 *
9 * Licensed under the Apache License, Version 2.0 (the "License"); you may
10 * not use this file except in compliance with the License.
11 * You may obtain a copy of the License at
12 *
13 * http://www.apache.org/licenses/LICENSE-2.0
14 *
15 * Unless required by applicable law or agreed to in writing, software
16 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 * See the License for the specific language governing permissions and
19 * limitations under the License.
Jens Wiklander817466c2018-05-22 13:49:31 +020020 */
21
Jerome Forissier79013242021-07-28 10:24:04 +020022#include "common.h"
Jens Wiklander817466c2018-05-22 13:49:31 +020023
24#if defined(MBEDTLS_SSL_TLS_C)
25
Jens Wiklander817466c2018-05-22 13:49:31 +020026#include "mbedtls/platform.h"
Jens Wiklander817466c2018-05-22 13:49:31 +020027
28#include "mbedtls/ssl_ciphersuites.h"
29#include "mbedtls/ssl.h"
Jens Wiklander32b31802023-10-06 16:59:46 +020030#include "ssl_misc.h"
31
32#include "mbedtls/legacy_or_psa.h"
Jens Wiklander817466c2018-05-22 13:49:31 +020033
34#include <string.h>
35
36/*
37 * Ordered from most preferred to least preferred in terms of security.
38 *
Jens Wiklander32b31802023-10-06 16:59:46 +020039 * Current rule (except weak and null which come last):
Jens Wiklander817466c2018-05-22 13:49:31 +020040 * 1. By key exchange:
41 * Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
42 * 2. By key length and cipher:
Jerome Forissier5b25c762020-04-07 11:18:49 +020043 * ChaCha > AES-256 > Camellia-256 > ARIA-256 > AES-128 > Camellia-128 > ARIA-128
Jens Wiklander817466c2018-05-22 13:49:31 +020044 * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
45 * 4. By hash function used when relevant
46 * 5. By key exchange/auth again: EC > non-EC
47 */
48static const int ciphersuite_preference[] =
49{
50#if defined(MBEDTLS_SSL_CIPHERSUITES)
51 MBEDTLS_SSL_CIPHERSUITES,
52#else
Jens Wiklander32b31802023-10-06 16:59:46 +020053#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
54 /* TLS 1.3 ciphersuites */
55 MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
56 MBEDTLS_TLS1_3_AES_256_GCM_SHA384,
57 MBEDTLS_TLS1_3_AES_128_GCM_SHA256,
58 MBEDTLS_TLS1_3_AES_128_CCM_SHA256,
59 MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256,
60#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
61
Jens Wiklander3d3b0592019-03-20 15:30:29 +010062 /* Chacha-Poly ephemeral suites */
63 MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
64 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
65 MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
66
Jens Wiklander817466c2018-05-22 13:49:31 +020067 /* All AES-256 ephemeral suites */
68 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
69 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
70 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
71 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
72 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
73 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
74 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
75 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
76 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
77 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
78 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
79 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
80 MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,
81
82 /* All CAMELLIA-256 ephemeral suites */
83 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
84 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
85 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
86 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
87 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
88 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
89 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
90
Jens Wiklander3d3b0592019-03-20 15:30:29 +010091 /* All ARIA-256 ephemeral suites */
92 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
93 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
94 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
95 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
96 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
97 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
98
Jens Wiklander817466c2018-05-22 13:49:31 +020099 /* All AES-128 ephemeral suites */
100 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
101 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
102 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
103 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
104 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
105 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
106 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
107 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
108 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
109 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
110 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
111 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
112 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,
113
114 /* All CAMELLIA-128 ephemeral suites */
115 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
116 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
117 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
118 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
119 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
120 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
121 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
122
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100123 /* All ARIA-128 ephemeral suites */
124 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
125 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
126 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
127 MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
128 MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
129 MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
130
Jens Wiklander817466c2018-05-22 13:49:31 +0200131 /* The PSK ephemeral suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100132 MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
133 MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200134 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
135 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
136 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
137 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
138 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
139 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
140 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
141 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
142 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
143 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100144 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
145 MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
146 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200147
148 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
149 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
150 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
151 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
152 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
153 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
154 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
155 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
156 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
157 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100158 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
159 MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
160 MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200161
Jens Wiklander817466c2018-05-22 13:49:31 +0200162 /* The ECJPAKE suite */
163 MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
164
165 /* All AES-256 suites */
166 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
167 MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
168 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
169 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
170 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
171 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
172 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
173 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
174 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
175 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
176 MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
177
178 /* All CAMELLIA-256 suites */
179 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
180 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
181 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
182 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
183 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
184 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
185 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
186
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100187 /* All ARIA-256 suites */
188 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
189 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
190 MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
191 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
192 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
193 MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
194
Jens Wiklander817466c2018-05-22 13:49:31 +0200195 /* All AES-128 suites */
196 MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
197 MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
198 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
199 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
200 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
201 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
202 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
203 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
204 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
205 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
206 MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
207
208 /* All CAMELLIA-128 suites */
209 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
210 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
211 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
212 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
213 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
214 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
215 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
216
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100217 /* All ARIA-128 suites */
218 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
219 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
220 MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
221 MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
222 MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
223 MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
224
Jens Wiklander817466c2018-05-22 13:49:31 +0200225 /* The RSA PSK suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100226 MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200227 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
228 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
229 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
230 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
231 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100232 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
233 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200234
235 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
236 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
237 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
238 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
239 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100240 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
241 MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200242
Jens Wiklander817466c2018-05-22 13:49:31 +0200243 /* The PSK suites */
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100244 MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200245 MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
246 MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
247 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384,
248 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA,
249 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
250 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
251 MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100252 MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
253 MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander817466c2018-05-22 13:49:31 +0200254
255 MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256,
256 MBEDTLS_TLS_PSK_WITH_AES_128_CCM,
257 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256,
258 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA,
259 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
260 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
261 MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100262 MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
263 MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander817466c2018-05-22 13:49:31 +0200264
Jens Wiklander817466c2018-05-22 13:49:31 +0200265 /* NULL suites */
266 MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
267 MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA,
268 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
269 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
270 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
271 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
272 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
273 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
274
275 MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
276 MBEDTLS_TLS_RSA_WITH_NULL_SHA,
277 MBEDTLS_TLS_RSA_WITH_NULL_MD5,
278 MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
279 MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
280 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
281 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
282 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
283 MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
284 MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
285 MBEDTLS_TLS_PSK_WITH_NULL_SHA,
286
287#endif /* MBEDTLS_SSL_CIPHERSUITES */
288 0
289};
290
291static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
292{
Jens Wiklander32b31802023-10-06 16:59:46 +0200293#if defined(MBEDTLS_SSL_PROTO_TLS1_3)
294#if defined(MBEDTLS_AES_C)
295#if defined(MBEDTLS_GCM_C)
296#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
297 { MBEDTLS_TLS1_3_AES_256_GCM_SHA384, "TLS1-3-AES-256-GCM-SHA384",
298 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384,
299 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
300 0,
301 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
302#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
303#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
304 { MBEDTLS_TLS1_3_AES_128_GCM_SHA256, "TLS1-3-AES-128-GCM-SHA256",
305 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256,
306 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
307 0,
308 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
309#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
310#endif /* MBEDTLS_GCM_C */
311#if defined(MBEDTLS_CCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
312 { MBEDTLS_TLS1_3_AES_128_CCM_SHA256, "TLS1-3-AES-128-CCM-SHA256",
313 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
314 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
315 0,
316 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
317 { MBEDTLS_TLS1_3_AES_128_CCM_8_SHA256, "TLS1-3-AES-128-CCM-8-SHA256",
318 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256,
319 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
320 MBEDTLS_CIPHERSUITE_SHORT_TAG,
321 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
322#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_CCM_C */
323#endif /* MBEDTLS_AES_C */
324#if defined(MBEDTLS_CHACHAPOLY_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
325 { MBEDTLS_TLS1_3_CHACHA20_POLY1305_SHA256,
326 "TLS1-3-CHACHA20-POLY1305-SHA256",
327 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
328 MBEDTLS_KEY_EXCHANGE_NONE, /* Key exchange not part of ciphersuite in TLS 1.3 */
329 0,
330 MBEDTLS_SSL_VERSION_TLS1_3, MBEDTLS_SSL_VERSION_TLS1_3 },
331#endif /* MBEDTLS_CHACHAPOLY_C && MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
332#endif /* MBEDTLS_SSL_PROTO_TLS1_3 */
333
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100334#if defined(MBEDTLS_CHACHAPOLY_C) && \
Jens Wiklander32b31802023-10-06 16:59:46 +0200335 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100336 defined(MBEDTLS_SSL_PROTO_TLS1_2)
337#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
338 { MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
339 "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
340 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
341 MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200342 0,
343 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100344#endif
345#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
346 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
347 "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256",
348 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
349 MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200350 0,
351 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100352#endif
353#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
354 { MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
355 "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
356 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
357 MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200358 0,
359 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100360#endif
361#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
362 { MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
363 "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256",
364 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
365 MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200366 0,
367 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100368#endif
369#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
370 { MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
371 "TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
372 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
373 MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200374 0,
375 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100376#endif
377#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
378 { MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
379 "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
380 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
381 MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200382 0,
383 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100384#endif
385#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
386 { MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
387 "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256",
388 MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
389 MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200390 0,
391 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100392#endif
393#endif /* MBEDTLS_CHACHAPOLY_C &&
Jens Wiklander32b31802023-10-06 16:59:46 +0200394 MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA &&
Jens Wiklander3d3b0592019-03-20 15:30:29 +0100395 MBEDTLS_SSL_PROTO_TLS1_2 */
Jens Wiklander817466c2018-05-22 13:49:31 +0200396#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
397#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200398#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200399#if defined(MBEDTLS_CIPHER_MODE_CBC)
400 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
401 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200402 0,
403 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200404 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
405 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200406 0,
407 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200408#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200409#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
410#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200411#if defined(MBEDTLS_CIPHER_MODE_CBC)
412 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
413 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200414 0,
415 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200416#endif /* MBEDTLS_CIPHER_MODE_CBC */
417#if defined(MBEDTLS_GCM_C)
418 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
419 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200420 0,
421 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200422#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200423#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
424#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200425#if defined(MBEDTLS_CIPHER_MODE_CBC)
426 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
427 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200428 0,
429 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200430#endif /* MBEDTLS_CIPHER_MODE_CBC */
431#if defined(MBEDTLS_GCM_C)
432 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
433 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200434 0,
435 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200436#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200437#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200438#if defined(MBEDTLS_CCM_C)
439 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
440 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200441 0,
442 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200443 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
444 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200445 MBEDTLS_CIPHERSUITE_SHORT_TAG,
446 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200447 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
448 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200449 0,
450 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200451 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
452 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200453 MBEDTLS_CIPHERSUITE_SHORT_TAG,
454 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200455#endif /* MBEDTLS_CCM_C */
456#endif /* MBEDTLS_AES_C */
457
458#if defined(MBEDTLS_CAMELLIA_C)
459#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200460#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
461 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
462 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200463 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200464 0,
465 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
466#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
467#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
468 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
469 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200470 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200471 0,
472 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
473#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200474#endif /* MBEDTLS_CIPHER_MODE_CBC */
475
476#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200477#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
478 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
479 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200480 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200481 0,
482 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
483#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
484#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
485 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
486 "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200487 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200488 0,
489 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
490#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200491#endif /* MBEDTLS_GCM_C */
492#endif /* MBEDTLS_CAMELLIA_C */
493
Jens Wiklander817466c2018-05-22 13:49:31 +0200494#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Jens Wiklander32b31802023-10-06 16:59:46 +0200495#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200496 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
497 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200498 MBEDTLS_CIPHERSUITE_WEAK,
499 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
500#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200501#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
502#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
503
504#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
505#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200506#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200507#if defined(MBEDTLS_CIPHER_MODE_CBC)
508 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
509 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200510 0,
511 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200512 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
513 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200514 0,
515 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200516#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200517#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
518#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200519#if defined(MBEDTLS_CIPHER_MODE_CBC)
520 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
521 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200522 0,
523 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200524#endif /* MBEDTLS_CIPHER_MODE_CBC */
525#if defined(MBEDTLS_GCM_C)
526 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
527 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200528 0,
529 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200530#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200531#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
532#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200533#if defined(MBEDTLS_CIPHER_MODE_CBC)
534 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
535 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200536 0,
537 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200538#endif /* MBEDTLS_CIPHER_MODE_CBC */
539#if defined(MBEDTLS_GCM_C)
540 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
541 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200542 0,
543 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200544#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200545#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200546#endif /* MBEDTLS_AES_C */
547
548#if defined(MBEDTLS_CAMELLIA_C)
549#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200550#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
551 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
552 "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200553 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200554 0,
555 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
556#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
557#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
558 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
559 "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200560 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200561 0,
562 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
563#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200564#endif /* MBEDTLS_CIPHER_MODE_CBC */
565
566#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200567#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
568 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
569 "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200570 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200571 0,
572 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
573#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
574#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
575 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
576 "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200577 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200578 0,
579 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
580#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200581#endif /* MBEDTLS_GCM_C */
582#endif /* MBEDTLS_CAMELLIA_C */
583
Jens Wiklander817466c2018-05-22 13:49:31 +0200584#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Jens Wiklander32b31802023-10-06 16:59:46 +0200585#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200586 { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
587 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200588 MBEDTLS_CIPHERSUITE_WEAK,
589 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
590#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200591#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
592#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
593
594#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
595#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200596#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \
597 defined(MBEDTLS_GCM_C)
Jens Wiklander817466c2018-05-22 13:49:31 +0200598 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
599 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200600 0,
601 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
602#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_GCM_C */
Jens Wiklander817466c2018-05-22 13:49:31 +0200603
Jens Wiklander32b31802023-10-06 16:59:46 +0200604#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200605#if defined(MBEDTLS_GCM_C)
606 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
607 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200608 0,
609 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200610#endif /* MBEDTLS_GCM_C */
611
612#if defined(MBEDTLS_CIPHER_MODE_CBC)
613 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
614 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200615 0,
616 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200617
618 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
619 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200620 0,
621 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200622#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200623#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200624
625#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200626#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200627 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
628 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200629 0,
630 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200631
632 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
633 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200634 0,
635 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
636#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200637#endif /* MBEDTLS_CIPHER_MODE_CBC */
638#if defined(MBEDTLS_CCM_C)
639 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
640 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200641 0,
642 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200643 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
644 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200645 MBEDTLS_CIPHERSUITE_SHORT_TAG,
646 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200647 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
648 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200649 0,
650 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200651 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
652 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200653 MBEDTLS_CIPHERSUITE_SHORT_TAG,
654 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200655#endif /* MBEDTLS_CCM_C */
656#endif /* MBEDTLS_AES_C */
657
658#if defined(MBEDTLS_CAMELLIA_C)
659#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200660#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200661 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
662 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200663 0,
664 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200665
666 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
667 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200668 0,
669 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
670#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200671
Jens Wiklander32b31802023-10-06 16:59:46 +0200672#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200673 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
674 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200675 0,
676 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200677
678 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
679 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200680 0,
681 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
682#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200683#endif /* MBEDTLS_CIPHER_MODE_CBC */
684#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200685#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200686 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
687 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200688 0,
689 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
690#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200691
Jens Wiklander32b31802023-10-06 16:59:46 +0200692#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200693 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
694 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200695 0,
696 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
697#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200698#endif /* MBEDTLS_GCM_C */
699#endif /* MBEDTLS_CAMELLIA_C */
700
Jens Wiklander817466c2018-05-22 13:49:31 +0200701#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
702
703#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
704#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200705#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA) && \
706 defined(MBEDTLS_GCM_C)
Jens Wiklander817466c2018-05-22 13:49:31 +0200707 { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
708 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200709 0,
710 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
711#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA && MBEDTLS_GCM_C */
Jens Wiklander817466c2018-05-22 13:49:31 +0200712
Jens Wiklander32b31802023-10-06 16:59:46 +0200713#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200714#if defined(MBEDTLS_GCM_C)
715 { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
716 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200717 0,
718 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200719#endif /* MBEDTLS_GCM_C */
720
721#if defined(MBEDTLS_CIPHER_MODE_CBC)
722 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
723 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200724 0,
725 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200726
727 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
728 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200729 0,
730 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200731#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200732#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200733
Jens Wiklander32b31802023-10-06 16:59:46 +0200734#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200735#if defined(MBEDTLS_CIPHER_MODE_CBC)
736 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
737 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200738 0,
739 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200740
741 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
742 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200743 0,
744 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200745#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200746#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200747#if defined(MBEDTLS_CCM_C)
748 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
749 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200750 0,
751 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200752 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
753 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200754 MBEDTLS_CIPHERSUITE_SHORT_TAG,
755 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200756 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
757 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200758 0,
759 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200760 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
761 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200762 MBEDTLS_CIPHERSUITE_SHORT_TAG,
763 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200764#endif /* MBEDTLS_CCM_C */
765#endif /* MBEDTLS_AES_C */
766
767#if defined(MBEDTLS_CAMELLIA_C)
768#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200769#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200770 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
771 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200772 0,
773 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200774
775 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
776 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200777 0,
778 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
779#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200780
Jens Wiklander32b31802023-10-06 16:59:46 +0200781#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200782 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
783 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200784 0,
785 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200786
787 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
788 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200789 0,
790 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
791#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200792#endif /* MBEDTLS_CIPHER_MODE_CBC */
793
794#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200795#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200796 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
797 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200798 0,
799 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
800#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200801
Jens Wiklander32b31802023-10-06 16:59:46 +0200802#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200803 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
804 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200805 0,
806 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
807#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200808#endif /* MBEDTLS_GCM_C */
809#endif /* MBEDTLS_CAMELLIA_C */
810
Jens Wiklander817466c2018-05-22 13:49:31 +0200811#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
812
813#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
814#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200815#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200816#if defined(MBEDTLS_CIPHER_MODE_CBC)
817 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
818 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200819 0,
820 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200821 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
822 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200823 0,
824 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200825#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200826#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
827#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200828#if defined(MBEDTLS_CIPHER_MODE_CBC)
829 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
830 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200831 0,
832 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200833#endif /* MBEDTLS_CIPHER_MODE_CBC */
834#if defined(MBEDTLS_GCM_C)
835 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
836 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200837 0,
838 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200839#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200840#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
841#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200842#if defined(MBEDTLS_CIPHER_MODE_CBC)
843 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
844 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200845 0,
846 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200847#endif /* MBEDTLS_CIPHER_MODE_CBC */
848#if defined(MBEDTLS_GCM_C)
849 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
850 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200851 0,
852 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200853#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200854#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200855#endif /* MBEDTLS_AES_C */
856
857#if defined(MBEDTLS_CAMELLIA_C)
858#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200859#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
860 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
861 "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200862 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200863 0,
864 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
865#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
866#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
867 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
868 "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200869 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200870 0,
871 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
872#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200873#endif /* MBEDTLS_CIPHER_MODE_CBC */
874
875#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200876#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
877 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
878 "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200879 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200880 0,
881 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
882#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
883#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
884 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
885 "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200886 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200887 0,
888 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
889#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200890#endif /* MBEDTLS_GCM_C */
891#endif /* MBEDTLS_CAMELLIA_C */
892
Jens Wiklander817466c2018-05-22 13:49:31 +0200893#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Jens Wiklander32b31802023-10-06 16:59:46 +0200894#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200895 { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
896 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200897 MBEDTLS_CIPHERSUITE_WEAK,
898 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
899#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200900#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
901#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
902
903#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
904#if defined(MBEDTLS_AES_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200905#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200906#if defined(MBEDTLS_CIPHER_MODE_CBC)
907 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
908 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200909 0,
910 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200911 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
912 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200913 0,
914 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200915#endif /* MBEDTLS_CIPHER_MODE_CBC */
Jens Wiklander32b31802023-10-06 16:59:46 +0200916#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
917#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200918#if defined(MBEDTLS_CIPHER_MODE_CBC)
919 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
920 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200921 0,
922 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200923#endif /* MBEDTLS_CIPHER_MODE_CBC */
924#if defined(MBEDTLS_GCM_C)
925 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
926 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200927 0,
928 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200929#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200930#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
931#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200932#if defined(MBEDTLS_CIPHER_MODE_CBC)
933 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
934 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200935 0,
936 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200937#endif /* MBEDTLS_CIPHER_MODE_CBC */
938#if defined(MBEDTLS_GCM_C)
939 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
940 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200941 0,
942 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +0200943#endif /* MBEDTLS_GCM_C */
Jens Wiklander32b31802023-10-06 16:59:46 +0200944#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200945#endif /* MBEDTLS_AES_C */
946
947#if defined(MBEDTLS_CAMELLIA_C)
948#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +0200949#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
950 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
951 "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200952 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200953 0,
954 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
955#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
956#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
957 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
958 "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200959 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200960 0,
961 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
962#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200963#endif /* MBEDTLS_CIPHER_MODE_CBC */
964
965#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200966#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
967 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
968 "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +0200969 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200970 0,
971 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
972#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
973#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
974 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
975 "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +0200976 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200977 0,
978 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
979#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200980#endif /* MBEDTLS_GCM_C */
981#endif /* MBEDTLS_CAMELLIA_C */
982
Jens Wiklander817466c2018-05-22 13:49:31 +0200983#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
Jens Wiklander32b31802023-10-06 16:59:46 +0200984#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200985 { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
986 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +0200987 MBEDTLS_CIPHERSUITE_WEAK,
988 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
989#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +0200990#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
991#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
992
993#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
994#if defined(MBEDTLS_AES_C)
995#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +0200996#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +0200997 { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
998 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +0200999 0,
1000 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1001#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001002
Jens Wiklander32b31802023-10-06 16:59:46 +02001003#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001004 { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
1005 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001006 0,
1007 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1008#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001009#endif /* MBEDTLS_GCM_C */
1010
1011#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001012#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001013 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
1014 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001015 0,
1016 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1017#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001018
Jens Wiklander32b31802023-10-06 16:59:46 +02001019#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001020 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
1021 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001022 0,
1023 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1024#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001025
Jens Wiklander32b31802023-10-06 16:59:46 +02001026#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001027 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
1028 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001029 0,
1030 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001031
1032 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
1033 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001034 0,
1035 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1036#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001037#endif /* MBEDTLS_CIPHER_MODE_CBC */
1038#if defined(MBEDTLS_CCM_C)
1039 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
1040 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001041 0,
1042 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001043 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
1044 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001045 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1046 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001047 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
1048 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001049 0,
1050 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001051 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
1052 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001053 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1054 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001055#endif /* MBEDTLS_CCM_C */
1056#endif /* MBEDTLS_AES_C */
1057
1058#if defined(MBEDTLS_CAMELLIA_C)
1059#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001060#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001061 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1062 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001063 0,
1064 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1065#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001066
Jens Wiklander32b31802023-10-06 16:59:46 +02001067#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001068 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1069 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001070 0,
1071 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1072#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001073#endif /* MBEDTLS_CIPHER_MODE_CBC */
1074
1075#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001076#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001077 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1078 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001079 0,
1080 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1081#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001082
Jens Wiklander32b31802023-10-06 16:59:46 +02001083#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001084 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1085 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001086 0,
1087 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1088#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001089#endif /* MBEDTLS_GCM_C */
1090#endif /* MBEDTLS_CAMELLIA_C */
1091
Jens Wiklander817466c2018-05-22 13:49:31 +02001092#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1093
1094#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1095#if defined(MBEDTLS_AES_C)
1096#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001097#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001098 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
1099 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001100 0,
1101 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1102#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001103
Jens Wiklander32b31802023-10-06 16:59:46 +02001104#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001105 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
1106 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001107 0,
1108 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1109#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001110#endif /* MBEDTLS_GCM_C */
1111
1112#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001113#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001114 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
1115 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001116 0,
1117 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1118#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001119
Jens Wiklander32b31802023-10-06 16:59:46 +02001120#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001121 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
1122 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001123 0,
1124 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1125#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001126
Jens Wiklander32b31802023-10-06 16:59:46 +02001127#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001128 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
1129 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001130 0,
1131 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001132
1133 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
1134 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001135 0,
1136 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1137#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001138#endif /* MBEDTLS_CIPHER_MODE_CBC */
1139#if defined(MBEDTLS_CCM_C)
1140 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
1141 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001142 0,
1143 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001144 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
1145 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001146 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1147 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001148 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
1149 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001150 0,
1151 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001152 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
1153 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001154 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1155 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001156#endif /* MBEDTLS_CCM_C */
1157#endif /* MBEDTLS_AES_C */
1158
1159#if defined(MBEDTLS_CAMELLIA_C)
1160#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001161#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001162 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1163 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001164 0,
1165 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1166#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001167
Jens Wiklander32b31802023-10-06 16:59:46 +02001168#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001169 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1170 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001171 0,
1172 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1173#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001174#endif /* MBEDTLS_CIPHER_MODE_CBC */
1175
1176#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001177#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001178 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1179 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001180 0,
1181 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1182#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001183
Jens Wiklander32b31802023-10-06 16:59:46 +02001184#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001185 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1186 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001187 0,
1188 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1189#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001190#endif /* MBEDTLS_GCM_C */
1191#endif /* MBEDTLS_CAMELLIA_C */
1192
Jens Wiklander817466c2018-05-22 13:49:31 +02001193#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1194
1195#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1196#if defined(MBEDTLS_AES_C)
1197
1198#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001199#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001200 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
1201 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001202 0,
1203 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1204#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001205
Jens Wiklander32b31802023-10-06 16:59:46 +02001206#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001207 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
1208 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001209 0,
1210 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1211#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001212
Jens Wiklander32b31802023-10-06 16:59:46 +02001213#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001214 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
1215 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001216 0,
1217 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001218
1219 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
1220 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001221 0,
1222 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1223#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001224#endif /* MBEDTLS_CIPHER_MODE_CBC */
1225#endif /* MBEDTLS_AES_C */
1226
1227#if defined(MBEDTLS_CAMELLIA_C)
1228#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001229#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
1230 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
1231 "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
Jens Wiklander817466c2018-05-22 13:49:31 +02001232 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001233 0,
1234 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1235#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001236
Jens Wiklander32b31802023-10-06 16:59:46 +02001237#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
1238 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
1239 "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
Jens Wiklander817466c2018-05-22 13:49:31 +02001240 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001241 0,
1242 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1243#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001244#endif /* MBEDTLS_CIPHER_MODE_CBC */
1245#endif /* MBEDTLS_CAMELLIA_C */
1246
Jens Wiklander817466c2018-05-22 13:49:31 +02001247#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1248
1249#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1250#if defined(MBEDTLS_AES_C)
1251#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001252#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001253 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
1254 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001255 0,
1256 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1257#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001258
Jens Wiklander32b31802023-10-06 16:59:46 +02001259#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001260 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
1261 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001262 0,
1263 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1264#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001265#endif /* MBEDTLS_GCM_C */
1266
1267#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001268#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001269 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
1270 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001271 0,
1272 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1273#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001274
Jens Wiklander32b31802023-10-06 16:59:46 +02001275#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001276 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
1277 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001278 0,
1279 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1280#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001281
Jens Wiklander32b31802023-10-06 16:59:46 +02001282#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001283 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
1284 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001285 0,
1286 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001287
1288 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
1289 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, 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 },
1292#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001293#endif /* MBEDTLS_CIPHER_MODE_CBC */
1294#endif /* MBEDTLS_AES_C */
1295
1296#if defined(MBEDTLS_CAMELLIA_C)
1297#if defined(MBEDTLS_CIPHER_MODE_CBC)
Jens Wiklander32b31802023-10-06 16:59:46 +02001298#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001299 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
1300 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001301 0,
1302 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1303#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001304
Jens Wiklander32b31802023-10-06 16:59:46 +02001305#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001306 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
1307 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001308 0,
1309 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1310#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001311#endif /* MBEDTLS_CIPHER_MODE_CBC */
1312
1313#if defined(MBEDTLS_GCM_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001314#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001315 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
1316 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001317 0,
1318 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1319#endif /* MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001320
Jens Wiklander32b31802023-10-06 16:59:46 +02001321#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001322 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
1323 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001324 0,
1325 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1326#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001327#endif /* MBEDTLS_GCM_C */
1328#endif /* MBEDTLS_CAMELLIA_C */
1329
Jens Wiklander817466c2018-05-22 13:49:31 +02001330#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1331
1332#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
1333#if defined(MBEDTLS_AES_C)
1334#if defined(MBEDTLS_CCM_C)
1335 { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
1336 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
Jens Wiklander32b31802023-10-06 16:59:46 +02001337 MBEDTLS_CIPHERSUITE_SHORT_TAG,
1338 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001339#endif /* MBEDTLS_CCM_C */
1340#endif /* MBEDTLS_AES_C */
1341#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
1342
Jens Wiklander817466c2018-05-22 13:49:31 +02001343#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
1344#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02001345#if defined(MBEDTLS_HAS_ALG_MD5_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001346 { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
1347 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001348 MBEDTLS_CIPHERSUITE_WEAK,
1349 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001350#endif
1351
Jens Wiklander32b31802023-10-06 16:59:46 +02001352#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001353 { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
1354 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001355 MBEDTLS_CIPHERSUITE_WEAK,
1356 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001357#endif
1358
Jens Wiklander32b31802023-10-06 16:59:46 +02001359#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001360 { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
1361 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001362 MBEDTLS_CIPHERSUITE_WEAK,
1363 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001364#endif
1365#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1366
1367#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02001368#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001369 { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
1370 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001371 MBEDTLS_CIPHERSUITE_WEAK,
1372 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1373#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001374
Jens Wiklander32b31802023-10-06 16:59:46 +02001375#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001376 { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
1377 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001378 MBEDTLS_CIPHERSUITE_WEAK,
1379 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001380#endif
1381
Jens Wiklander32b31802023-10-06 16:59:46 +02001382#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001383 { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
1384 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001385 MBEDTLS_CIPHERSUITE_WEAK,
1386 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1387#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001388#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1389
1390#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02001391#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001392 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
1393 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001394 MBEDTLS_CIPHERSUITE_WEAK,
1395 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1396#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001397
Jens Wiklander32b31802023-10-06 16:59:46 +02001398#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001399 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
1400 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001401 MBEDTLS_CIPHERSUITE_WEAK,
1402 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001403#endif
1404
Jens Wiklander32b31802023-10-06 16:59:46 +02001405#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001406 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
1407 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001408 MBEDTLS_CIPHERSUITE_WEAK,
1409 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1410#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001411#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1412
1413#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02001414#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001415 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
1416 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001417 MBEDTLS_CIPHERSUITE_WEAK,
1418 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1419#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001420
Jens Wiklander32b31802023-10-06 16:59:46 +02001421#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001422 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
1423 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001424 MBEDTLS_CIPHERSUITE_WEAK,
1425 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001426#endif
1427
Jens Wiklander32b31802023-10-06 16:59:46 +02001428#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001429 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
1430 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001431 MBEDTLS_CIPHERSUITE_WEAK,
1432 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1433#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001434#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1435
1436#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02001437#if defined(MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001438 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
1439 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001440 MBEDTLS_CIPHERSUITE_WEAK,
1441 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1442#endif /* MBEDTLS_HAS_ALG_SHA_1_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001443
Jens Wiklander32b31802023-10-06 16:59:46 +02001444#if defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001445 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
1446 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001447 MBEDTLS_CIPHERSUITE_WEAK,
1448 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander817466c2018-05-22 13:49:31 +02001449#endif
1450
Jens Wiklander32b31802023-10-06 16:59:46 +02001451#if defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA)
Jens Wiklander817466c2018-05-22 13:49:31 +02001452 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
1453 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001454 MBEDTLS_CIPHERSUITE_WEAK,
1455 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
1456#endif /* MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA */
Jens Wiklander817466c2018-05-22 13:49:31 +02001457#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1458#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
1459
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001460#if defined(MBEDTLS_ARIA_C)
1461
1462#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
1463
Jens Wiklander32b31802023-10-06 16:59:46 +02001464#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001465 { MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001466 "TLS-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001467 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001468 0,
1469 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001470#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001471#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1472 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001473 { MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001474 "TLS-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001475 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001476 0,
1477 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001478#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001479#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001480 { MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001481 "TLS-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001482 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001483 0,
1484 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001485#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001486#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1487 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001488 { MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001489 "TLS-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001490 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001491 0,
1492 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001493#endif
1494
1495#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
1496
1497#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
1498
Jens Wiklander32b31802023-10-06 16:59:46 +02001499#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001500 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001501 "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001502 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001503 0,
1504 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001505#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001506#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1507 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001508 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001509 "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001510 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001511 0,
1512 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001513#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001514#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001515 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001516 "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001517 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001518 0,
1519 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001520#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001521#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1522 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001523 { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001524 "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001525 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001526 0,
1527 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001528#endif
1529
1530#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
1531
1532#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
1533
Jens Wiklander32b31802023-10-06 16:59:46 +02001534#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001535 { MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001536 "TLS-PSK-WITH-ARIA-256-GCM-SHA384",
1537 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
1538 0,
1539 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001540#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001541#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1542 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001543 { MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001544 "TLS-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001545 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001546 0,
1547 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001548#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001549#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001550 { MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001551 "TLS-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001552 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001553 0,
1554 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001555#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001556#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1557 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001558 { MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001559 "TLS-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001560 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001561 0,
1562 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001563#endif
1564
1565#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
1566
1567#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
1568
Jens Wiklander32b31802023-10-06 16:59:46 +02001569#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001570 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001571 "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001572 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001573 0,
1574 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001575#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001576#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1577 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001578 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001579 "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001580 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001581 0,
1582 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001583#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001584#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001585 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001586 "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001587 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001588 0,
1589 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001590#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001591#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1592 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001593 { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001594 "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001595 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001596 0,
1597 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001598#endif
1599
1600#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
1601
1602#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
1603
Jens Wiklander32b31802023-10-06 16:59:46 +02001604#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001605 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001606 "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001607 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001608 0,
1609 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001610#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001611#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1612 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001613 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001614 "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001615 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001616 0,
1617 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001618#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001619#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001620 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001621 "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001622 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001623 0,
1624 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001625#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001626#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1627 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001628 { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001629 "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001630 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001631 0,
1632 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001633#endif
1634
1635#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
1636
1637#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
1638
Jens Wiklander32b31802023-10-06 16:59:46 +02001639#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1640 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001641 { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001642 "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001643 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001644 0,
1645 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001646#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001647#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1648 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001649 { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001650 "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001651 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001652 0,
1653 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001654#endif
1655
1656#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
1657
1658#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
1659
Jens Wiklander32b31802023-10-06 16:59:46 +02001660#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001661 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001662 "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001663 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001664 0,
1665 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001666#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001667#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1668 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001669 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001670 "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001671 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001672 0,
1673 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001674#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001675#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001676 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001677 "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001678 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001679 0,
1680 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001681#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001682#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1683 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001684 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001685 "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001686 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001687 0,
1688 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001689#endif
1690
1691#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
1692
1693#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
1694
Jens Wiklander32b31802023-10-06 16:59:46 +02001695#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001696 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001697 "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001698 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001699 0,
1700 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001701#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001702#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1703 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001704 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001705 "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001706 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001707 0,
1708 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001709#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001710#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001711 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001712 "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001713 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001714 0,
1715 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001716#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001717#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1718 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001719 { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001720 "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001721 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001722 0,
1723 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001724#endif
1725
1726#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
1727
1728#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
1729
Jens Wiklander32b31802023-10-06 16:59:46 +02001730#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001731 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001732 "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001733 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001734 0,
1735 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001736#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001737#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1738 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001739 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001740 "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001741 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001742 0,
1743 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001744#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001745#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001746 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001747 "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001748 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001749 0,
1750 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001751#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001752#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1753 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001754 { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001755 "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001756 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
Jens Wiklander32b31802023-10-06 16:59:46 +02001757 0,
1758 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001759#endif
1760
1761#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
1762
1763#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
1764
Jens Wiklander32b31802023-10-06 16:59:46 +02001765#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001766 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001767 "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001768 MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001769 0,
1770 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001771#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001772#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1773 defined(MBEDTLS_HAS_ALG_SHA_384_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001774 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
Jens Wiklander32b31802023-10-06 16:59:46 +02001775 "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001776 MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001777 0,
1778 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001779#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001780#if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001781 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001782 "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001783 MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001784 0,
1785 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001786#endif
Jens Wiklander32b31802023-10-06 16:59:46 +02001787#if (defined(MBEDTLS_CIPHER_MODE_CBC) && \
1788 defined(MBEDTLS_HAS_ALG_SHA_256_VIA_MD_OR_PSA_BASED_ON_USE_PSA))
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001789 { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
Jens Wiklander32b31802023-10-06 16:59:46 +02001790 "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256",
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001791 MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
Jens Wiklander32b31802023-10-06 16:59:46 +02001792 0,
1793 MBEDTLS_SSL_VERSION_TLS1_2, MBEDTLS_SSL_VERSION_TLS1_2 },
Jens Wiklander3d3b0592019-03-20 15:30:29 +01001794#endif
1795
1796#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
1797
1798#endif /* MBEDTLS_ARIA_C */
1799
1800
Jens Wiklander817466c2018-05-22 13:49:31 +02001801 { 0, "",
1802 MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE,
Jens Wiklander32b31802023-10-06 16:59:46 +02001803 0, 0, 0 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001804};
1805
1806#if defined(MBEDTLS_SSL_CIPHERSUITES)
Jens Wiklander32b31802023-10-06 16:59:46 +02001807const int *mbedtls_ssl_list_ciphersuites(void)
Jens Wiklander817466c2018-05-22 13:49:31 +02001808{
Jens Wiklander32b31802023-10-06 16:59:46 +02001809 return ciphersuite_preference;
Jens Wiklander817466c2018-05-22 13:49:31 +02001810}
1811#else
Jens Wiklander32b31802023-10-06 16:59:46 +02001812#define MAX_CIPHERSUITES sizeof(ciphersuite_definitions) / \
1813 sizeof(ciphersuite_definitions[0])
Jens Wiklander817466c2018-05-22 13:49:31 +02001814static int supported_ciphersuites[MAX_CIPHERSUITES];
1815static int supported_init = 0;
1816
Jerome Forissier039e02d2022-08-09 17:10:15 +02001817MBEDTLS_CHECK_RETURN_CRITICAL
Jens Wiklander32b31802023-10-06 16:59:46 +02001818static int ciphersuite_is_removed(const mbedtls_ssl_ciphersuite_t *cs_info)
Jerome Forissier5b25c762020-04-07 11:18:49 +02001819{
Jens Wiklander32b31802023-10-06 16:59:46 +02001820 (void) cs_info;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001821
Jens Wiklander32b31802023-10-06 16:59:46 +02001822 return 0;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001823}
1824
Jens Wiklander32b31802023-10-06 16:59:46 +02001825const int *mbedtls_ssl_list_ciphersuites(void)
Jens Wiklander817466c2018-05-22 13:49:31 +02001826{
1827 /*
1828 * On initial call filter out all ciphersuites not supported by current
1829 * build based on presence in the ciphersuite_definitions.
1830 */
Jens Wiklander32b31802023-10-06 16:59:46 +02001831 if (supported_init == 0) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001832 const int *p;
1833 int *q;
1834
Jens Wiklander32b31802023-10-06 16:59:46 +02001835 for (p = ciphersuite_preference, q = supported_ciphersuites;
Jens Wiklander817466c2018-05-22 13:49:31 +02001836 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
Jens Wiklander32b31802023-10-06 16:59:46 +02001837 p++) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001838 const mbedtls_ssl_ciphersuite_t *cs_info;
Jens Wiklander32b31802023-10-06 16:59:46 +02001839 if ((cs_info = mbedtls_ssl_ciphersuite_from_id(*p)) != NULL &&
1840 !ciphersuite_is_removed(cs_info)) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001841 *(q++) = *p;
Jerome Forissier5b25c762020-04-07 11:18:49 +02001842 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001843 }
1844 *q = 0;
1845
1846 supported_init = 1;
1847 }
1848
Jens Wiklander32b31802023-10-06 16:59:46 +02001849 return supported_ciphersuites;
Jens Wiklander817466c2018-05-22 13:49:31 +02001850}
1851#endif /* MBEDTLS_SSL_CIPHERSUITES */
1852
1853const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(
Jens Wiklander32b31802023-10-06 16:59:46 +02001854 const char *ciphersuite_name)
Jens Wiklander817466c2018-05-22 13:49:31 +02001855{
1856 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1857
Jens Wiklander32b31802023-10-06 16:59:46 +02001858 if (NULL == ciphersuite_name) {
1859 return NULL;
1860 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001861
Jens Wiklander32b31802023-10-06 16:59:46 +02001862 while (cur->id != 0) {
1863 if (0 == strcmp(cur->name, ciphersuite_name)) {
1864 return cur;
1865 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001866
1867 cur++;
1868 }
1869
Jens Wiklander32b31802023-10-06 16:59:46 +02001870 return NULL;
Jens Wiklander817466c2018-05-22 13:49:31 +02001871}
1872
Jens Wiklander32b31802023-10-06 16:59:46 +02001873const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id(int ciphersuite)
Jens Wiklander817466c2018-05-22 13:49:31 +02001874{
1875 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
1876
Jens Wiklander32b31802023-10-06 16:59:46 +02001877 while (cur->id != 0) {
1878 if (cur->id == ciphersuite) {
1879 return cur;
1880 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001881
1882 cur++;
1883 }
1884
Jens Wiklander32b31802023-10-06 16:59:46 +02001885 return NULL;
Jens Wiklander817466c2018-05-22 13:49:31 +02001886}
1887
Jens Wiklander32b31802023-10-06 16:59:46 +02001888const char *mbedtls_ssl_get_ciphersuite_name(const int ciphersuite_id)
Jens Wiklander817466c2018-05-22 13:49:31 +02001889{
1890 const mbedtls_ssl_ciphersuite_t *cur;
1891
Jens Wiklander32b31802023-10-06 16:59:46 +02001892 cur = mbedtls_ssl_ciphersuite_from_id(ciphersuite_id);
Jens Wiklander817466c2018-05-22 13:49:31 +02001893
Jens Wiklander32b31802023-10-06 16:59:46 +02001894 if (cur == NULL) {
1895 return "unknown";
1896 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001897
Jens Wiklander32b31802023-10-06 16:59:46 +02001898 return cur->name;
Jens Wiklander817466c2018-05-22 13:49:31 +02001899}
1900
Jens Wiklander32b31802023-10-06 16:59:46 +02001901int mbedtls_ssl_get_ciphersuite_id(const char *ciphersuite_name)
Jens Wiklander817466c2018-05-22 13:49:31 +02001902{
1903 const mbedtls_ssl_ciphersuite_t *cur;
1904
Jens Wiklander32b31802023-10-06 16:59:46 +02001905 cur = mbedtls_ssl_ciphersuite_from_string(ciphersuite_name);
Jens Wiklander817466c2018-05-22 13:49:31 +02001906
Jens Wiklander32b31802023-10-06 16:59:46 +02001907 if (cur == NULL) {
1908 return 0;
1909 }
Jens Wiklander817466c2018-05-22 13:49:31 +02001910
Jens Wiklander32b31802023-10-06 16:59:46 +02001911 return cur->id;
1912}
1913
1914size_t mbedtls_ssl_ciphersuite_get_cipher_key_bitlen(const mbedtls_ssl_ciphersuite_t *info)
1915{
1916#if defined(MBEDTLS_USE_PSA_CRYPTO)
1917 psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
1918 psa_key_type_t key_type;
1919 psa_algorithm_t alg;
1920 size_t key_bits;
1921
1922 status = mbedtls_ssl_cipher_to_psa(info->cipher,
1923 info->flags & MBEDTLS_CIPHERSUITE_SHORT_TAG ? 8 : 16,
1924 &alg, &key_type, &key_bits);
1925
1926 if (status != PSA_SUCCESS) {
1927 return 0;
1928 }
1929
1930 return key_bits;
1931#else
1932 const mbedtls_cipher_info_t * const cipher_info =
1933 mbedtls_cipher_info_from_type(info->cipher);
1934
1935 return mbedtls_cipher_info_get_key_bitlen(cipher_info);
1936#endif /* MBEDTLS_USE_PSA_CRYPTO */
Jens Wiklander817466c2018-05-22 13:49:31 +02001937}
1938
1939#if defined(MBEDTLS_PK_C)
Jens Wiklander32b31802023-10-06 16:59:46 +02001940mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02001941{
Jens Wiklander32b31802023-10-06 16:59:46 +02001942 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001943 case MBEDTLS_KEY_EXCHANGE_RSA:
1944 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1945 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1946 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
Jens Wiklander32b31802023-10-06 16:59:46 +02001947 return MBEDTLS_PK_RSA;
Jens Wiklander817466c2018-05-22 13:49:31 +02001948
1949 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001950 return MBEDTLS_PK_ECDSA;
Jens Wiklander817466c2018-05-22 13:49:31 +02001951
1952 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1953 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001954 return MBEDTLS_PK_ECKEY;
Jens Wiklander817466c2018-05-22 13:49:31 +02001955
1956 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02001957 return MBEDTLS_PK_NONE;
Jens Wiklander817466c2018-05-22 13:49:31 +02001958 }
1959}
1960
Jens Wiklander32b31802023-10-06 16:59:46 +02001961#if defined(MBEDTLS_USE_PSA_CRYPTO)
1962psa_algorithm_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_alg(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02001963{
Jens Wiklander32b31802023-10-06 16:59:46 +02001964 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02001965 case MBEDTLS_KEY_EXCHANGE_RSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001966 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1967 return PSA_ALG_RSA_PKCS1V15_CRYPT;
Jens Wiklander817466c2018-05-22 13:49:31 +02001968 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1969 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001970 return PSA_ALG_RSA_PKCS1V15_SIGN(
1971 mbedtls_hash_info_psa_from_md(info->mac));
Jens Wiklander817466c2018-05-22 13:49:31 +02001972
1973 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
Jens Wiklander32b31802023-10-06 16:59:46 +02001974 return PSA_ALG_ECDSA(mbedtls_hash_info_psa_from_md(info->mac));
1975
1976 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1977 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1978 return PSA_ALG_ECDH;
Jens Wiklander817466c2018-05-22 13:49:31 +02001979
1980 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02001981 return PSA_ALG_NONE;
1982 }
1983}
1984
1985psa_key_usage_t mbedtls_ssl_get_ciphersuite_sig_pk_psa_usage(const mbedtls_ssl_ciphersuite_t *info)
1986{
1987 switch (info->key_exchange) {
1988 case MBEDTLS_KEY_EXCHANGE_RSA:
1989 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
1990 return PSA_KEY_USAGE_DECRYPT;
1991 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
1992 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
1993 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
1994 return PSA_KEY_USAGE_SIGN_HASH;
1995
1996 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
1997 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
1998 return PSA_KEY_USAGE_DERIVE;
1999
2000 default:
2001 return 0;
2002 }
2003}
2004#endif /* MBEDTLS_USE_PSA_CRYPTO */
2005
2006mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg(const mbedtls_ssl_ciphersuite_t *info)
2007{
2008 switch (info->key_exchange) {
2009 case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
2010 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
2011 return MBEDTLS_PK_RSA;
2012
2013 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
2014 return MBEDTLS_PK_ECDSA;
2015
2016 default:
2017 return MBEDTLS_PK_NONE;
Jens Wiklander817466c2018-05-22 13:49:31 +02002018 }
2019}
2020
2021#endif /* MBEDTLS_PK_C */
2022
Jens Wiklander3d3b0592019-03-20 15:30:29 +01002023#if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
2024 defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02002025int mbedtls_ssl_ciphersuite_uses_ec(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02002026{
Jens Wiklander32b31802023-10-06 16:59:46 +02002027 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02002028 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
2029 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
2030 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
2031 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
2032 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
Jens Wiklander3d3b0592019-03-20 15:30:29 +01002033 case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
Jens Wiklander32b31802023-10-06 16:59:46 +02002034 return 1;
Jens Wiklander817466c2018-05-22 13:49:31 +02002035
2036 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02002037 return 0;
Jens Wiklander817466c2018-05-22 13:49:31 +02002038 }
2039}
Jens Wiklander3d3b0592019-03-20 15:30:29 +01002040#endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED*/
Jens Wiklander817466c2018-05-22 13:49:31 +02002041
Jerome Forissier11fa71b2020-04-20 17:17:56 +02002042#if defined(MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED)
Jens Wiklander32b31802023-10-06 16:59:46 +02002043int mbedtls_ssl_ciphersuite_uses_psk(const mbedtls_ssl_ciphersuite_t *info)
Jens Wiklander817466c2018-05-22 13:49:31 +02002044{
Jens Wiklander32b31802023-10-06 16:59:46 +02002045 switch (info->key_exchange) {
Jens Wiklander817466c2018-05-22 13:49:31 +02002046 case MBEDTLS_KEY_EXCHANGE_PSK:
2047 case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
2048 case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
2049 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
Jens Wiklander32b31802023-10-06 16:59:46 +02002050 return 1;
Jens Wiklander817466c2018-05-22 13:49:31 +02002051
2052 default:
Jens Wiklander32b31802023-10-06 16:59:46 +02002053 return 0;
Jens Wiklander817466c2018-05-22 13:49:31 +02002054 }
2055}
Jerome Forissier11fa71b2020-04-20 17:17:56 +02002056#endif /* MBEDTLS_KEY_EXCHANGE_SOME_PSK_ENABLED */
Jens Wiklander817466c2018-05-22 13:49:31 +02002057
2058#endif /* MBEDTLS_SSL_TLS_C */