Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

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