takashi kadono / Mbed OS Nucleo446_SSD1331

Dependencies:   ssd1331

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ssl_ciphersuites.c Source File

ssl_ciphersuites.c

Go to the documentation of this file.
00001 /**
00002  * \file ssl_ciphersuites.c
00003  *
00004  * \brief SSL ciphersuites for mbed TLS
00005  *
00006  *  Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
00007  *  SPDX-License-Identifier: Apache-2.0
00008  *
00009  *  Licensed under the Apache License, Version 2.0 (the "License"); you may
00010  *  not use this file except in compliance with the License.
00011  *  You may obtain a copy of the License at
00012  *
00013  *  http://www.apache.org/licenses/LICENSE-2.0
00014  *
00015  *  Unless required by applicable law or agreed to in writing, software
00016  *  distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00017  *  WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00018  *  See the License for the specific language governing permissions and
00019  *  limitations under the License.
00020  *
00021  *  This file is part of mbed TLS (https://tls.mbed.org)
00022  */
00023 
00024 #if !defined(MBEDTLS_CONFIG_FILE)
00025 #include "mbedtls/config.h"
00026 #else
00027 #include MBEDTLS_CONFIG_FILE
00028 #endif
00029 
00030 #if defined(MBEDTLS_SSL_TLS_C)
00031 
00032 #if defined(MBEDTLS_PLATFORM_C)
00033 #include "mbedtls/platform.h"
00034 #else
00035 #include <stdlib.h>
00036 #endif
00037 
00038 #include "mbedtls/ssl_ciphersuites.h"
00039 #include "mbedtls/ssl.h"
00040 
00041 #include <string.h>
00042 
00043 /*
00044  * Ordered from most preferred to least preferred in terms of security.
00045  *
00046  * Current rule (except rc4, weak and null which come last):
00047  * 1. By key exchange:
00048  *    Forward-secure non-PSK > forward-secure PSK > ECJPAKE > other non-PSK > other PSK
00049  * 2. By key length and cipher:
00050  *    ChaCha > AES-256 > Camellia-256 > ARIA-256 > AES-128 > Camellia-128 > ARIA-128 > 3DES
00051  * 3. By cipher mode when relevant GCM > CCM > CBC > CCM_8
00052  * 4. By hash function used when relevant
00053  * 5. By key exchange/auth again: EC > non-EC
00054  */
00055 static const int ciphersuite_preference[] =
00056 {
00057 #if defined(MBEDTLS_SSL_CIPHERSUITES)
00058     MBEDTLS_SSL_CIPHERSUITES,
00059 #else
00060     /* Chacha-Poly ephemeral suites */
00061     MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
00062     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
00063     MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
00064 
00065     /* All AES-256 ephemeral suites */
00066     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
00067     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
00068     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
00069     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM,
00070     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM,
00071     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,
00072     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
00073     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,
00074     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,
00075     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
00076     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA,
00077     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,
00078     MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8,
00079 
00080     /* All CAMELLIA-256 ephemeral suites */
00081     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
00082     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
00083     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,
00084     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
00085     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,
00086     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,
00087     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,
00088 
00089     /* All ARIA-256 ephemeral suites */
00090     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
00091     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
00092     MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
00093     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
00094     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
00095     MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
00096 
00097     /* All AES-128 ephemeral suites */
00098     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
00099     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,
00100     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,
00101     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM,
00102     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM,
00103     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,
00104     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
00105     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,
00106     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
00107     MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
00108     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
00109     MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,
00110     MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8,
00111 
00112     /* All CAMELLIA-128 ephemeral suites */
00113     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
00114     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
00115     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,
00116     MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
00117     MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
00118     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,
00119     MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,
00120 
00121     /* All ARIA-128 ephemeral suites */
00122     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
00123     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
00124     MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
00125     MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
00126     MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
00127     MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
00128 
00129     /* All remaining >= 128-bit ephemeral suites */
00130     MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
00131     MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
00132     MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
00133 
00134     /* The PSK ephemeral suites */
00135     MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
00136     MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
00137     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,
00138     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM,
00139     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,
00140     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,
00141     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,
00142     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA,
00143     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,
00144     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
00145     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,
00146     MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8,
00147     MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
00148     MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
00149     MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
00150 
00151     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,
00152     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM,
00153     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,
00154     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,
00155     MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,
00156     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA,
00157     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,
00158     MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
00159     MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,
00160     MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8,
00161     MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
00162     MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
00163     MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
00164 
00165     MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,
00166     MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,
00167 
00168     /* The ECJPAKE suite */
00169     MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8,
00170 
00171     /* All AES-256 suites */
00172     MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384,
00173     MBEDTLS_TLS_RSA_WITH_AES_256_CCM,
00174     MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256,
00175     MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA,
00176     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
00177     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
00178     MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
00179     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,
00180     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,
00181     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,
00182     MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8,
00183 
00184     /* All CAMELLIA-256 suites */
00185     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,
00186     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,
00187     MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,
00188     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,
00189     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,
00190     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,
00191     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,
00192 
00193     /* All ARIA-256 suites */
00194     MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
00195     MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
00196     MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
00197     MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
00198     MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
00199     MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
00200 
00201     /* All AES-128 suites */
00202     MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256,
00203     MBEDTLS_TLS_RSA_WITH_AES_128_CCM,
00204     MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256,
00205     MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA,
00206     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
00207     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
00208     MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
00209     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,
00210     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,
00211     MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
00212     MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8,
00213 
00214     /* All CAMELLIA-128 suites */
00215     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,
00216     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,
00217     MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,
00218     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,
00219     MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,
00220     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,
00221     MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,
00222 
00223     /* All ARIA-128 suites */
00224     MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
00225     MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
00226     MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
00227     MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
00228     MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
00229     MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
00230 
00231     /* All remaining >= 128-bit suites */
00232     MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA,
00233     MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
00234     MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
00235 
00236     /* The RSA PSK suites */
00237     MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
00238     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,
00239     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,
00240     MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA,
00241     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,
00242     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,
00243     MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
00244     MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
00245 
00246     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,
00247     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,
00248     MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA,
00249     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,
00250     MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,
00251     MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
00252     MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
00253 
00254     MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,
00255 
00256     /* The PSK suites */
00257     MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
00258     MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384,
00259     MBEDTLS_TLS_PSK_WITH_AES_256_CCM,
00260     MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384,
00261     MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA,
00262     MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,
00263     MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,
00264     MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8,
00265     MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
00266     MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
00267 
00268     MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256,
00269     MBEDTLS_TLS_PSK_WITH_AES_128_CCM,
00270     MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256,
00271     MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA,
00272     MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,
00273     MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,
00274     MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8,
00275     MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
00276     MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
00277 
00278     MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA,
00279 
00280     /* RC4 suites */
00281     MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
00282     MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA,
00283     MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA,
00284     MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA,
00285     MBEDTLS_TLS_RSA_WITH_RC4_128_SHA,
00286     MBEDTLS_TLS_RSA_WITH_RC4_128_MD5,
00287     MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA,
00288     MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
00289     MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA,
00290     MBEDTLS_TLS_PSK_WITH_RC4_128_SHA,
00291 
00292     /* Weak suites */
00293     MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA,
00294     MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA,
00295 
00296     /* NULL suites */
00297     MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA,
00298     MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA,
00299     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384,
00300     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256,
00301     MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA,
00302     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384,
00303     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256,
00304     MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA,
00305 
00306     MBEDTLS_TLS_RSA_WITH_NULL_SHA256,
00307     MBEDTLS_TLS_RSA_WITH_NULL_SHA,
00308     MBEDTLS_TLS_RSA_WITH_NULL_MD5,
00309     MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA,
00310     MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA,
00311     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384,
00312     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256,
00313     MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA,
00314     MBEDTLS_TLS_PSK_WITH_NULL_SHA384,
00315     MBEDTLS_TLS_PSK_WITH_NULL_SHA256,
00316     MBEDTLS_TLS_PSK_WITH_NULL_SHA,
00317 
00318 #endif /* MBEDTLS_SSL_CIPHERSUITES */
00319     0
00320 };
00321 
00322 static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] =
00323 {
00324 #if defined(MBEDTLS_CHACHAPOLY_C) && \
00325     defined(MBEDTLS_SHA256_C) && \
00326     defined(MBEDTLS_SSL_PROTO_TLS1_2)
00327 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
00328     { MBEDTLS_TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
00329       "TLS-ECDHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
00330       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00331       MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00332       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00333       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00334       0 },
00335 #endif
00336 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
00337     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
00338       "TLS-ECDHE-ECDSA-WITH-CHACHA20-POLY1305-SHA256",
00339       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00340       MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00341       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00342       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00343       0 },
00344 #endif
00345 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
00346     { MBEDTLS_TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
00347       "TLS-DHE-RSA-WITH-CHACHA20-POLY1305-SHA256",
00348       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00349       MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00350       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00351       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00352       0 },
00353 #endif
00354 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
00355     { MBEDTLS_TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,
00356       "TLS-PSK-WITH-CHACHA20-POLY1305-SHA256",
00357       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00358       MBEDTLS_KEY_EXCHANGE_PSK,
00359       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00360       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00361       0 },
00362 #endif
00363 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
00364     { MBEDTLS_TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
00365       "TLS-ECDHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
00366       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00367       MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
00368       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00369       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00370       0 },
00371 #endif
00372 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
00373     { MBEDTLS_TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,
00374       "TLS-DHE-PSK-WITH-CHACHA20-POLY1305-SHA256",
00375       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00376       MBEDTLS_KEY_EXCHANGE_DHE_PSK,
00377       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00378       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00379       0 },
00380 #endif
00381 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
00382     { MBEDTLS_TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,
00383       "TLS-RSA-PSK-WITH-CHACHA20-POLY1305-SHA256",
00384       MBEDTLS_CIPHER_CHACHA20_POLY1305, MBEDTLS_MD_SHA256,
00385       MBEDTLS_KEY_EXCHANGE_RSA_PSK,
00386       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00387       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00388       0 },
00389 #endif
00390 #endif /* MBEDTLS_CHACHAPOLY_C &&
00391           MBEDTLS_SHA256_C &&
00392           MBEDTLS_SSL_PROTO_TLS1_2 */
00393 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
00394 #if defined(MBEDTLS_AES_C)
00395 #if defined(MBEDTLS_SHA1_C)
00396 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00397     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA",
00398       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00399       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00400       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00401       0 },
00402     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA",
00403       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00404       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00405       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00406       0 },
00407 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00408 #endif /* MBEDTLS_SHA1_C */
00409 #if defined(MBEDTLS_SHA256_C)
00410 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00411     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256",
00412       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00413       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00414       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00415       0 },
00416 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00417 #if defined(MBEDTLS_GCM_C)
00418     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256",
00419       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00420       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00421       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00422       0 },
00423 #endif /* MBEDTLS_GCM_C */
00424 #endif /* MBEDTLS_SHA256_C */
00425 #if defined(MBEDTLS_SHA512_C)
00426 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00427     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384",
00428       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00429       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00430       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00431       0 },
00432 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00433 #if defined(MBEDTLS_GCM_C)
00434     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384",
00435       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00436       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00437       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00438       0 },
00439 #endif /* MBEDTLS_GCM_C */
00440 #endif /* MBEDTLS_SHA512_C */
00441 #if defined(MBEDTLS_CCM_C)
00442     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM",
00443       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00444       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00445       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00446       0 },
00447     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8",
00448       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00449       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00450       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00451       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00452     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM",
00453       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00454       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00455       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00456       0 },
00457     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8",
00458       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00459       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00460       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00461       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00462 #endif /* MBEDTLS_CCM_C */
00463 #endif /* MBEDTLS_AES_C */
00464 
00465 #if defined(MBEDTLS_CAMELLIA_C)
00466 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00467 #if defined(MBEDTLS_SHA256_C)
00468     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
00469       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00470       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00471       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00472       0 },
00473 #endif /* MBEDTLS_SHA256_C */
00474 #if defined(MBEDTLS_SHA512_C)
00475     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
00476       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00477       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00478       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00479       0 },
00480 #endif /* MBEDTLS_SHA512_C */
00481 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00482 
00483 #if defined(MBEDTLS_GCM_C)
00484 #if defined(MBEDTLS_SHA256_C)
00485     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
00486       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00487       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00488       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00489       0 },
00490 #endif /* MBEDTLS_SHA256_C */
00491 #if defined(MBEDTLS_SHA512_C)
00492     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
00493       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00494       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00495       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00496       0 },
00497 #endif /* MBEDTLS_SHA512_C */
00498 #endif /* MBEDTLS_GCM_C */
00499 #endif /* MBEDTLS_CAMELLIA_C */
00500 
00501 #if defined(MBEDTLS_DES_C)
00502 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00503 #if defined(MBEDTLS_SHA1_C)
00504     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA",
00505       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00506       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00507       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00508       0 },
00509 #endif /* MBEDTLS_SHA1_C */
00510 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00511 #endif /* MBEDTLS_DES_C */
00512 
00513 #if defined(MBEDTLS_ARC4_C)
00514 #if defined(MBEDTLS_SHA1_C)
00515     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA",
00516       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00517       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00518       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00519       MBEDTLS_CIPHERSUITE_NODTLS },
00520 #endif /* MBEDTLS_SHA1_C */
00521 #endif /* MBEDTLS_ARC4_C */
00522 
00523 #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
00524 #if defined(MBEDTLS_SHA1_C)
00525     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA",
00526       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
00527       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00528       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00529       MBEDTLS_CIPHERSUITE_WEAK },
00530 #endif /* MBEDTLS_SHA1_C */
00531 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
00532 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
00533 
00534 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
00535 #if defined(MBEDTLS_AES_C)
00536 #if defined(MBEDTLS_SHA1_C)
00537 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00538     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA",
00539       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00540       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00541       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00542       0 },
00543     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA",
00544       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00545       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00546       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00547       0 },
00548 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00549 #endif /* MBEDTLS_SHA1_C */
00550 #if defined(MBEDTLS_SHA256_C)
00551 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00552     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256",
00553       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00554       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00555       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00556       0 },
00557 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00558 #if defined(MBEDTLS_GCM_C)
00559     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256",
00560       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00561       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00562       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00563       0 },
00564 #endif /* MBEDTLS_GCM_C */
00565 #endif /* MBEDTLS_SHA256_C */
00566 #if defined(MBEDTLS_SHA512_C)
00567 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00568     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384",
00569       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00570       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00571       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00572       0 },
00573 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00574 #if defined(MBEDTLS_GCM_C)
00575     { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384",
00576       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00577       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00578       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00579       0 },
00580 #endif /* MBEDTLS_GCM_C */
00581 #endif /* MBEDTLS_SHA512_C */
00582 #endif /* MBEDTLS_AES_C */
00583 
00584 #if defined(MBEDTLS_CAMELLIA_C)
00585 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00586 #if defined(MBEDTLS_SHA256_C)
00587     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
00588       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00589       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00590       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00591       0 },
00592 #endif /* MBEDTLS_SHA256_C */
00593 #if defined(MBEDTLS_SHA512_C)
00594     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384",
00595       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00596       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00597       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00598       0 },
00599 #endif /* MBEDTLS_SHA512_C */
00600 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00601 
00602 #if defined(MBEDTLS_GCM_C)
00603 #if defined(MBEDTLS_SHA256_C)
00604     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
00605       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00606       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00607       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00608       0 },
00609 #endif /* MBEDTLS_SHA256_C */
00610 #if defined(MBEDTLS_SHA512_C)
00611     { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
00612       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00613       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00614       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00615       0 },
00616 #endif /* MBEDTLS_SHA512_C */
00617 #endif /* MBEDTLS_GCM_C */
00618 #endif /* MBEDTLS_CAMELLIA_C */
00619 
00620 #if defined(MBEDTLS_DES_C)
00621 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00622 #if defined(MBEDTLS_SHA1_C)
00623     { MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA",
00624       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00625       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00626       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00627       0 },
00628 #endif /* MBEDTLS_SHA1_C */
00629 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00630 #endif /* MBEDTLS_DES_C */
00631 
00632 #if defined(MBEDTLS_ARC4_C)
00633 #if defined(MBEDTLS_SHA1_C)
00634     { MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA",
00635       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00636       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00637       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00638       MBEDTLS_CIPHERSUITE_NODTLS },
00639 #endif /* MBEDTLS_SHA1_C */
00640 #endif /* MBEDTLS_ARC4_C */
00641 
00642 #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
00643 #if defined(MBEDTLS_SHA1_C)
00644     { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA",
00645       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
00646       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00647       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00648       MBEDTLS_CIPHERSUITE_WEAK },
00649 #endif /* MBEDTLS_SHA1_C */
00650 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
00651 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
00652 
00653 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
00654 #if defined(MBEDTLS_AES_C)
00655 #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
00656     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384",
00657       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00658       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00659       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00660       0 },
00661 #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
00662 
00663 #if defined(MBEDTLS_SHA256_C)
00664 #if defined(MBEDTLS_GCM_C)
00665     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256",
00666       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00667       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00668       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00669       0 },
00670 #endif /* MBEDTLS_GCM_C */
00671 
00672 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00673     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256",
00674       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00675       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00676       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00677       0 },
00678 
00679     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256",
00680       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00681       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00682       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00683       0 },
00684 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00685 #endif /* MBEDTLS_SHA256_C */
00686 
00687 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00688 #if defined(MBEDTLS_SHA1_C)
00689     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA",
00690       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00691       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00692       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00693       0 },
00694 
00695     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA",
00696       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00697       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00698       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00699       0 },
00700 #endif /* MBEDTLS_SHA1_C */
00701 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00702 #if defined(MBEDTLS_CCM_C)
00703     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM",
00704       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00705       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00706       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00707       0 },
00708     { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8",
00709       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00710       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00711       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00712       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00713     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM",
00714       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00715       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00716       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00717       0 },
00718     { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8",
00719       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00720       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00721       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00722       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00723 #endif /* MBEDTLS_CCM_C */
00724 #endif /* MBEDTLS_AES_C */
00725 
00726 #if defined(MBEDTLS_CAMELLIA_C)
00727 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00728 #if defined(MBEDTLS_SHA256_C)
00729     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256",
00730       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00731       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00732       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00733       0 },
00734 
00735     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256",
00736       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00737       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00738       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00739       0 },
00740 #endif /* MBEDTLS_SHA256_C */
00741 
00742 #if defined(MBEDTLS_SHA1_C)
00743     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA",
00744       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00745       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00746       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00747       0 },
00748 
00749     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA",
00750       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00751       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00752       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00753       0 },
00754 #endif /* MBEDTLS_SHA1_C */
00755 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00756 #if defined(MBEDTLS_GCM_C)
00757 #if defined(MBEDTLS_SHA256_C)
00758     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256",
00759       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00760       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00761       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00762       0 },
00763 #endif /* MBEDTLS_SHA256_C */
00764 
00765 #if defined(MBEDTLS_SHA512_C)
00766     { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384",
00767       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00768       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00769       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00770       0 },
00771 #endif /* MBEDTLS_SHA512_C */
00772 #endif /* MBEDTLS_GCM_C */
00773 #endif /* MBEDTLS_CAMELLIA_C */
00774 
00775 #if defined(MBEDTLS_DES_C)
00776 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00777 #if defined(MBEDTLS_SHA1_C)
00778     { MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA",
00779       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
00780       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00781       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00782       0 },
00783 #endif /* MBEDTLS_SHA1_C */
00784 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00785 #endif /* MBEDTLS_DES_C */
00786 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
00787 
00788 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
00789 #if defined(MBEDTLS_AES_C)
00790 #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C)
00791     { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384",
00792       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
00793       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00794       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00795       0 },
00796 #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */
00797 
00798 #if defined(MBEDTLS_SHA256_C)
00799 #if defined(MBEDTLS_GCM_C)
00800     { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256",
00801       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00802       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00803       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00804       0 },
00805 #endif /* MBEDTLS_GCM_C */
00806 
00807 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00808     { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256",
00809       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00810       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00811       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00812       0 },
00813 
00814     { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256",
00815       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00816       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00817       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00818       0 },
00819 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00820 #endif /* MBEDTLS_SHA256_C */
00821 
00822 #if defined(MBEDTLS_SHA1_C)
00823 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00824     { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA",
00825       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00826       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00827       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00828       0 },
00829 
00830     { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA",
00831       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00832       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00833       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00834       0 },
00835 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00836 #endif /* MBEDTLS_SHA1_C */
00837 #if defined(MBEDTLS_CCM_C)
00838     { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM",
00839       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00840       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00841       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00842       0 },
00843     { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8",
00844       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00845       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00846       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00847       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00848     { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM",
00849       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00850       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00851       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00852       0 },
00853     { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8",
00854       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00855       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00856       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00857       MBEDTLS_CIPHERSUITE_SHORT_TAG },
00858 #endif /* MBEDTLS_CCM_C */
00859 #endif /* MBEDTLS_AES_C */
00860 
00861 #if defined(MBEDTLS_CAMELLIA_C)
00862 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00863 #if defined(MBEDTLS_SHA256_C)
00864     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256",
00865       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00866       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00867       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00868       0 },
00869 
00870     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256",
00871       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00872       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00873       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00874       0 },
00875 #endif /* MBEDTLS_SHA256_C */
00876 
00877 #if defined(MBEDTLS_SHA1_C)
00878     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA",
00879       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00880       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00881       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00882       0 },
00883 
00884     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA",
00885       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00886       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00887       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00888       0 },
00889 #endif /* MBEDTLS_SHA1_C */
00890 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00891 
00892 #if defined(MBEDTLS_GCM_C)
00893 #if defined(MBEDTLS_SHA256_C)
00894     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256",
00895       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
00896       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00897       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00898       0 },
00899 #endif /* MBEDTLS_SHA256_C */
00900 
00901 #if defined(MBEDTLS_SHA1_C)
00902     { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384",
00903       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
00904       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00905       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00906       0 },
00907 #endif /* MBEDTLS_SHA1_C */
00908 #endif /* MBEDTLS_GCM_C */
00909 #endif /* MBEDTLS_CAMELLIA_C */
00910 
00911 #if defined(MBEDTLS_DES_C)
00912 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00913 #if defined(MBEDTLS_SHA1_C)
00914     { MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA",
00915       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00916       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00917       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00918       0 },
00919 #endif /* MBEDTLS_SHA1_C */
00920 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00921 #endif /* MBEDTLS_DES_C */
00922 
00923 #if defined(MBEDTLS_ARC4_C)
00924 #if defined(MBEDTLS_MD5_C)
00925     { MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5",
00926       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
00927       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00928       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00929       MBEDTLS_CIPHERSUITE_NODTLS },
00930 #endif
00931 
00932 #if defined(MBEDTLS_SHA1_C)
00933     { MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA",
00934       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
00935       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
00936       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00937       MBEDTLS_CIPHERSUITE_NODTLS },
00938 #endif
00939 #endif /* MBEDTLS_ARC4_C */
00940 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
00941 
00942 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
00943 #if defined(MBEDTLS_AES_C)
00944 #if defined(MBEDTLS_SHA1_C)
00945 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00946     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA",
00947       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00948       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00949       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00950       0 },
00951     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA",
00952       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00953       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00954       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00955       0 },
00956 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00957 #endif /* MBEDTLS_SHA1_C */
00958 #if defined(MBEDTLS_SHA256_C)
00959 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00960     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256",
00961       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00962       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00963       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00964       0 },
00965 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00966 #if defined(MBEDTLS_GCM_C)
00967     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256",
00968       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00969       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00970       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00971       0 },
00972 #endif /* MBEDTLS_GCM_C */
00973 #endif /* MBEDTLS_SHA256_C */
00974 #if defined(MBEDTLS_SHA512_C)
00975 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00976     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384",
00977       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00978       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00979       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00980       0 },
00981 #endif /* MBEDTLS_CIPHER_MODE_CBC */
00982 #if defined(MBEDTLS_GCM_C)
00983     { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384",
00984       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00985       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00986       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00987       0 },
00988 #endif /* MBEDTLS_GCM_C */
00989 #endif /* MBEDTLS_SHA512_C */
00990 #endif /* MBEDTLS_AES_C */
00991 
00992 #if defined(MBEDTLS_CAMELLIA_C)
00993 #if defined(MBEDTLS_CIPHER_MODE_CBC)
00994 #if defined(MBEDTLS_SHA256_C)
00995     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256",
00996       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
00997       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
00998       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
00999       0 },
01000 #endif /* MBEDTLS_SHA256_C */
01001 #if defined(MBEDTLS_SHA512_C)
01002     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384",
01003       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01004       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01005       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01006       0 },
01007 #endif /* MBEDTLS_SHA512_C */
01008 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01009 
01010 #if defined(MBEDTLS_GCM_C)
01011 #if defined(MBEDTLS_SHA256_C)
01012     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256",
01013       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01014       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01015       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01016       0 },
01017 #endif /* MBEDTLS_SHA256_C */
01018 #if defined(MBEDTLS_SHA512_C)
01019     { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384",
01020       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01021       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01022       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01023       0 },
01024 #endif /* MBEDTLS_SHA512_C */
01025 #endif /* MBEDTLS_GCM_C */
01026 #endif /* MBEDTLS_CAMELLIA_C */
01027 
01028 #if defined(MBEDTLS_DES_C)
01029 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01030 #if defined(MBEDTLS_SHA1_C)
01031     { MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA",
01032       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01033       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01034       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01035       0 },
01036 #endif /* MBEDTLS_SHA1_C */
01037 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01038 #endif /* MBEDTLS_DES_C */
01039 
01040 #if defined(MBEDTLS_ARC4_C)
01041 #if defined(MBEDTLS_SHA1_C)
01042     { MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA",
01043       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01044       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01045       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01046       MBEDTLS_CIPHERSUITE_NODTLS },
01047 #endif /* MBEDTLS_SHA1_C */
01048 #endif /* MBEDTLS_ARC4_C */
01049 
01050 #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
01051 #if defined(MBEDTLS_SHA1_C)
01052     { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA",
01053       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01054       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01055       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01056       MBEDTLS_CIPHERSUITE_WEAK },
01057 #endif /* MBEDTLS_SHA1_C */
01058 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
01059 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
01060 
01061 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
01062 #if defined(MBEDTLS_AES_C)
01063 #if defined(MBEDTLS_SHA1_C)
01064 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01065     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA",
01066       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01067       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01068       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01069       0 },
01070     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA",
01071       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01072       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01073       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01074       0 },
01075 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01076 #endif /* MBEDTLS_SHA1_C */
01077 #if defined(MBEDTLS_SHA256_C)
01078 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01079     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256",
01080       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01081       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01082       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01083       0 },
01084 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01085 #if defined(MBEDTLS_GCM_C)
01086     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256",
01087       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01088       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01089       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01090       0 },
01091 #endif /* MBEDTLS_GCM_C */
01092 #endif /* MBEDTLS_SHA256_C */
01093 #if defined(MBEDTLS_SHA512_C)
01094 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01095     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384",
01096       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01097       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01098       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01099       0 },
01100 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01101 #if defined(MBEDTLS_GCM_C)
01102     { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384",
01103       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01104       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01105       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01106       0 },
01107 #endif /* MBEDTLS_GCM_C */
01108 #endif /* MBEDTLS_SHA512_C */
01109 #endif /* MBEDTLS_AES_C */
01110 
01111 #if defined(MBEDTLS_CAMELLIA_C)
01112 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01113 #if defined(MBEDTLS_SHA256_C)
01114     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256",
01115       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01116       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01117       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01118       0 },
01119 #endif /* MBEDTLS_SHA256_C */
01120 #if defined(MBEDTLS_SHA512_C)
01121     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384",
01122       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01123       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01124       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01125       0 },
01126 #endif /* MBEDTLS_SHA512_C */
01127 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01128 
01129 #if defined(MBEDTLS_GCM_C)
01130 #if defined(MBEDTLS_SHA256_C)
01131     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256",
01132       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01133       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01134       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01135       0 },
01136 #endif /* MBEDTLS_SHA256_C */
01137 #if defined(MBEDTLS_SHA512_C)
01138     { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384",
01139       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01140       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01141       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01142       0 },
01143 #endif /* MBEDTLS_SHA512_C */
01144 #endif /* MBEDTLS_GCM_C */
01145 #endif /* MBEDTLS_CAMELLIA_C */
01146 
01147 #if defined(MBEDTLS_DES_C)
01148 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01149 #if defined(MBEDTLS_SHA1_C)
01150     { MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA",
01151       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01152       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01153       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01154       0 },
01155 #endif /* MBEDTLS_SHA1_C */
01156 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01157 #endif /* MBEDTLS_DES_C */
01158 
01159 #if defined(MBEDTLS_ARC4_C)
01160 #if defined(MBEDTLS_SHA1_C)
01161     { MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA",
01162       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01163       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01164       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01165       MBEDTLS_CIPHERSUITE_NODTLS },
01166 #endif /* MBEDTLS_SHA1_C */
01167 #endif /* MBEDTLS_ARC4_C */
01168 
01169 #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
01170 #if defined(MBEDTLS_SHA1_C)
01171     { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA",
01172       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
01173       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01174       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01175       MBEDTLS_CIPHERSUITE_WEAK },
01176 #endif /* MBEDTLS_SHA1_C */
01177 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
01178 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
01179 
01180 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
01181 #if defined(MBEDTLS_AES_C)
01182 #if defined(MBEDTLS_GCM_C)
01183 #if defined(MBEDTLS_SHA256_C)
01184     { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256",
01185       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01186       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01187       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01188       0 },
01189 #endif /* MBEDTLS_SHA256_C */
01190 
01191 #if defined(MBEDTLS_SHA512_C)
01192     { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384",
01193       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01194       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01195       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01196       0 },
01197 #endif /* MBEDTLS_SHA512_C */
01198 #endif /* MBEDTLS_GCM_C */
01199 
01200 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01201 #if defined(MBEDTLS_SHA256_C)
01202     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256",
01203       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01204       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01205       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01206       0 },
01207 #endif /* MBEDTLS_SHA256_C */
01208 
01209 #if defined(MBEDTLS_SHA512_C)
01210     { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384",
01211       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01212       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01213       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01214       0 },
01215 #endif /* MBEDTLS_SHA512_C */
01216 
01217 #if defined(MBEDTLS_SHA1_C)
01218     { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA",
01219       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
01220       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01221       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01222       0 },
01223 
01224     { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA",
01225       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
01226       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01227       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01228       0 },
01229 #endif /* MBEDTLS_SHA1_C */
01230 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01231 #if defined(MBEDTLS_CCM_C)
01232     { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM",
01233       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01234       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01235       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01236       0 },
01237     { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8",
01238       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01239       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01240       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01241       MBEDTLS_CIPHERSUITE_SHORT_TAG },
01242     { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM",
01243       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01244       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01245       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01246       0 },
01247     { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8",
01248       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01249       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01250       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01251       MBEDTLS_CIPHERSUITE_SHORT_TAG },
01252 #endif /* MBEDTLS_CCM_C */
01253 #endif /* MBEDTLS_AES_C */
01254 
01255 #if defined(MBEDTLS_CAMELLIA_C)
01256 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01257 #if defined(MBEDTLS_SHA256_C)
01258     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256",
01259       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01260       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01261       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01262       0 },
01263 #endif /* MBEDTLS_SHA256_C */
01264 
01265 #if defined(MBEDTLS_SHA512_C)
01266     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384",
01267       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01268       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01269       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01270       0 },
01271 #endif /* MBEDTLS_SHA512_C */
01272 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01273 
01274 #if defined(MBEDTLS_GCM_C)
01275 #if defined(MBEDTLS_SHA256_C)
01276     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256",
01277       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01278       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01279       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01280       0 },
01281 #endif /* MBEDTLS_SHA256_C */
01282 
01283 #if defined(MBEDTLS_SHA512_C)
01284     { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384",
01285       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01286       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01287       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01288       0 },
01289 #endif /* MBEDTLS_SHA512_C */
01290 #endif /* MBEDTLS_GCM_C */
01291 #endif /* MBEDTLS_CAMELLIA_C */
01292 
01293 #if defined(MBEDTLS_DES_C)
01294 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01295 #if defined(MBEDTLS_SHA1_C)
01296     { MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA",
01297       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
01298       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01299       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01300       0 },
01301 #endif /* MBEDTLS_SHA1_C */
01302 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01303 #endif /* MBEDTLS_DES_C */
01304 
01305 #if defined(MBEDTLS_ARC4_C)
01306 #if defined(MBEDTLS_SHA1_C)
01307     { MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA",
01308       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
01309       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01310       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01311       MBEDTLS_CIPHERSUITE_NODTLS },
01312 #endif /* MBEDTLS_SHA1_C */
01313 #endif /* MBEDTLS_ARC4_C */
01314 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
01315 
01316 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
01317 #if defined(MBEDTLS_AES_C)
01318 #if defined(MBEDTLS_GCM_C)
01319 #if defined(MBEDTLS_SHA256_C)
01320     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256",
01321       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01322       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01323       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01324       0 },
01325 #endif /* MBEDTLS_SHA256_C */
01326 
01327 #if defined(MBEDTLS_SHA512_C)
01328     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384",
01329       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01330       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01331       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01332       0 },
01333 #endif /* MBEDTLS_SHA512_C */
01334 #endif /* MBEDTLS_GCM_C */
01335 
01336 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01337 #if defined(MBEDTLS_SHA256_C)
01338     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256",
01339       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01340       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01341       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01342       0 },
01343 #endif /* MBEDTLS_SHA256_C */
01344 
01345 #if defined(MBEDTLS_SHA512_C)
01346     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384",
01347       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01348       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01349       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01350       0 },
01351 #endif /* MBEDTLS_SHA512_C */
01352 
01353 #if defined(MBEDTLS_SHA1_C)
01354     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA",
01355       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01356       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01357       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01358       0 },
01359 
01360     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA",
01361       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01362       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01363       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01364       0 },
01365 #endif /* MBEDTLS_SHA1_C */
01366 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01367 #if defined(MBEDTLS_CCM_C)
01368     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM",
01369       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01370       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01371       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01372       0 },
01373     { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8",
01374       MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01375       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01376       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01377       MBEDTLS_CIPHERSUITE_SHORT_TAG },
01378     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM",
01379       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01380       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01381       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01382       0 },
01383     { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8",
01384       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01385       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01386       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01387       MBEDTLS_CIPHERSUITE_SHORT_TAG },
01388 #endif /* MBEDTLS_CCM_C */
01389 #endif /* MBEDTLS_AES_C */
01390 
01391 #if defined(MBEDTLS_CAMELLIA_C)
01392 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01393 #if defined(MBEDTLS_SHA256_C)
01394     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
01395       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01396       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01397       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01398       0 },
01399 #endif /* MBEDTLS_SHA256_C */
01400 
01401 #if defined(MBEDTLS_SHA512_C)
01402     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
01403       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01404       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01405       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01406       0 },
01407 #endif /* MBEDTLS_SHA512_C */
01408 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01409 
01410 #if defined(MBEDTLS_GCM_C)
01411 #if defined(MBEDTLS_SHA256_C)
01412     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256",
01413       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01414       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01415       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01416       0 },
01417 #endif /* MBEDTLS_SHA256_C */
01418 
01419 #if defined(MBEDTLS_SHA512_C)
01420     { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384",
01421       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01422       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01423       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01424       0 },
01425 #endif /* MBEDTLS_SHA512_C */
01426 #endif /* MBEDTLS_GCM_C */
01427 #endif /* MBEDTLS_CAMELLIA_C */
01428 
01429 #if defined(MBEDTLS_DES_C)
01430 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01431 #if defined(MBEDTLS_SHA1_C)
01432     { MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA",
01433       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01434       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01435       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01436       0 },
01437 #endif /* MBEDTLS_SHA1_C */
01438 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01439 #endif /* MBEDTLS_DES_C */
01440 
01441 #if defined(MBEDTLS_ARC4_C)
01442 #if defined(MBEDTLS_SHA1_C)
01443     { MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA",
01444       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01445       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01446       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01447       MBEDTLS_CIPHERSUITE_NODTLS },
01448 #endif /* MBEDTLS_SHA1_C */
01449 #endif /* MBEDTLS_ARC4_C */
01450 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
01451 
01452 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
01453 #if defined(MBEDTLS_AES_C)
01454 
01455 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01456 #if defined(MBEDTLS_SHA256_C)
01457     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256",
01458       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01459       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01460       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01461       0 },
01462 #endif /* MBEDTLS_SHA256_C */
01463 
01464 #if defined(MBEDTLS_SHA512_C)
01465     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384",
01466       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01467       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01468       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01469       0 },
01470 #endif /* MBEDTLS_SHA512_C */
01471 
01472 #if defined(MBEDTLS_SHA1_C)
01473     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA",
01474       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01475       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01476       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01477       0 },
01478 
01479     { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA",
01480       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01481       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01482       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01483       0 },
01484 #endif /* MBEDTLS_SHA1_C */
01485 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01486 #endif /* MBEDTLS_AES_C */
01487 
01488 #if defined(MBEDTLS_CAMELLIA_C)
01489 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01490 #if defined(MBEDTLS_SHA256_C)
01491     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256",
01492       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01493       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01494       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01495       0 },
01496 #endif /* MBEDTLS_SHA256_C */
01497 
01498 #if defined(MBEDTLS_SHA512_C)
01499     { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384",
01500       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01501       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01502       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01503       0 },
01504 #endif /* MBEDTLS_SHA512_C */
01505 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01506 #endif /* MBEDTLS_CAMELLIA_C */
01507 
01508 #if defined(MBEDTLS_DES_C)
01509 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01510 #if defined(MBEDTLS_SHA1_C)
01511     { MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA",
01512       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01513       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01514       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01515       0 },
01516 #endif /* MBEDTLS_SHA1_C */
01517 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01518 #endif /* MBEDTLS_DES_C */
01519 
01520 #if defined(MBEDTLS_ARC4_C)
01521 #if defined(MBEDTLS_SHA1_C)
01522     { MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA",
01523       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01524       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01525       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01526       MBEDTLS_CIPHERSUITE_NODTLS },
01527 #endif /* MBEDTLS_SHA1_C */
01528 #endif /* MBEDTLS_ARC4_C */
01529 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
01530 
01531 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
01532 #if defined(MBEDTLS_AES_C)
01533 #if defined(MBEDTLS_GCM_C)
01534 #if defined(MBEDTLS_SHA256_C)
01535     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256",
01536       MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01537       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01538       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01539       0 },
01540 #endif /* MBEDTLS_SHA256_C */
01541 
01542 #if defined(MBEDTLS_SHA512_C)
01543     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384",
01544       MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01545       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01546       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01547       0 },
01548 #endif /* MBEDTLS_SHA512_C */
01549 #endif /* MBEDTLS_GCM_C */
01550 
01551 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01552 #if defined(MBEDTLS_SHA256_C)
01553     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256",
01554       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01555       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01556       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01557       0 },
01558 #endif /* MBEDTLS_SHA256_C */
01559 
01560 #if defined(MBEDTLS_SHA512_C)
01561     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384",
01562       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01563       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01564       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01565       0 },
01566 #endif /* MBEDTLS_SHA512_C */
01567 
01568 #if defined(MBEDTLS_SHA1_C)
01569     { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA",
01570       MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01571       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01572       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01573       0 },
01574 
01575     { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA",
01576       MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01577       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01578       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01579       0 },
01580 #endif /* MBEDTLS_SHA1_C */
01581 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01582 #endif /* MBEDTLS_AES_C */
01583 
01584 #if defined(MBEDTLS_CAMELLIA_C)
01585 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01586 #if defined(MBEDTLS_SHA256_C)
01587     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256",
01588       MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01589       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01590       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01591       0 },
01592 #endif /* MBEDTLS_SHA256_C */
01593 
01594 #if defined(MBEDTLS_SHA512_C)
01595     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384",
01596       MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01597       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01598       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01599       0 },
01600 #endif /* MBEDTLS_SHA512_C */
01601 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01602 
01603 #if defined(MBEDTLS_GCM_C)
01604 #if defined(MBEDTLS_SHA256_C)
01605     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256",
01606       MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01607       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01608       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01609       0 },
01610 #endif /* MBEDTLS_SHA256_C */
01611 
01612 #if defined(MBEDTLS_SHA512_C)
01613     { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384",
01614       MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01615       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01616       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01617       0 },
01618 #endif /* MBEDTLS_SHA512_C */
01619 #endif /* MBEDTLS_GCM_C */
01620 #endif /* MBEDTLS_CAMELLIA_C */
01621 
01622 #if defined(MBEDTLS_DES_C)
01623 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01624 #if defined(MBEDTLS_SHA1_C)
01625     { MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA",
01626       MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01627       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01628       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01629       0 },
01630 #endif /* MBEDTLS_SHA1_C */
01631 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01632 #endif /* MBEDTLS_DES_C */
01633 
01634 #if defined(MBEDTLS_ARC4_C)
01635 #if defined(MBEDTLS_SHA1_C)
01636     { MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA",
01637       MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01638       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01639       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01640       MBEDTLS_CIPHERSUITE_NODTLS },
01641 #endif /* MBEDTLS_SHA1_C */
01642 #endif /* MBEDTLS_ARC4_C */
01643 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
01644 
01645 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
01646 #if defined(MBEDTLS_AES_C)
01647 #if defined(MBEDTLS_CCM_C)
01648     { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8",
01649       MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE,
01650       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01651       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01652       MBEDTLS_CIPHERSUITE_SHORT_TAG },
01653 #endif /* MBEDTLS_CCM_C */
01654 #endif /* MBEDTLS_AES_C */
01655 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
01656 
01657 #if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
01658 #if defined(MBEDTLS_CIPHER_NULL_CIPHER)
01659 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
01660 #if defined(MBEDTLS_MD5_C)
01661     { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5",
01662       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA,
01663       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01664       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01665       MBEDTLS_CIPHERSUITE_WEAK },
01666 #endif
01667 
01668 #if defined(MBEDTLS_SHA1_C)
01669     { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA",
01670       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
01671       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01672       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01673       MBEDTLS_CIPHERSUITE_WEAK },
01674 #endif
01675 
01676 #if defined(MBEDTLS_SHA256_C)
01677     { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256",
01678       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
01679       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01680       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01681       MBEDTLS_CIPHERSUITE_WEAK },
01682 #endif
01683 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
01684 
01685 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
01686 #if defined(MBEDTLS_SHA1_C)
01687     { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA",
01688       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK,
01689       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01690       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01691       MBEDTLS_CIPHERSUITE_WEAK },
01692 #endif /* MBEDTLS_SHA1_C */
01693 
01694 #if defined(MBEDTLS_SHA256_C)
01695     { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256",
01696       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01697       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01698       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01699       MBEDTLS_CIPHERSUITE_WEAK },
01700 #endif
01701 
01702 #if defined(MBEDTLS_SHA512_C)
01703     { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384",
01704       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01705       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01706       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01707       MBEDTLS_CIPHERSUITE_WEAK },
01708 #endif
01709 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
01710 
01711 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
01712 #if defined(MBEDTLS_SHA1_C)
01713     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA",
01714       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01715       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01716       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01717       MBEDTLS_CIPHERSUITE_WEAK },
01718 #endif /* MBEDTLS_SHA1_C */
01719 
01720 #if defined(MBEDTLS_SHA256_C)
01721     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256",
01722       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01723       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01724       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01725       MBEDTLS_CIPHERSUITE_WEAK },
01726 #endif
01727 
01728 #if defined(MBEDTLS_SHA512_C)
01729     { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384",
01730       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
01731       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01732       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01733       MBEDTLS_CIPHERSUITE_WEAK },
01734 #endif
01735 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
01736 
01737 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
01738 #if defined(MBEDTLS_SHA1_C)
01739     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA",
01740       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01741       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01742       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01743       MBEDTLS_CIPHERSUITE_WEAK },
01744 #endif /* MBEDTLS_SHA1_C */
01745 
01746 #if defined(MBEDTLS_SHA256_C)
01747     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256",
01748       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01749       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01750       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01751       MBEDTLS_CIPHERSUITE_WEAK },
01752 #endif
01753 
01754 #if defined(MBEDTLS_SHA512_C)
01755     { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384",
01756       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
01757       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01758       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01759       MBEDTLS_CIPHERSUITE_WEAK },
01760 #endif
01761 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
01762 
01763 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
01764 #if defined(MBEDTLS_SHA1_C)
01765     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA",
01766       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01767       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01768       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01769       MBEDTLS_CIPHERSUITE_WEAK },
01770 #endif /* MBEDTLS_SHA1_C */
01771 
01772 #if defined(MBEDTLS_SHA256_C)
01773     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256",
01774       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01775       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01776       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01777       MBEDTLS_CIPHERSUITE_WEAK },
01778 #endif
01779 
01780 #if defined(MBEDTLS_SHA512_C)
01781     { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384",
01782       MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01783       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1,
01784       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01785       MBEDTLS_CIPHERSUITE_WEAK },
01786 #endif
01787 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
01788 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */
01789 
01790 #if defined(MBEDTLS_DES_C)
01791 #if defined(MBEDTLS_CIPHER_MODE_CBC)
01792 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
01793 #if defined(MBEDTLS_SHA1_C)
01794     { MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA",
01795       MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
01796       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01797       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01798       MBEDTLS_CIPHERSUITE_WEAK },
01799 #endif /* MBEDTLS_SHA1_C */
01800 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
01801 
01802 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
01803 #if defined(MBEDTLS_SHA1_C)
01804     { MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA",
01805       MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA,
01806       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0,
01807       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01808       MBEDTLS_CIPHERSUITE_WEAK },
01809 #endif /* MBEDTLS_SHA1_C */
01810 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
01811 #endif /* MBEDTLS_CIPHER_MODE_CBC */
01812 #endif /* MBEDTLS_DES_C */
01813 #endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
01814 
01815 #if defined(MBEDTLS_ARIA_C)
01816 
01817 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
01818 
01819 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
01820     { MBEDTLS_TLS_RSA_WITH_ARIA_256_GCM_SHA384,
01821              "TLS-RSA-WITH-ARIA-256-GCM-SHA384",
01822       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
01823       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01824       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01825       0 },
01826 #endif
01827 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
01828     { MBEDTLS_TLS_RSA_WITH_ARIA_256_CBC_SHA384,
01829              "TLS-RSA-WITH-ARIA-256-CBC-SHA384",
01830       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA,
01831       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01832       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01833       0 },
01834 #endif
01835 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
01836     { MBEDTLS_TLS_RSA_WITH_ARIA_128_GCM_SHA256,
01837              "TLS-RSA-WITH-ARIA-128-GCM-SHA256",
01838       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
01839       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01840       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01841       0 },
01842 #endif
01843 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
01844     { MBEDTLS_TLS_RSA_WITH_ARIA_128_CBC_SHA256,
01845              "TLS-RSA-WITH-ARIA-128-CBC-SHA256",
01846       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA,
01847       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01848       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01849       0 },
01850 #endif
01851 
01852 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
01853 
01854 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
01855 
01856 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
01857     { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,
01858              "TLS-RSA-PSK-WITH-ARIA-256-GCM-SHA384",
01859       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01860       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01861       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01862       0 },
01863 #endif
01864 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
01865     { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,
01866              "TLS-RSA-PSK-WITH-ARIA-256-CBC-SHA384",
01867       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01868       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01869       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01870       0 },
01871 #endif
01872 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
01873     { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,
01874              "TLS-RSA-PSK-WITH-ARIA-128-GCM-SHA256",
01875       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01876       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01877       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01878       0 },
01879 #endif
01880 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
01881     { MBEDTLS_TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,
01882              "TLS-RSA-PSK-WITH-ARIA-128-CBC-SHA256",
01883       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK,
01884       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01885       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01886       0 },
01887 #endif
01888 
01889 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
01890 
01891 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
01892 
01893 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
01894     { MBEDTLS_TLS_PSK_WITH_ARIA_256_GCM_SHA384,
01895              "TLS-PSK-WITH-ARIA-256-GCM-SHA384",
01896       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384,MBEDTLS_KEY_EXCHANGE_PSK,
01897       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01898       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01899       0 },
01900 #endif
01901 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
01902     { MBEDTLS_TLS_PSK_WITH_ARIA_256_CBC_SHA384,
01903              "TLS-PSK-WITH-ARIA-256-CBC-SHA384",
01904       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK,
01905       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01906       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01907       0 },
01908 #endif
01909 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
01910     { MBEDTLS_TLS_PSK_WITH_ARIA_128_GCM_SHA256,
01911              "TLS-PSK-WITH-ARIA-128-GCM-SHA256",
01912       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01913       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01914       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01915       0 },
01916 #endif
01917 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
01918     { MBEDTLS_TLS_PSK_WITH_ARIA_128_CBC_SHA256,
01919              "TLS-PSK-WITH-ARIA-128-CBC-SHA256",
01920       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK,
01921       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01922       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01923       0 },
01924 #endif
01925 
01926 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
01927 
01928 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
01929 
01930 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
01931     { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,
01932              "TLS-ECDH-RSA-WITH-ARIA-256-GCM-SHA384",
01933       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01934       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01935       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01936       0 },
01937 #endif
01938 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
01939     { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,
01940              "TLS-ECDH-RSA-WITH-ARIA-256-CBC-SHA384",
01941       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01942       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01943       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01944       0 },
01945 #endif
01946 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
01947     { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,
01948              "TLS-ECDH-RSA-WITH-ARIA-128-GCM-SHA256",
01949       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01950       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01951       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01952       0 },
01953 #endif
01954 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
01955     { MBEDTLS_TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,
01956              "TLS-ECDH-RSA-WITH-ARIA-128-CBC-SHA256",
01957       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA,
01958       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01959       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01960       0 },
01961 #endif
01962 
01963 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
01964 
01965 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
01966 
01967 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
01968     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,
01969              "TLS-ECDHE-RSA-WITH-ARIA-256-GCM-SHA384",
01970       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
01971       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01972       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01973       0 },
01974 #endif
01975 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
01976     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,
01977              "TLS-ECDHE-RSA-WITH-ARIA-256-CBC-SHA384",
01978       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
01979       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01980       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01981       0 },
01982 #endif
01983 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
01984     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,
01985              "TLS-ECDHE-RSA-WITH-ARIA-128-GCM-SHA256",
01986       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
01987       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01988       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01989       0 },
01990 #endif
01991 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
01992     { MBEDTLS_TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,
01993              "TLS-ECDHE-RSA-WITH-ARIA-128-CBC-SHA256",
01994       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA,
01995       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01996       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
01997       0 },
01998 #endif
01999 
02000 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
02001 
02002 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
02003 
02004 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
02005     { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,
02006              "TLS-ECDHE-PSK-WITH-ARIA-256-CBC-SHA384",
02007       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
02008       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02009       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02010       0 },
02011 #endif
02012 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
02013     { MBEDTLS_TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,
02014              "TLS-ECDHE-PSK-WITH-ARIA-128-CBC-SHA256",
02015       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK,
02016       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02017       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02018       0 },
02019 #endif
02020 
02021 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
02022 
02023 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
02024 
02025 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
02026     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,
02027              "TLS-ECDHE-ECDSA-WITH-ARIA-256-GCM-SHA384",
02028       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
02029       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02030       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02031       0 },
02032 #endif
02033 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
02034     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,
02035              "TLS-ECDHE-ECDSA-WITH-ARIA-256-CBC-SHA384",
02036       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
02037       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02038       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02039       0 },
02040 #endif
02041 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
02042     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,
02043              "TLS-ECDHE-ECDSA-WITH-ARIA-128-GCM-SHA256",
02044       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
02045       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02046       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02047       0 },
02048 #endif
02049 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
02050     { MBEDTLS_TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,
02051              "TLS-ECDHE-ECDSA-WITH-ARIA-128-CBC-SHA256",
02052       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA,
02053       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02054       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02055       0 },
02056 #endif
02057 
02058 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
02059 
02060 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
02061 
02062 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
02063     { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,
02064              "TLS-ECDH-ECDSA-WITH-ARIA-256-GCM-SHA384",
02065       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
02066       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02067       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02068       0 },
02069 #endif
02070 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
02071     { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,
02072              "TLS-ECDH-ECDSA-WITH-ARIA-256-CBC-SHA384",
02073       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
02074       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02075       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02076       0 },
02077 #endif
02078 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
02079     { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,
02080              "TLS-ECDH-ECDSA-WITH-ARIA-128-GCM-SHA256",
02081       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
02082       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02083       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02084       0 },
02085 #endif
02086 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
02087     { MBEDTLS_TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,
02088              "TLS-ECDH-ECDSA-WITH-ARIA-128-CBC-SHA256",
02089       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA,
02090       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02091       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02092       0 },
02093 #endif
02094 
02095 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
02096 
02097 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
02098 
02099 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
02100     { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,
02101              "TLS-DHE-RSA-WITH-ARIA-256-GCM-SHA384",
02102       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
02103       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02104       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02105       0 },
02106 #endif
02107 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
02108     { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,
02109              "TLS-DHE-RSA-WITH-ARIA-256-CBC-SHA384",
02110       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
02111       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02112       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02113       0 },
02114 #endif
02115 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
02116     { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,
02117              "TLS-DHE-RSA-WITH-ARIA-128-GCM-SHA256",
02118       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
02119       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02120       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02121       0 },
02122 #endif
02123 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
02124     { MBEDTLS_TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,
02125              "TLS-DHE-RSA-WITH-ARIA-128-CBC-SHA256",
02126       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA,
02127       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02128       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02129       0 },
02130 #endif
02131 
02132 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
02133 
02134 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
02135 
02136 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA512_C))
02137     { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,
02138              "TLS-DHE-PSK-WITH-ARIA-256-GCM-SHA384",
02139       MBEDTLS_CIPHER_ARIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
02140       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02141       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02142       0 },
02143 #endif
02144 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA512_C))
02145     { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,
02146              "TLS-DHE-PSK-WITH-ARIA-256-CBC-SHA384",
02147       MBEDTLS_CIPHER_ARIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
02148       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02149       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02150       0 },
02151 #endif
02152 #if (defined(MBEDTLS_GCM_C) && defined(MBEDTLS_SHA256_C))
02153     { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,
02154              "TLS-DHE-PSK-WITH-ARIA-128-GCM-SHA256",
02155       MBEDTLS_CIPHER_ARIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
02156       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02157       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02158       0 },
02159 #endif
02160 #if (defined(MBEDTLS_CIPHER_MODE_CBC) && defined(MBEDTLS_SHA256_C))
02161     { MBEDTLS_TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,
02162              "TLS-DHE-PSK-WITH-ARIA-128-CBC-SHA256",
02163       MBEDTLS_CIPHER_ARIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK,
02164       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02165       MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3,
02166       0 },
02167 #endif
02168 
02169 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
02170 
02171 #endif /* MBEDTLS_ARIA_C */
02172 
02173 
02174     { 0, "",
02175       MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE,
02176       0, 0, 0, 0, 0 }
02177 };
02178 
02179 #if defined(MBEDTLS_SSL_CIPHERSUITES)
02180 const int *mbedtls_ssl_list_ciphersuites( void )
02181 {
02182     return( ciphersuite_preference );
02183 }
02184 #else
02185 #define MAX_CIPHERSUITES    sizeof( ciphersuite_definitions     ) /         \
02186                             sizeof( ciphersuite_definitions[0]  )
02187 static int supported_ciphersuites[MAX_CIPHERSUITES];
02188 static int supported_init = 0;
02189 
02190 const int *mbedtls_ssl_list_ciphersuites( void )
02191 {
02192     /*
02193      * On initial call filter out all ciphersuites not supported by current
02194      * build based on presence in the ciphersuite_definitions.
02195      */
02196     if( supported_init == 0 )
02197     {
02198         const int *p;
02199         int *q;
02200 
02201         for( p = ciphersuite_preference, q = supported_ciphersuites;
02202              *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1;
02203              p++ )
02204         {
02205 #if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
02206             const mbedtls_ssl_ciphersuite_t *cs_info;
02207             if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL &&
02208                 cs_info->cipher != MBEDTLS_CIPHER_ARC4_128 )
02209 #else
02210             if( mbedtls_ssl_ciphersuite_from_id( *p ) != NULL )
02211 #endif
02212                 *(q++) = *p;
02213         }
02214         *q = 0;
02215 
02216         supported_init = 1;
02217     }
02218 
02219     return( supported_ciphersuites );
02220 }
02221 #endif /* MBEDTLS_SSL_CIPHERSUITES */
02222 
02223 const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string(
02224                                                 const char *ciphersuite_name )
02225 {
02226     const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
02227 
02228     if( NULL == ciphersuite_name )
02229         return( NULL );
02230 
02231     while( cur->id != 0 )
02232     {
02233         if( 0 == strcmp( cur->name, ciphersuite_name ) )
02234             return( cur );
02235 
02236         cur++;
02237     }
02238 
02239     return( NULL );
02240 }
02241 
02242 const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite )
02243 {
02244     const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions;
02245 
02246     while( cur->id != 0 )
02247     {
02248         if( cur->id == ciphersuite )
02249             return( cur );
02250 
02251         cur++;
02252     }
02253 
02254     return( NULL );
02255 }
02256 
02257 const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id )
02258 {
02259     const mbedtls_ssl_ciphersuite_t *cur;
02260 
02261     cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id );
02262 
02263     if( cur == NULL )
02264         return( "unknown" );
02265 
02266     return( cur->name );
02267 }
02268 
02269 int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name )
02270 {
02271     const mbedtls_ssl_ciphersuite_t *cur;
02272 
02273     cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name );
02274 
02275     if( cur == NULL )
02276         return( 0 );
02277 
02278     return( cur->id );
02279 }
02280 
02281 #if defined(MBEDTLS_PK_C)
02282 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info )
02283 {
02284     switch( info->key_exchange )
02285     {
02286         case MBEDTLS_KEY_EXCHANGE_RSA:
02287         case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
02288         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
02289         case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
02290             return( MBEDTLS_PK_RSA );
02291 
02292         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
02293             return( MBEDTLS_PK_ECDSA );
02294 
02295         case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
02296         case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
02297             return( MBEDTLS_PK_ECKEY );
02298 
02299         default:
02300             return( MBEDTLS_PK_NONE );
02301     }
02302 }
02303 
02304 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphersuite_t *info )
02305 {
02306     switch( info->key_exchange )
02307     {
02308         case MBEDTLS_KEY_EXCHANGE_RSA:
02309         case MBEDTLS_KEY_EXCHANGE_DHE_RSA:
02310         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
02311             return( MBEDTLS_PK_RSA );
02312 
02313         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
02314             return( MBEDTLS_PK_ECDSA );
02315 
02316         default:
02317             return( MBEDTLS_PK_NONE );
02318     }
02319 }
02320 
02321 #endif /* MBEDTLS_PK_C */
02322 
02323 #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) || \
02324     defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
02325 int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info )
02326 {
02327     switch( info->key_exchange )
02328     {
02329         case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA:
02330         case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA:
02331         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
02332         case MBEDTLS_KEY_EXCHANGE_ECDH_RSA:
02333         case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA:
02334         case MBEDTLS_KEY_EXCHANGE_ECJPAKE:
02335             return( 1 );
02336 
02337         default:
02338             return( 0 );
02339     }
02340 }
02341 #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C || MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED*/
02342 
02343 #if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED)
02344 int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info )
02345 {
02346     switch( info->key_exchange )
02347     {
02348         case MBEDTLS_KEY_EXCHANGE_PSK:
02349         case MBEDTLS_KEY_EXCHANGE_RSA_PSK:
02350         case MBEDTLS_KEY_EXCHANGE_DHE_PSK:
02351         case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK:
02352             return( 1 );
02353 
02354         default:
02355             return( 0 );
02356     }
02357 }
02358 #endif /* MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED */
02359 
02360 #endif /* MBEDTLS_SSL_TLS_C */