Marco Zecchini
/
Example_RTOS
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
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 > 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 Sun Jul 17 2022 08:25:31 by 1.7.2