Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbedtls by
ssl_ciphersuites.c
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 > AES-128 > Camellia-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 AES-128 ephemeral suites */ 00085 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 00086 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 00087 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, 00088 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, 00089 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, 00090 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, 00091 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 00092 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, 00093 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 00094 MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, 00095 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 00096 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, 00097 MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, 00098 00099 /* All CAMELLIA-128 ephemeral suites */ 00100 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, 00101 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00102 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00103 MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, 00104 MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00105 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00106 MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, 00107 00108 /* All remaining >= 128-bit ephemeral suites */ 00109 MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, 00110 MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, 00111 MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, 00112 00113 /* The PSK ephemeral suites */ 00114 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, 00115 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, 00116 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, 00117 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, 00118 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, 00119 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, 00120 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00121 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00122 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00123 MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, 00124 00125 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, 00126 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, 00127 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, 00128 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, 00129 MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, 00130 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, 00131 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00132 MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00133 MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00134 MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, 00135 00136 MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, 00137 MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, 00138 00139 /* The ECJPAKE suite */ 00140 MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, 00141 00142 /* All AES-256 suites */ 00143 MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, 00144 MBEDTLS_TLS_RSA_WITH_AES_256_CCM, 00145 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, 00146 MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, 00147 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, 00148 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, 00149 MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, 00150 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, 00151 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, 00152 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, 00153 MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, 00154 00155 /* All CAMELLIA-256 suites */ 00156 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00157 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, 00158 MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, 00159 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00160 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, 00161 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, 00162 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, 00163 00164 /* All AES-128 suites */ 00165 MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, 00166 MBEDTLS_TLS_RSA_WITH_AES_128_CCM, 00167 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, 00168 MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, 00169 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, 00170 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, 00171 MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, 00172 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, 00173 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, 00174 MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, 00175 MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, 00176 00177 /* All CAMELLIA-128 suites */ 00178 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00179 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00180 MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, 00181 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00182 MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00183 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, 00184 MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, 00185 00186 /* All remaining >= 128-bit suites */ 00187 MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, 00188 MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, 00189 MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, 00190 00191 /* The RSA PSK suites */ 00192 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, 00193 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, 00194 MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, 00195 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00196 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00197 00198 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, 00199 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, 00200 MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, 00201 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00202 MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00203 00204 MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, 00205 00206 /* The PSK suites */ 00207 MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, 00208 MBEDTLS_TLS_PSK_WITH_AES_256_CCM, 00209 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, 00210 MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, 00211 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00212 MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00213 MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, 00214 00215 MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, 00216 MBEDTLS_TLS_PSK_WITH_AES_128_CCM, 00217 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, 00218 MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, 00219 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00220 MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00221 MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, 00222 00223 MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, 00224 00225 /* RC4 suites */ 00226 MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 00227 MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, 00228 MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, 00229 MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, 00230 MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, 00231 MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, 00232 MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, 00233 MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, 00234 MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, 00235 MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, 00236 00237 /* Weak suites */ 00238 MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, 00239 MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, 00240 00241 /* NULL suites */ 00242 MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, 00243 MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, 00244 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, 00245 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, 00246 MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, 00247 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, 00248 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, 00249 MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, 00250 00251 MBEDTLS_TLS_RSA_WITH_NULL_SHA256, 00252 MBEDTLS_TLS_RSA_WITH_NULL_SHA, 00253 MBEDTLS_TLS_RSA_WITH_NULL_MD5, 00254 MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, 00255 MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, 00256 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, 00257 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, 00258 MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, 00259 MBEDTLS_TLS_PSK_WITH_NULL_SHA384, 00260 MBEDTLS_TLS_PSK_WITH_NULL_SHA256, 00261 MBEDTLS_TLS_PSK_WITH_NULL_SHA, 00262 00263 #endif /* MBEDTLS_SSL_CIPHERSUITES */ 00264 0 00265 }; 00266 00267 static const mbedtls_ssl_ciphersuite_t ciphersuite_definitions[] = 00268 { 00269 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) 00270 #if defined(MBEDTLS_AES_C) 00271 #if defined(MBEDTLS_SHA1_C) 00272 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00273 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA", 00274 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00275 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00276 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00277 0 }, 00278 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA", 00279 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00280 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00281 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00282 0 }, 00283 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00284 #endif /* MBEDTLS_SHA1_C */ 00285 #if defined(MBEDTLS_SHA256_C) 00286 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00287 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256", 00288 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00289 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00290 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00291 0 }, 00292 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00293 #if defined(MBEDTLS_GCM_C) 00294 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256", 00295 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00296 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00297 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00298 0 }, 00299 #endif /* MBEDTLS_GCM_C */ 00300 #endif /* MBEDTLS_SHA256_C */ 00301 #if defined(MBEDTLS_SHA512_C) 00302 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00303 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384", 00304 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00305 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00306 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00307 0 }, 00308 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00309 #if defined(MBEDTLS_GCM_C) 00310 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384", 00311 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00312 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00313 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00314 0 }, 00315 #endif /* MBEDTLS_GCM_C */ 00316 #endif /* MBEDTLS_SHA512_C */ 00317 #if defined(MBEDTLS_CCM_C) 00318 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM", 00319 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00320 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00321 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00322 0 }, 00323 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-256-CCM-8", 00324 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00325 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00326 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00327 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00328 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM", 00329 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00330 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00331 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00332 0 }, 00333 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, "TLS-ECDHE-ECDSA-WITH-AES-128-CCM-8", 00334 MBEDTLS_CIPHER_AES_128_CCM, 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 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00338 #endif /* MBEDTLS_CCM_C */ 00339 #endif /* MBEDTLS_AES_C */ 00340 00341 #if defined(MBEDTLS_CAMELLIA_C) 00342 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00343 #if defined(MBEDTLS_SHA256_C) 00344 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", 00345 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00346 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00347 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00348 0 }, 00349 #endif /* MBEDTLS_SHA256_C */ 00350 #if defined(MBEDTLS_SHA512_C) 00351 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", 00352 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00353 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00354 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00355 0 }, 00356 #endif /* MBEDTLS_SHA512_C */ 00357 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00358 00359 #if defined(MBEDTLS_GCM_C) 00360 #if defined(MBEDTLS_SHA256_C) 00361 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", 00362 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00363 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00364 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00365 0 }, 00366 #endif /* MBEDTLS_SHA256_C */ 00367 #if defined(MBEDTLS_SHA512_C) 00368 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", 00369 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00370 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00371 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00372 0 }, 00373 #endif /* MBEDTLS_SHA512_C */ 00374 #endif /* MBEDTLS_GCM_C */ 00375 #endif /* MBEDTLS_CAMELLIA_C */ 00376 00377 #if defined(MBEDTLS_DES_C) 00378 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00379 #if defined(MBEDTLS_SHA1_C) 00380 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA", 00381 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00382 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00383 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00384 0 }, 00385 #endif /* MBEDTLS_SHA1_C */ 00386 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00387 #endif /* MBEDTLS_DES_C */ 00388 00389 #if defined(MBEDTLS_ARC4_C) 00390 #if defined(MBEDTLS_SHA1_C) 00391 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA", 00392 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00393 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00394 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00395 MBEDTLS_CIPHERSUITE_NODTLS }, 00396 #endif /* MBEDTLS_SHA1_C */ 00397 #endif /* MBEDTLS_ARC4_C */ 00398 00399 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 00400 #if defined(MBEDTLS_SHA1_C) 00401 { MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA", 00402 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA, 00403 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00404 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00405 MBEDTLS_CIPHERSUITE_WEAK }, 00406 #endif /* MBEDTLS_SHA1_C */ 00407 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 00408 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ 00409 00410 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) 00411 #if defined(MBEDTLS_AES_C) 00412 #if defined(MBEDTLS_SHA1_C) 00413 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00414 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA", 00415 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00416 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00417 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00418 0 }, 00419 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA", 00420 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00421 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00422 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00423 0 }, 00424 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00425 #endif /* MBEDTLS_SHA1_C */ 00426 #if defined(MBEDTLS_SHA256_C) 00427 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00428 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256", 00429 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00430 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00431 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00432 0 }, 00433 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00434 #if defined(MBEDTLS_GCM_C) 00435 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256", 00436 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00437 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00438 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00439 0 }, 00440 #endif /* MBEDTLS_GCM_C */ 00441 #endif /* MBEDTLS_SHA256_C */ 00442 #if defined(MBEDTLS_SHA512_C) 00443 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00444 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384", 00445 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00446 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00447 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00448 0 }, 00449 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00450 #if defined(MBEDTLS_GCM_C) 00451 { MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384", 00452 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00453 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00454 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00455 0 }, 00456 #endif /* MBEDTLS_GCM_C */ 00457 #endif /* MBEDTLS_SHA512_C */ 00458 #endif /* MBEDTLS_AES_C */ 00459 00460 #if defined(MBEDTLS_CAMELLIA_C) 00461 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00462 #if defined(MBEDTLS_SHA256_C) 00463 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00464 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00465 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00466 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00467 0 }, 00468 #endif /* MBEDTLS_SHA256_C */ 00469 #if defined(MBEDTLS_SHA512_C) 00470 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384", 00471 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00472 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00473 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00474 0 }, 00475 #endif /* MBEDTLS_SHA512_C */ 00476 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00477 00478 #if defined(MBEDTLS_GCM_C) 00479 #if defined(MBEDTLS_SHA256_C) 00480 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00481 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00482 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00483 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00484 0 }, 00485 #endif /* MBEDTLS_SHA256_C */ 00486 #if defined(MBEDTLS_SHA512_C) 00487 { MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00488 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00489 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00490 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00491 0 }, 00492 #endif /* MBEDTLS_SHA512_C */ 00493 #endif /* MBEDTLS_GCM_C */ 00494 #endif /* MBEDTLS_CAMELLIA_C */ 00495 00496 #if defined(MBEDTLS_DES_C) 00497 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00498 #if defined(MBEDTLS_SHA1_C) 00499 { MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA", 00500 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00501 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00502 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00503 0 }, 00504 #endif /* MBEDTLS_SHA1_C */ 00505 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00506 #endif /* MBEDTLS_DES_C */ 00507 00508 #if defined(MBEDTLS_ARC4_C) 00509 #if defined(MBEDTLS_SHA1_C) 00510 { MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA", 00511 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00512 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00513 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00514 MBEDTLS_CIPHERSUITE_NODTLS }, 00515 #endif /* MBEDTLS_SHA1_C */ 00516 #endif /* MBEDTLS_ARC4_C */ 00517 00518 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 00519 #if defined(MBEDTLS_SHA1_C) 00520 { MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA", 00521 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_RSA, 00522 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00523 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00524 MBEDTLS_CIPHERSUITE_WEAK }, 00525 #endif /* MBEDTLS_SHA1_C */ 00526 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 00527 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ 00528 00529 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) 00530 #if defined(MBEDTLS_AES_C) 00531 #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C) 00532 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384", 00533 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00534 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00535 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00536 0 }, 00537 #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */ 00538 00539 #if defined(MBEDTLS_SHA256_C) 00540 #if defined(MBEDTLS_GCM_C) 00541 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256", 00542 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00543 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00544 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00545 0 }, 00546 #endif /* MBEDTLS_GCM_C */ 00547 00548 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00549 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256", 00550 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00551 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00552 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00553 0 }, 00554 00555 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256", 00556 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00557 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00558 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00559 0 }, 00560 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00561 #endif /* MBEDTLS_SHA256_C */ 00562 00563 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00564 #if defined(MBEDTLS_SHA1_C) 00565 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA", 00566 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00567 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00568 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00569 0 }, 00570 00571 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA", 00572 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00573 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00574 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00575 0 }, 00576 #endif /* MBEDTLS_SHA1_C */ 00577 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00578 #if defined(MBEDTLS_CCM_C) 00579 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM, "TLS-DHE-RSA-WITH-AES-256-CCM", 00580 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00581 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00582 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00583 0 }, 00584 { MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CCM_8, "TLS-DHE-RSA-WITH-AES-256-CCM-8", 00585 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00586 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00587 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00588 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00589 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM, "TLS-DHE-RSA-WITH-AES-128-CCM", 00590 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00591 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00592 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00593 0 }, 00594 { MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CCM_8, "TLS-DHE-RSA-WITH-AES-128-CCM-8", 00595 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00596 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00597 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00598 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00599 #endif /* MBEDTLS_CCM_C */ 00600 #endif /* MBEDTLS_AES_C */ 00601 00602 #if defined(MBEDTLS_CAMELLIA_C) 00603 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00604 #if defined(MBEDTLS_SHA256_C) 00605 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00606 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00607 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00608 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00609 0 }, 00610 00611 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256", 00612 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00613 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00614 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00615 0 }, 00616 #endif /* MBEDTLS_SHA256_C */ 00617 00618 #if defined(MBEDTLS_SHA1_C) 00619 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA", 00620 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00621 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00622 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00623 0 }, 00624 00625 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA", 00626 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00627 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00628 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00629 0 }, 00630 #endif /* MBEDTLS_SHA1_C */ 00631 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00632 #if defined(MBEDTLS_GCM_C) 00633 #if defined(MBEDTLS_SHA256_C) 00634 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00635 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00636 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00637 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00638 0 }, 00639 #endif /* MBEDTLS_SHA256_C */ 00640 00641 #if defined(MBEDTLS_SHA512_C) 00642 { MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00643 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00644 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00645 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00646 0 }, 00647 #endif /* MBEDTLS_SHA512_C */ 00648 #endif /* MBEDTLS_GCM_C */ 00649 #endif /* MBEDTLS_CAMELLIA_C */ 00650 00651 #if defined(MBEDTLS_DES_C) 00652 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00653 #if defined(MBEDTLS_SHA1_C) 00654 { MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA", 00655 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 00656 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00657 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00658 0 }, 00659 #endif /* MBEDTLS_SHA1_C */ 00660 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00661 #endif /* MBEDTLS_DES_C */ 00662 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ 00663 00664 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) 00665 #if defined(MBEDTLS_AES_C) 00666 #if defined(MBEDTLS_SHA512_C) && defined(MBEDTLS_GCM_C) 00667 { MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384", 00668 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA, 00669 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00670 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00671 0 }, 00672 #endif /* MBEDTLS_SHA512_C && MBEDTLS_GCM_C */ 00673 00674 #if defined(MBEDTLS_SHA256_C) 00675 #if defined(MBEDTLS_GCM_C) 00676 { MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256", 00677 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00678 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00679 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00680 0 }, 00681 #endif /* MBEDTLS_GCM_C */ 00682 00683 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00684 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256", 00685 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00686 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00687 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00688 0 }, 00689 00690 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256", 00691 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00692 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00693 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00694 0 }, 00695 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00696 #endif /* MBEDTLS_SHA256_C */ 00697 00698 #if defined(MBEDTLS_SHA1_C) 00699 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00700 { MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA", 00701 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_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 00706 { MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA", 00707 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 00708 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00709 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00710 0 }, 00711 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00712 #endif /* MBEDTLS_SHA1_C */ 00713 #if defined(MBEDTLS_CCM_C) 00714 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM, "TLS-RSA-WITH-AES-256-CCM", 00715 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00716 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00717 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00718 0 }, 00719 { MBEDTLS_TLS_RSA_WITH_AES_256_CCM_8, "TLS-RSA-WITH-AES-256-CCM-8", 00720 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00721 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00722 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00723 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00724 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM, "TLS-RSA-WITH-AES-128-CCM", 00725 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00726 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00727 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00728 0 }, 00729 { MBEDTLS_TLS_RSA_WITH_AES_128_CCM_8, "TLS-RSA-WITH-AES-128-CCM-8", 00730 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00731 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00732 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00733 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 00734 #endif /* MBEDTLS_CCM_C */ 00735 #endif /* MBEDTLS_AES_C */ 00736 00737 #if defined(MBEDTLS_CAMELLIA_C) 00738 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00739 #if defined(MBEDTLS_SHA256_C) 00740 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00741 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00742 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00743 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00744 0 }, 00745 00746 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256", 00747 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 00748 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00749 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00750 0 }, 00751 #endif /* MBEDTLS_SHA256_C */ 00752 00753 #if defined(MBEDTLS_SHA1_C) 00754 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA", 00755 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 00756 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00757 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00758 0 }, 00759 00760 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA", 00761 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 00762 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00763 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00764 0 }, 00765 #endif /* MBEDTLS_SHA1_C */ 00766 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00767 00768 #if defined(MBEDTLS_GCM_C) 00769 #if defined(MBEDTLS_SHA256_C) 00770 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00771 MBEDTLS_CIPHER_CAMELLIA_128_GCM, 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 #endif /* MBEDTLS_SHA256_C */ 00776 00777 #if defined(MBEDTLS_SHA1_C) 00778 { MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00779 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA, 00780 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00781 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00782 0 }, 00783 #endif /* MBEDTLS_SHA1_C */ 00784 #endif /* MBEDTLS_GCM_C */ 00785 #endif /* MBEDTLS_CAMELLIA_C */ 00786 00787 #if defined(MBEDTLS_DES_C) 00788 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00789 #if defined(MBEDTLS_SHA1_C) 00790 { MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA", 00791 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 00792 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00793 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00794 0 }, 00795 #endif /* MBEDTLS_SHA1_C */ 00796 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00797 #endif /* MBEDTLS_DES_C */ 00798 00799 #if defined(MBEDTLS_ARC4_C) 00800 #if defined(MBEDTLS_MD5_C) 00801 { MBEDTLS_TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5", 00802 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA, 00803 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00804 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00805 MBEDTLS_CIPHERSUITE_NODTLS }, 00806 #endif 00807 00808 #if defined(MBEDTLS_SHA1_C) 00809 { MBEDTLS_TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA", 00810 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 00811 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 00812 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00813 MBEDTLS_CIPHERSUITE_NODTLS }, 00814 #endif 00815 #endif /* MBEDTLS_ARC4_C */ 00816 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ 00817 00818 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) 00819 #if defined(MBEDTLS_AES_C) 00820 #if defined(MBEDTLS_SHA1_C) 00821 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00822 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA", 00823 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00824 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00825 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00826 0 }, 00827 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA", 00828 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00829 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00830 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00831 0 }, 00832 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00833 #endif /* MBEDTLS_SHA1_C */ 00834 #if defined(MBEDTLS_SHA256_C) 00835 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00836 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256", 00837 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00838 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00839 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00840 0 }, 00841 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00842 #if defined(MBEDTLS_GCM_C) 00843 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256", 00844 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00845 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00846 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00847 0 }, 00848 #endif /* MBEDTLS_GCM_C */ 00849 #endif /* MBEDTLS_SHA256_C */ 00850 #if defined(MBEDTLS_SHA512_C) 00851 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00852 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384", 00853 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00854 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00855 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00856 0 }, 00857 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00858 #if defined(MBEDTLS_GCM_C) 00859 { MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384", 00860 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00861 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00862 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00863 0 }, 00864 #endif /* MBEDTLS_GCM_C */ 00865 #endif /* MBEDTLS_SHA512_C */ 00866 #endif /* MBEDTLS_AES_C */ 00867 00868 #if defined(MBEDTLS_CAMELLIA_C) 00869 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00870 #if defined(MBEDTLS_SHA256_C) 00871 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00872 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00873 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00874 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00875 0 }, 00876 #endif /* MBEDTLS_SHA256_C */ 00877 #if defined(MBEDTLS_SHA512_C) 00878 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384", 00879 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00880 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00881 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00882 0 }, 00883 #endif /* MBEDTLS_SHA512_C */ 00884 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00885 00886 #if defined(MBEDTLS_GCM_C) 00887 #if defined(MBEDTLS_SHA256_C) 00888 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00889 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00890 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00891 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00892 0 }, 00893 #endif /* MBEDTLS_SHA256_C */ 00894 #if defined(MBEDTLS_SHA512_C) 00895 { MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00896 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00897 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00898 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00899 0 }, 00900 #endif /* MBEDTLS_SHA512_C */ 00901 #endif /* MBEDTLS_GCM_C */ 00902 #endif /* MBEDTLS_CAMELLIA_C */ 00903 00904 #if defined(MBEDTLS_DES_C) 00905 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00906 #if defined(MBEDTLS_SHA1_C) 00907 { MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA", 00908 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00909 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00910 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00911 0 }, 00912 #endif /* MBEDTLS_SHA1_C */ 00913 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00914 #endif /* MBEDTLS_DES_C */ 00915 00916 #if defined(MBEDTLS_ARC4_C) 00917 #if defined(MBEDTLS_SHA1_C) 00918 { MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA", 00919 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00920 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00921 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00922 MBEDTLS_CIPHERSUITE_NODTLS }, 00923 #endif /* MBEDTLS_SHA1_C */ 00924 #endif /* MBEDTLS_ARC4_C */ 00925 00926 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 00927 #if defined(MBEDTLS_SHA1_C) 00928 { MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA", 00929 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_RSA, 00930 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00931 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00932 MBEDTLS_CIPHERSUITE_WEAK }, 00933 #endif /* MBEDTLS_SHA1_C */ 00934 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 00935 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ 00936 00937 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) 00938 #if defined(MBEDTLS_AES_C) 00939 #if defined(MBEDTLS_SHA1_C) 00940 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00941 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA", 00942 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00943 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00944 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00945 0 }, 00946 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA", 00947 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00948 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00949 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00950 0 }, 00951 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00952 #endif /* MBEDTLS_SHA1_C */ 00953 #if defined(MBEDTLS_SHA256_C) 00954 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00955 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256", 00956 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00957 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00958 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00959 0 }, 00960 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00961 #if defined(MBEDTLS_GCM_C) 00962 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256", 00963 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00964 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00965 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00966 0 }, 00967 #endif /* MBEDTLS_GCM_C */ 00968 #endif /* MBEDTLS_SHA256_C */ 00969 #if defined(MBEDTLS_SHA512_C) 00970 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00971 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384", 00972 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00973 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00974 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00975 0 }, 00976 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 00977 #if defined(MBEDTLS_GCM_C) 00978 { MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384", 00979 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00980 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00981 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00982 0 }, 00983 #endif /* MBEDTLS_GCM_C */ 00984 #endif /* MBEDTLS_SHA512_C */ 00985 #endif /* MBEDTLS_AES_C */ 00986 00987 #if defined(MBEDTLS_CAMELLIA_C) 00988 #if defined(MBEDTLS_CIPHER_MODE_CBC) 00989 #if defined(MBEDTLS_SHA256_C) 00990 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", 00991 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00992 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 00993 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 00994 0 }, 00995 #endif /* MBEDTLS_SHA256_C */ 00996 #if defined(MBEDTLS_SHA512_C) 00997 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", 00998 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 00999 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01000 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01001 0 }, 01002 #endif /* MBEDTLS_SHA512_C */ 01003 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01004 01005 #if defined(MBEDTLS_GCM_C) 01006 #if defined(MBEDTLS_SHA256_C) 01007 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", 01008 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 01009 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01010 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01011 0 }, 01012 #endif /* MBEDTLS_SHA256_C */ 01013 #if defined(MBEDTLS_SHA512_C) 01014 { MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", 01015 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 01016 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01017 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01018 0 }, 01019 #endif /* MBEDTLS_SHA512_C */ 01020 #endif /* MBEDTLS_GCM_C */ 01021 #endif /* MBEDTLS_CAMELLIA_C */ 01022 01023 #if defined(MBEDTLS_DES_C) 01024 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01025 #if defined(MBEDTLS_SHA1_C) 01026 { MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA", 01027 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 01028 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01029 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01030 0 }, 01031 #endif /* MBEDTLS_SHA1_C */ 01032 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01033 #endif /* MBEDTLS_DES_C */ 01034 01035 #if defined(MBEDTLS_ARC4_C) 01036 #if defined(MBEDTLS_SHA1_C) 01037 { MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA", 01038 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 01039 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01040 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01041 MBEDTLS_CIPHERSUITE_NODTLS }, 01042 #endif /* MBEDTLS_SHA1_C */ 01043 #endif /* MBEDTLS_ARC4_C */ 01044 01045 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 01046 #if defined(MBEDTLS_SHA1_C) 01047 { MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA", 01048 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA, 01049 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01050 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01051 MBEDTLS_CIPHERSUITE_WEAK }, 01052 #endif /* MBEDTLS_SHA1_C */ 01053 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 01054 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ 01055 01056 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) 01057 #if defined(MBEDTLS_AES_C) 01058 #if defined(MBEDTLS_GCM_C) 01059 #if defined(MBEDTLS_SHA256_C) 01060 { MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256", 01061 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 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_SHA256_C */ 01066 01067 #if defined(MBEDTLS_SHA512_C) 01068 { MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384", 01069 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 01070 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01071 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01072 0 }, 01073 #endif /* MBEDTLS_SHA512_C */ 01074 #endif /* MBEDTLS_GCM_C */ 01075 01076 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01077 #if defined(MBEDTLS_SHA256_C) 01078 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256", 01079 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01080 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01081 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01082 0 }, 01083 #endif /* MBEDTLS_SHA256_C */ 01084 01085 #if defined(MBEDTLS_SHA512_C) 01086 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384", 01087 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 01088 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01089 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01090 0 }, 01091 #endif /* MBEDTLS_SHA512_C */ 01092 01093 #if defined(MBEDTLS_SHA1_C) 01094 { MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA", 01095 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK, 01096 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01097 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01098 0 }, 01099 01100 { MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA", 01101 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK, 01102 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01103 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01104 0 }, 01105 #endif /* MBEDTLS_SHA1_C */ 01106 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01107 #if defined(MBEDTLS_CCM_C) 01108 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM, "TLS-PSK-WITH-AES-256-CCM", 01109 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01110 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01111 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01112 0 }, 01113 { MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8, "TLS-PSK-WITH-AES-256-CCM-8", 01114 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01115 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01116 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01117 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 01118 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM, "TLS-PSK-WITH-AES-128-CCM", 01119 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01120 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01121 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01122 0 }, 01123 { MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, "TLS-PSK-WITH-AES-128-CCM-8", 01124 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01125 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01126 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01127 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 01128 #endif /* MBEDTLS_CCM_C */ 01129 #endif /* MBEDTLS_AES_C */ 01130 01131 #if defined(MBEDTLS_CAMELLIA_C) 01132 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01133 #if defined(MBEDTLS_SHA256_C) 01134 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01135 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01136 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01137 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01138 0 }, 01139 #endif /* MBEDTLS_SHA256_C */ 01140 01141 #if defined(MBEDTLS_SHA512_C) 01142 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01143 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 01144 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01145 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01146 0 }, 01147 #endif /* MBEDTLS_SHA512_C */ 01148 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01149 01150 #if defined(MBEDTLS_GCM_C) 01151 #if defined(MBEDTLS_SHA256_C) 01152 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01153 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01154 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01155 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01156 0 }, 01157 #endif /* MBEDTLS_SHA256_C */ 01158 01159 #if defined(MBEDTLS_SHA512_C) 01160 { MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01161 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 01162 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01163 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01164 0 }, 01165 #endif /* MBEDTLS_SHA512_C */ 01166 #endif /* MBEDTLS_GCM_C */ 01167 #endif /* MBEDTLS_CAMELLIA_C */ 01168 01169 #if defined(MBEDTLS_DES_C) 01170 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01171 #if defined(MBEDTLS_SHA1_C) 01172 { MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA", 01173 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK, 01174 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01175 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01176 0 }, 01177 #endif /* MBEDTLS_SHA1_C */ 01178 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01179 #endif /* MBEDTLS_DES_C */ 01180 01181 #if defined(MBEDTLS_ARC4_C) 01182 #if defined(MBEDTLS_SHA1_C) 01183 { MBEDTLS_TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA", 01184 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK, 01185 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01186 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01187 MBEDTLS_CIPHERSUITE_NODTLS }, 01188 #endif /* MBEDTLS_SHA1_C */ 01189 #endif /* MBEDTLS_ARC4_C */ 01190 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ 01191 01192 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) 01193 #if defined(MBEDTLS_AES_C) 01194 #if defined(MBEDTLS_GCM_C) 01195 #if defined(MBEDTLS_SHA256_C) 01196 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256", 01197 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01198 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01199 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01200 0 }, 01201 #endif /* MBEDTLS_SHA256_C */ 01202 01203 #if defined(MBEDTLS_SHA512_C) 01204 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384", 01205 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01206 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01207 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01208 0 }, 01209 #endif /* MBEDTLS_SHA512_C */ 01210 #endif /* MBEDTLS_GCM_C */ 01211 01212 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01213 #if defined(MBEDTLS_SHA256_C) 01214 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256", 01215 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01216 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01217 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01218 0 }, 01219 #endif /* MBEDTLS_SHA256_C */ 01220 01221 #if defined(MBEDTLS_SHA512_C) 01222 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384", 01223 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01224 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01225 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01226 0 }, 01227 #endif /* MBEDTLS_SHA512_C */ 01228 01229 #if defined(MBEDTLS_SHA1_C) 01230 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA", 01231 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01232 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01233 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01234 0 }, 01235 01236 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA", 01237 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01238 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01239 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01240 0 }, 01241 #endif /* MBEDTLS_SHA1_C */ 01242 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01243 #if defined(MBEDTLS_CCM_C) 01244 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM, "TLS-DHE-PSK-WITH-AES-256-CCM", 01245 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01246 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01247 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01248 0 }, 01249 { MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CCM_8, "TLS-DHE-PSK-WITH-AES-256-CCM-8", 01250 MBEDTLS_CIPHER_AES_256_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01251 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01252 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01253 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 01254 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM, "TLS-DHE-PSK-WITH-AES-128-CCM", 01255 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01256 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01257 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01258 0 }, 01259 { MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CCM_8, "TLS-DHE-PSK-WITH-AES-128-CCM-8", 01260 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01261 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01262 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01263 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 01264 #endif /* MBEDTLS_CCM_C */ 01265 #endif /* MBEDTLS_AES_C */ 01266 01267 #if defined(MBEDTLS_CAMELLIA_C) 01268 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01269 #if defined(MBEDTLS_SHA256_C) 01270 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01271 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01272 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01273 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01274 0 }, 01275 #endif /* MBEDTLS_SHA256_C */ 01276 01277 #if defined(MBEDTLS_SHA512_C) 01278 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01279 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01280 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01281 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01282 0 }, 01283 #endif /* MBEDTLS_SHA512_C */ 01284 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01285 01286 #if defined(MBEDTLS_GCM_C) 01287 #if defined(MBEDTLS_SHA256_C) 01288 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01289 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01290 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01291 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01292 0 }, 01293 #endif /* MBEDTLS_SHA256_C */ 01294 01295 #if defined(MBEDTLS_SHA512_C) 01296 { MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01297 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01298 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01299 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01300 0 }, 01301 #endif /* MBEDTLS_SHA512_C */ 01302 #endif /* MBEDTLS_GCM_C */ 01303 #endif /* MBEDTLS_CAMELLIA_C */ 01304 01305 #if defined(MBEDTLS_DES_C) 01306 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01307 #if defined(MBEDTLS_SHA1_C) 01308 { MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA", 01309 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01310 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01311 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01312 0 }, 01313 #endif /* MBEDTLS_SHA1_C */ 01314 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01315 #endif /* MBEDTLS_DES_C */ 01316 01317 #if defined(MBEDTLS_ARC4_C) 01318 #if defined(MBEDTLS_SHA1_C) 01319 { MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA", 01320 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01321 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01322 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01323 MBEDTLS_CIPHERSUITE_NODTLS }, 01324 #endif /* MBEDTLS_SHA1_C */ 01325 #endif /* MBEDTLS_ARC4_C */ 01326 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ 01327 01328 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) 01329 #if defined(MBEDTLS_AES_C) 01330 01331 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01332 #if defined(MBEDTLS_SHA256_C) 01333 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256", 01334 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01335 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01336 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01337 0 }, 01338 #endif /* MBEDTLS_SHA256_C */ 01339 01340 #if defined(MBEDTLS_SHA512_C) 01341 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384", 01342 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01343 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01344 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01345 0 }, 01346 #endif /* MBEDTLS_SHA512_C */ 01347 01348 #if defined(MBEDTLS_SHA1_C) 01349 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA", 01350 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01351 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01352 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01353 0 }, 01354 01355 { MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA", 01356 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01357 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01358 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01359 0 }, 01360 #endif /* MBEDTLS_SHA1_C */ 01361 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01362 #endif /* MBEDTLS_AES_C */ 01363 01364 #if defined(MBEDTLS_CAMELLIA_C) 01365 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01366 #if defined(MBEDTLS_SHA256_C) 01367 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01368 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01369 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01370 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01371 0 }, 01372 #endif /* MBEDTLS_SHA256_C */ 01373 01374 #if defined(MBEDTLS_SHA512_C) 01375 { MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01376 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01377 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01378 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01379 0 }, 01380 #endif /* MBEDTLS_SHA512_C */ 01381 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01382 #endif /* MBEDTLS_CAMELLIA_C */ 01383 01384 #if defined(MBEDTLS_DES_C) 01385 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01386 #if defined(MBEDTLS_SHA1_C) 01387 { MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA", 01388 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, 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_SHA1_C */ 01393 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01394 #endif /* MBEDTLS_DES_C */ 01395 01396 #if defined(MBEDTLS_ARC4_C) 01397 #if defined(MBEDTLS_SHA1_C) 01398 { MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA", 01399 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01400 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01401 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01402 MBEDTLS_CIPHERSUITE_NODTLS }, 01403 #endif /* MBEDTLS_SHA1_C */ 01404 #endif /* MBEDTLS_ARC4_C */ 01405 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ 01406 01407 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) 01408 #if defined(MBEDTLS_AES_C) 01409 #if defined(MBEDTLS_GCM_C) 01410 #if defined(MBEDTLS_SHA256_C) 01411 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256", 01412 MBEDTLS_CIPHER_AES_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01413 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01414 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01415 0 }, 01416 #endif /* MBEDTLS_SHA256_C */ 01417 01418 #if defined(MBEDTLS_SHA512_C) 01419 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384", 01420 MBEDTLS_CIPHER_AES_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01421 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01422 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01423 0 }, 01424 #endif /* MBEDTLS_SHA512_C */ 01425 #endif /* MBEDTLS_GCM_C */ 01426 01427 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01428 #if defined(MBEDTLS_SHA256_C) 01429 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256", 01430 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01431 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01432 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01433 0 }, 01434 #endif /* MBEDTLS_SHA256_C */ 01435 01436 #if defined(MBEDTLS_SHA512_C) 01437 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384", 01438 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01439 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01440 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01441 0 }, 01442 #endif /* MBEDTLS_SHA512_C */ 01443 01444 #if defined(MBEDTLS_SHA1_C) 01445 { MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA", 01446 MBEDTLS_CIPHER_AES_128_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01447 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01448 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01449 0 }, 01450 01451 { MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA", 01452 MBEDTLS_CIPHER_AES_256_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01453 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01454 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01455 0 }, 01456 #endif /* MBEDTLS_SHA1_C */ 01457 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01458 #endif /* MBEDTLS_AES_C */ 01459 01460 #if defined(MBEDTLS_CAMELLIA_C) 01461 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01462 #if defined(MBEDTLS_SHA256_C) 01463 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01464 MBEDTLS_CIPHER_CAMELLIA_128_CBC, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01465 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01466 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01467 0 }, 01468 #endif /* MBEDTLS_SHA256_C */ 01469 01470 #if defined(MBEDTLS_SHA512_C) 01471 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01472 MBEDTLS_CIPHER_CAMELLIA_256_CBC, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01473 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01474 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01475 0 }, 01476 #endif /* MBEDTLS_SHA512_C */ 01477 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01478 01479 #if defined(MBEDTLS_GCM_C) 01480 #if defined(MBEDTLS_SHA256_C) 01481 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01482 MBEDTLS_CIPHER_CAMELLIA_128_GCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01483 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01484 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01485 0 }, 01486 #endif /* MBEDTLS_SHA256_C */ 01487 01488 #if defined(MBEDTLS_SHA512_C) 01489 { MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01490 MBEDTLS_CIPHER_CAMELLIA_256_GCM, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01491 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01492 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01493 0 }, 01494 #endif /* MBEDTLS_SHA512_C */ 01495 #endif /* MBEDTLS_GCM_C */ 01496 #endif /* MBEDTLS_CAMELLIA_C */ 01497 01498 #if defined(MBEDTLS_DES_C) 01499 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01500 #if defined(MBEDTLS_SHA1_C) 01501 { MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA", 01502 MBEDTLS_CIPHER_DES_EDE3_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01503 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01504 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01505 0 }, 01506 #endif /* MBEDTLS_SHA1_C */ 01507 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01508 #endif /* MBEDTLS_DES_C */ 01509 01510 #if defined(MBEDTLS_ARC4_C) 01511 #if defined(MBEDTLS_SHA1_C) 01512 { MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA", 01513 MBEDTLS_CIPHER_ARC4_128, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01514 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01515 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01516 MBEDTLS_CIPHERSUITE_NODTLS }, 01517 #endif /* MBEDTLS_SHA1_C */ 01518 #endif /* MBEDTLS_ARC4_C */ 01519 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ 01520 01521 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) 01522 #if defined(MBEDTLS_AES_C) 01523 #if defined(MBEDTLS_CCM_C) 01524 { MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8, "TLS-ECJPAKE-WITH-AES-128-CCM-8", 01525 MBEDTLS_CIPHER_AES_128_CCM, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECJPAKE, 01526 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01527 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01528 MBEDTLS_CIPHERSUITE_SHORT_TAG }, 01529 #endif /* MBEDTLS_CCM_C */ 01530 #endif /* MBEDTLS_AES_C */ 01531 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ 01532 01533 #if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES) 01534 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 01535 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) 01536 #if defined(MBEDTLS_MD5_C) 01537 { MBEDTLS_TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5", 01538 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_MD5, MBEDTLS_KEY_EXCHANGE_RSA, 01539 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01540 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01541 MBEDTLS_CIPHERSUITE_WEAK }, 01542 #endif 01543 01544 #if defined(MBEDTLS_SHA1_C) 01545 { MBEDTLS_TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA", 01546 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 01547 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01548 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01549 MBEDTLS_CIPHERSUITE_WEAK }, 01550 #endif 01551 01552 #if defined(MBEDTLS_SHA256_C) 01553 { MBEDTLS_TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256", 01554 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA, 01555 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01556 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01557 MBEDTLS_CIPHERSUITE_WEAK }, 01558 #endif 01559 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ 01560 01561 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) 01562 #if defined(MBEDTLS_SHA1_C) 01563 { MBEDTLS_TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA", 01564 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_PSK, 01565 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01566 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01567 MBEDTLS_CIPHERSUITE_WEAK }, 01568 #endif /* MBEDTLS_SHA1_C */ 01569 01570 #if defined(MBEDTLS_SHA256_C) 01571 { MBEDTLS_TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256", 01572 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_PSK, 01573 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01574 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01575 MBEDTLS_CIPHERSUITE_WEAK }, 01576 #endif 01577 01578 #if defined(MBEDTLS_SHA512_C) 01579 { MBEDTLS_TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384", 01580 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_PSK, 01581 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01582 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01583 MBEDTLS_CIPHERSUITE_WEAK }, 01584 #endif 01585 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ 01586 01587 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) 01588 #if defined(MBEDTLS_SHA1_C) 01589 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA", 01590 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01591 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01592 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01593 MBEDTLS_CIPHERSUITE_WEAK }, 01594 #endif /* MBEDTLS_SHA1_C */ 01595 01596 #if defined(MBEDTLS_SHA256_C) 01597 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256", 01598 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01599 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01600 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01601 MBEDTLS_CIPHERSUITE_WEAK }, 01602 #endif 01603 01604 #if defined(MBEDTLS_SHA512_C) 01605 { MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384", 01606 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_DHE_PSK, 01607 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01608 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01609 MBEDTLS_CIPHERSUITE_WEAK }, 01610 #endif 01611 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ 01612 01613 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) 01614 #if defined(MBEDTLS_SHA1_C) 01615 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA", 01616 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01617 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01618 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01619 MBEDTLS_CIPHERSUITE_WEAK }, 01620 #endif /* MBEDTLS_SHA1_C */ 01621 01622 #if defined(MBEDTLS_SHA256_C) 01623 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256", 01624 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01625 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01626 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01627 MBEDTLS_CIPHERSUITE_WEAK }, 01628 #endif 01629 01630 #if defined(MBEDTLS_SHA512_C) 01631 { MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384", 01632 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_ECDHE_PSK, 01633 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01634 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01635 MBEDTLS_CIPHERSUITE_WEAK }, 01636 #endif 01637 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ 01638 01639 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) 01640 #if defined(MBEDTLS_SHA1_C) 01641 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA", 01642 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01643 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01644 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01645 MBEDTLS_CIPHERSUITE_WEAK }, 01646 #endif /* MBEDTLS_SHA1_C */ 01647 01648 #if defined(MBEDTLS_SHA256_C) 01649 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256", 01650 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA256, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01651 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01652 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01653 MBEDTLS_CIPHERSUITE_WEAK }, 01654 #endif 01655 01656 #if defined(MBEDTLS_SHA512_C) 01657 { MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384", 01658 MBEDTLS_CIPHER_NULL, MBEDTLS_MD_SHA384, MBEDTLS_KEY_EXCHANGE_RSA_PSK, 01659 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_1, 01660 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01661 MBEDTLS_CIPHERSUITE_WEAK }, 01662 #endif 01663 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ 01664 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 01665 01666 #if defined(MBEDTLS_DES_C) 01667 #if defined(MBEDTLS_CIPHER_MODE_CBC) 01668 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) 01669 #if defined(MBEDTLS_SHA1_C) 01670 { MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA", 01671 MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_DHE_RSA, 01672 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01673 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01674 MBEDTLS_CIPHERSUITE_WEAK }, 01675 #endif /* MBEDTLS_SHA1_C */ 01676 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ 01677 01678 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) 01679 #if defined(MBEDTLS_SHA1_C) 01680 { MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA", 01681 MBEDTLS_CIPHER_DES_CBC, MBEDTLS_MD_SHA1, MBEDTLS_KEY_EXCHANGE_RSA, 01682 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_0, 01683 MBEDTLS_SSL_MAJOR_VERSION_3, MBEDTLS_SSL_MINOR_VERSION_3, 01684 MBEDTLS_CIPHERSUITE_WEAK }, 01685 #endif /* MBEDTLS_SHA1_C */ 01686 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ 01687 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 01688 #endif /* MBEDTLS_DES_C */ 01689 #endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */ 01690 01691 { 0, "", 01692 MBEDTLS_CIPHER_NONE, MBEDTLS_MD_NONE, MBEDTLS_KEY_EXCHANGE_NONE, 01693 0, 0, 0, 0, 0 } 01694 }; 01695 01696 #if defined(MBEDTLS_SSL_CIPHERSUITES) 01697 const int *mbedtls_ssl_list_ciphersuites( void ) 01698 { 01699 return( ciphersuite_preference ); 01700 } 01701 #else 01702 #define MAX_CIPHERSUITES sizeof( ciphersuite_definitions ) / \ 01703 sizeof( ciphersuite_definitions[0] ) 01704 static int supported_ciphersuites[MAX_CIPHERSUITES]; 01705 static int supported_init = 0; 01706 01707 const int *mbedtls_ssl_list_ciphersuites( void ) 01708 { 01709 /* 01710 * On initial call filter out all ciphersuites not supported by current 01711 * build based on presence in the ciphersuite_definitions. 01712 */ 01713 if( supported_init == 0 ) 01714 { 01715 const int *p; 01716 int *q; 01717 01718 for( p = ciphersuite_preference, q = supported_ciphersuites; 01719 *p != 0 && q < supported_ciphersuites + MAX_CIPHERSUITES - 1; 01720 p++ ) 01721 { 01722 #if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES) 01723 const mbedtls_ssl_ciphersuite_t *cs_info; 01724 if( ( cs_info = mbedtls_ssl_ciphersuite_from_id( *p ) ) != NULL && 01725 cs_info->cipher != MBEDTLS_CIPHER_ARC4_128 ) 01726 #else 01727 if( mbedtls_ssl_ciphersuite_from_id( *p ) != NULL ) 01728 #endif 01729 *(q++) = *p; 01730 } 01731 *q = 0; 01732 01733 supported_init = 1; 01734 } 01735 01736 return( supported_ciphersuites ); 01737 } 01738 #endif /* MBEDTLS_SSL_CIPHERSUITES */ 01739 01740 const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_string( 01741 const char *ciphersuite_name ) 01742 { 01743 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions; 01744 01745 if( NULL == ciphersuite_name ) 01746 return( NULL ); 01747 01748 while( cur->id != 0 ) 01749 { 01750 if( 0 == strcmp( cur->name, ciphersuite_name ) ) 01751 return( cur ); 01752 01753 cur++; 01754 } 01755 01756 return( NULL ); 01757 } 01758 01759 const mbedtls_ssl_ciphersuite_t *mbedtls_ssl_ciphersuite_from_id( int ciphersuite ) 01760 { 01761 const mbedtls_ssl_ciphersuite_t *cur = ciphersuite_definitions; 01762 01763 while( cur->id != 0 ) 01764 { 01765 if( cur->id == ciphersuite ) 01766 return( cur ); 01767 01768 cur++; 01769 } 01770 01771 return( NULL ); 01772 } 01773 01774 const char *mbedtls_ssl_get_ciphersuite_name( const int ciphersuite_id ) 01775 { 01776 const mbedtls_ssl_ciphersuite_t *cur; 01777 01778 cur = mbedtls_ssl_ciphersuite_from_id( ciphersuite_id ); 01779 01780 if( cur == NULL ) 01781 return( "unknown" ); 01782 01783 return( cur->name ); 01784 } 01785 01786 int mbedtls_ssl_get_ciphersuite_id( const char *ciphersuite_name ) 01787 { 01788 const mbedtls_ssl_ciphersuite_t *cur; 01789 01790 cur = mbedtls_ssl_ciphersuite_from_string( ciphersuite_name ); 01791 01792 if( cur == NULL ) 01793 return( 0 ); 01794 01795 return( cur->id ); 01796 } 01797 01798 #if defined(MBEDTLS_PK_C) 01799 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_pk_alg( const mbedtls_ssl_ciphersuite_t *info ) 01800 { 01801 switch( info->key_exchange ) 01802 { 01803 case MBEDTLS_KEY_EXCHANGE_RSA: 01804 case MBEDTLS_KEY_EXCHANGE_DHE_RSA: 01805 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: 01806 case MBEDTLS_KEY_EXCHANGE_RSA_PSK: 01807 return( MBEDTLS_PK_RSA ); 01808 01809 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: 01810 return( MBEDTLS_PK_ECDSA ); 01811 01812 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: 01813 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: 01814 return( MBEDTLS_PK_ECKEY ); 01815 01816 default: 01817 return( MBEDTLS_PK_NONE ); 01818 } 01819 } 01820 01821 mbedtls_pk_type_t mbedtls_ssl_get_ciphersuite_sig_alg( const mbedtls_ssl_ciphersuite_t *info ) 01822 { 01823 switch( info->key_exchange ) 01824 { 01825 case MBEDTLS_KEY_EXCHANGE_RSA: 01826 case MBEDTLS_KEY_EXCHANGE_DHE_RSA: 01827 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: 01828 return( MBEDTLS_PK_RSA ); 01829 01830 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: 01831 return( MBEDTLS_PK_ECDSA ); 01832 01833 default: 01834 return( MBEDTLS_PK_NONE ); 01835 } 01836 } 01837 01838 #endif /* MBEDTLS_PK_C */ 01839 01840 #if defined(MBEDTLS_ECDH_C) || defined(MBEDTLS_ECDSA_C) 01841 int mbedtls_ssl_ciphersuite_uses_ec( const mbedtls_ssl_ciphersuite_t *info ) 01842 { 01843 switch( info->key_exchange ) 01844 { 01845 case MBEDTLS_KEY_EXCHANGE_ECDHE_RSA: 01846 case MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA: 01847 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: 01848 case MBEDTLS_KEY_EXCHANGE_ECDH_RSA: 01849 case MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA: 01850 return( 1 ); 01851 01852 default: 01853 return( 0 ); 01854 } 01855 } 01856 #endif /* MBEDTLS_ECDH_C || MBEDTLS_ECDSA_C */ 01857 01858 #if defined(MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED) 01859 int mbedtls_ssl_ciphersuite_uses_psk( const mbedtls_ssl_ciphersuite_t *info ) 01860 { 01861 switch( info->key_exchange ) 01862 { 01863 case MBEDTLS_KEY_EXCHANGE_PSK: 01864 case MBEDTLS_KEY_EXCHANGE_RSA_PSK: 01865 case MBEDTLS_KEY_EXCHANGE_DHE_PSK: 01866 case MBEDTLS_KEY_EXCHANGE_ECDHE_PSK: 01867 return( 1 ); 01868 01869 default: 01870 return( 0 ); 01871 } 01872 } 01873 #endif /* MBEDTLS_KEY_EXCHANGE__SOME__PSK_ENABLED */ 01874 01875 #endif /* MBEDTLS_SSL_TLS_C */
Generated on Tue Jul 12 2022 17:25:42 by
