Knight KE / Mbed OS Game_Master
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ssl_ciphersuites.c Source File

ssl_ciphersuites.c

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