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