Hannes Tschofenig
/
aes-gcm-test-program
Example program to test AES-GCM functionality. Used for a workshop
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 PolarSSL 00005 * 00006 * Copyright (C) 2006-2014, Brainspark B.V. 00007 * 00008 * This file is part of PolarSSL (http://www.polarssl.org) 00009 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org> 00010 * 00011 * All rights reserved. 00012 * 00013 * This program is free software; you can redistribute it and/or modify 00014 * it under the terms of the GNU General Public License as published by 00015 * the Free Software Foundation; either version 2 of the License, or 00016 * (at your option) any later version. 00017 * 00018 * This program is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00021 * GNU General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU General Public License along 00024 * with this program; if not, write to the Free Software Foundation, Inc., 00025 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00026 */ 00027 00028 #if !defined(POLARSSL_CONFIG_FILE) 00029 #include "polarssl/config.h" 00030 #else 00031 #include POLARSSL_CONFIG_FILE 00032 #endif 00033 00034 #if defined(POLARSSL_SSL_TLS_C) 00035 00036 #include "polarssl/ssl_ciphersuites.h" 00037 #include "polarssl/ssl.h" 00038 00039 #include <stdlib.h> 00040 00041 #if defined(_MSC_VER) && !defined strcasecmp && !defined(EFIX64) && \ 00042 !defined(EFI32) 00043 #define strcasecmp _stricmp 00044 #endif 00045 00046 /* 00047 * Ordered from most preferred to least preferred in terms of security. 00048 * 00049 * Current rule (except rc4, weak and null which come last): 00050 * 1. By key exchange: 00051 * Forward-secure non-PSK > forward-secure PSK > other non-PSK > other PSK 00052 * 2. By key length and cipher: 00053 * AES-256 > Camellia-256 > AES-128 > Camellia-128 > 3DES 00054 * 3. By cipher mode when relevant GCM > CBC 00055 * 4. By hash function used 00056 * 5. By key exchange/auth again: EC > non-EC 00057 */ 00058 static const int ciphersuite_preference[] = 00059 { 00060 /* All AES-256 ephemeral suites */ 00061 TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 00062 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 00063 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, 00064 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, 00065 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, 00066 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, 00067 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 00068 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, 00069 TLS_DHE_RSA_WITH_AES_256_CBC_SHA, 00070 00071 /* All CAMELLIA-256 ephemeral suites */ 00072 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, 00073 TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00074 TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00075 TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, 00076 TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, 00077 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, 00078 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, 00079 00080 /* All AES-128 ephemeral suites */ 00081 TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 00082 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 00083 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, 00084 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, 00085 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 00086 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, 00087 TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 00088 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, 00089 TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 00090 00091 /* All CAMELLIA-128 ephemeral suites */ 00092 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, 00093 TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00094 TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00095 TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, 00096 TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00097 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00098 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, 00099 00100 /* All remaining >= 128-bit ephemeral suites */ 00101 TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, 00102 TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, 00103 TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, 00104 00105 /* The PSK ephemeral suites */ 00106 TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, 00107 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, 00108 TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, 00109 TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, 00110 TLS_DHE_PSK_WITH_AES_256_CBC_SHA, 00111 TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00112 TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00113 TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00114 00115 TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, 00116 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, 00117 TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, 00118 TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, 00119 TLS_DHE_PSK_WITH_AES_128_CBC_SHA, 00120 TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00121 TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00122 TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00123 00124 TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, 00125 TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, 00126 00127 /* All AES-256 suites */ 00128 TLS_RSA_WITH_AES_256_GCM_SHA384, 00129 TLS_RSA_WITH_AES_256_CBC_SHA256, 00130 TLS_RSA_WITH_AES_256_CBC_SHA, 00131 TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, 00132 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, 00133 TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, 00134 TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, 00135 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, 00136 TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, 00137 00138 /* All CAMELLIA-256 suites */ 00139 TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00140 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, 00141 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, 00142 TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, 00143 TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, 00144 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, 00145 TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, 00146 00147 /* All AES-128 suites */ 00148 TLS_RSA_WITH_AES_128_GCM_SHA256, 00149 TLS_RSA_WITH_AES_128_CBC_SHA256, 00150 TLS_RSA_WITH_AES_128_CBC_SHA, 00151 TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, 00152 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, 00153 TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, 00154 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, 00155 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, 00156 TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, 00157 00158 /* All CAMELLIA-128 suites */ 00159 TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00160 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00161 TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, 00162 TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, 00163 TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, 00164 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, 00165 TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, 00166 00167 /* All remaining >= 128-bit suites */ 00168 TLS_RSA_WITH_3DES_EDE_CBC_SHA, 00169 TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, 00170 TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, 00171 00172 /* The RSA PSK suites */ 00173 TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, 00174 TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, 00175 TLS_RSA_PSK_WITH_AES_256_CBC_SHA, 00176 TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00177 TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00178 00179 TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, 00180 TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, 00181 TLS_RSA_PSK_WITH_AES_128_CBC_SHA, 00182 TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00183 TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00184 00185 TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, 00186 00187 /* The PSK suites */ 00188 TLS_PSK_WITH_AES_256_GCM_SHA384, 00189 TLS_PSK_WITH_AES_256_CBC_SHA384, 00190 TLS_PSK_WITH_AES_256_CBC_SHA, 00191 TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, 00192 TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, 00193 00194 TLS_PSK_WITH_AES_128_GCM_SHA256, 00195 TLS_PSK_WITH_AES_128_CBC_SHA256, 00196 TLS_PSK_WITH_AES_128_CBC_SHA, 00197 TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, 00198 TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, 00199 00200 TLS_PSK_WITH_3DES_EDE_CBC_SHA, 00201 00202 /* RC4 suites */ 00203 TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 00204 TLS_ECDHE_RSA_WITH_RC4_128_SHA, 00205 TLS_ECDHE_PSK_WITH_RC4_128_SHA, 00206 TLS_DHE_PSK_WITH_RC4_128_SHA, 00207 TLS_RSA_WITH_RC4_128_SHA, 00208 TLS_RSA_WITH_RC4_128_MD5, 00209 TLS_ECDH_RSA_WITH_RC4_128_SHA, 00210 TLS_ECDH_ECDSA_WITH_RC4_128_SHA, 00211 TLS_RSA_PSK_WITH_RC4_128_SHA, 00212 TLS_PSK_WITH_RC4_128_SHA, 00213 00214 /* Weak suites */ 00215 TLS_DHE_RSA_WITH_DES_CBC_SHA, 00216 TLS_RSA_WITH_DES_CBC_SHA, 00217 00218 /* NULL suites */ 00219 TLS_ECDHE_ECDSA_WITH_NULL_SHA, 00220 TLS_ECDHE_RSA_WITH_NULL_SHA, 00221 TLS_ECDHE_PSK_WITH_NULL_SHA384, 00222 TLS_ECDHE_PSK_WITH_NULL_SHA256, 00223 TLS_ECDHE_PSK_WITH_NULL_SHA, 00224 TLS_DHE_PSK_WITH_NULL_SHA384, 00225 TLS_DHE_PSK_WITH_NULL_SHA256, 00226 TLS_DHE_PSK_WITH_NULL_SHA, 00227 00228 TLS_RSA_WITH_NULL_SHA256, 00229 TLS_RSA_WITH_NULL_SHA, 00230 TLS_RSA_WITH_NULL_MD5, 00231 TLS_ECDH_RSA_WITH_NULL_SHA, 00232 TLS_ECDH_ECDSA_WITH_NULL_SHA, 00233 TLS_RSA_PSK_WITH_NULL_SHA384, 00234 TLS_RSA_PSK_WITH_NULL_SHA256, 00235 TLS_RSA_PSK_WITH_NULL_SHA, 00236 TLS_PSK_WITH_NULL_SHA384, 00237 TLS_PSK_WITH_NULL_SHA256, 00238 TLS_PSK_WITH_NULL_SHA, 00239 00240 0 00241 }; 00242 00243 #define MAX_CIPHERSUITES 160 00244 static int supported_ciphersuites[MAX_CIPHERSUITES]; 00245 static int supported_init = 0; 00246 00247 static const ssl_ciphersuite_t ciphersuite_definitions[] = 00248 { 00249 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) 00250 #if defined(POLARSSL_AES_C) 00251 #if defined(POLARSSL_SHA1_C) 00252 #if defined(POLARSSL_CIPHER_MODE_CBC) 00253 { TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA", 00254 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00255 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00256 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00257 0 }, 00258 { TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA", 00259 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00260 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00261 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00262 0 }, 00263 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00264 #endif /* POLARSSL_SHA1_C */ 00265 #if defined(POLARSSL_SHA256_C) 00266 #if defined(POLARSSL_CIPHER_MODE_CBC) 00267 { TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-CBC-SHA256", 00268 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00269 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00270 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00271 0 }, 00272 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00273 #if defined(POLARSSL_GCM_C) 00274 { TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256", 00275 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00276 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00277 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00278 0 }, 00279 #endif /* POLARSSL_GCM_C */ 00280 #endif /* POLARSSL_SHA256_C */ 00281 #if defined(POLARSSL_SHA512_C) 00282 #if defined(POLARSSL_CIPHER_MODE_CBC) 00283 { TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-CBC-SHA384", 00284 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00285 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00286 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00287 0 }, 00288 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00289 #if defined(POLARSSL_GCM_C) 00290 { TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-AES-256-GCM-SHA384", 00291 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00292 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00293 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00294 0 }, 00295 #endif /* POLARSSL_GCM_C */ 00296 #endif /* POLARSSL_SHA512_C */ 00297 #endif /* POLARSSL_AES_C */ 00298 00299 #if defined(POLARSSL_CAMELLIA_C) 00300 #if defined(POLARSSL_CIPHER_MODE_CBC) 00301 #if defined(POLARSSL_SHA256_C) 00302 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", 00303 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00304 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00305 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00306 0 }, 00307 #endif /* POLARSSL_SHA256_C */ 00308 #if defined(POLARSSL_SHA512_C) 00309 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", 00310 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00311 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00312 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00313 0 }, 00314 #endif /* POLARSSL_SHA512_C */ 00315 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00316 00317 #if defined(POLARSSL_GCM_C) 00318 #if defined(POLARSSL_SHA256_C) 00319 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", 00320 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00321 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00322 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00323 0 }, 00324 #endif /* POLARSSL_SHA256_C */ 00325 #if defined(POLARSSL_SHA512_C) 00326 { TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", 00327 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00328 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00329 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00330 0 }, 00331 #endif /* POLARSSL_SHA512_C */ 00332 #endif /* POLARSSL_GCM_C */ 00333 #endif /* POLARSSL_CAMELLIA_C */ 00334 00335 #if defined(POLARSSL_DES_C) 00336 #if defined(POLARSSL_CIPHER_MODE_CBC) 00337 #if defined(POLARSSL_SHA1_C) 00338 { TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-ECDSA-WITH-3DES-EDE-CBC-SHA", 00339 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00340 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00341 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00342 0 }, 00343 #endif /* POLARSSL_SHA1_C */ 00344 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00345 #endif /* POLARSSL_DES_C */ 00346 00347 #if defined(POLARSSL_ARC4_C) 00348 #if defined(POLARSSL_SHA1_C) 00349 { TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, "TLS-ECDHE-ECDSA-WITH-RC4-128-SHA", 00350 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00351 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00352 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00353 0 }, 00354 #endif /* POLARSSL_SHA1_C */ 00355 #endif /* POLARSSL_ARC4_C */ 00356 00357 #if defined(POLARSSL_CIPHER_NULL_CIPHER) 00358 #if defined(POLARSSL_SHA1_C) 00359 { TLS_ECDHE_ECDSA_WITH_NULL_SHA, "TLS-ECDHE-ECDSA-WITH-NULL-SHA", 00360 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA, 00361 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00362 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00363 POLARSSL_CIPHERSUITE_WEAK }, 00364 #endif /* POLARSSL_SHA1_C */ 00365 #endif /* POLARSSL_CIPHER_NULL_CIPHER */ 00366 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ 00367 00368 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED) 00369 #if defined(POLARSSL_AES_C) 00370 #if defined(POLARSSL_SHA1_C) 00371 #if defined(POLARSSL_CIPHER_MODE_CBC) 00372 { TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA", 00373 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00374 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00375 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00376 0 }, 00377 { TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA", 00378 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00379 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00380 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00381 0 }, 00382 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00383 #endif /* POLARSSL_SHA1_C */ 00384 #if defined(POLARSSL_SHA256_C) 00385 #if defined(POLARSSL_CIPHER_MODE_CBC) 00386 { TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-CBC-SHA256", 00387 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00388 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00389 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00390 0 }, 00391 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00392 #if defined(POLARSSL_GCM_C) 00393 { TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256", 00394 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00395 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00396 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00397 0 }, 00398 #endif /* POLARSSL_GCM_C */ 00399 #endif /* POLARSSL_SHA256_C */ 00400 #if defined(POLARSSL_SHA512_C) 00401 #if defined(POLARSSL_CIPHER_MODE_CBC) 00402 { TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-CBC-SHA384", 00403 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00404 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00405 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00406 0 }, 00407 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00408 #if defined(POLARSSL_GCM_C) 00409 { TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-AES-256-GCM-SHA384", 00410 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00411 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00412 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00413 0 }, 00414 #endif /* POLARSSL_GCM_C */ 00415 #endif /* POLARSSL_SHA512_C */ 00416 #endif /* POLARSSL_AES_C */ 00417 00418 #if defined(POLARSSL_CAMELLIA_C) 00419 #if defined(POLARSSL_CIPHER_MODE_CBC) 00420 #if defined(POLARSSL_SHA256_C) 00421 { TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00422 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00423 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00424 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00425 0 }, 00426 #endif /* POLARSSL_SHA256_C */ 00427 #if defined(POLARSSL_SHA512_C) 00428 { TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-CBC-SHA384", 00429 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00430 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00431 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00432 0 }, 00433 #endif /* POLARSSL_SHA512_C */ 00434 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00435 00436 #if defined(POLARSSL_GCM_C) 00437 #if defined(POLARSSL_SHA256_C) 00438 { TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00439 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00440 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00441 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00442 0 }, 00443 #endif /* POLARSSL_SHA256_C */ 00444 #if defined(POLARSSL_SHA512_C) 00445 { TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00446 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00447 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00448 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00449 0 }, 00450 #endif /* POLARSSL_SHA512_C */ 00451 #endif /* POLARSSL_GCM_C */ 00452 #endif /* POLARSSL_CAMELLIA_C */ 00453 00454 #if defined(POLARSSL_DES_C) 00455 #if defined(POLARSSL_CIPHER_MODE_CBC) 00456 #if defined(POLARSSL_SHA1_C) 00457 { TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-RSA-WITH-3DES-EDE-CBC-SHA", 00458 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00459 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00460 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00461 0 }, 00462 #endif /* POLARSSL_SHA1_C */ 00463 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00464 #endif /* POLARSSL_DES_C */ 00465 00466 #if defined(POLARSSL_ARC4_C) 00467 #if defined(POLARSSL_SHA1_C) 00468 { TLS_ECDHE_RSA_WITH_RC4_128_SHA, "TLS-ECDHE-RSA-WITH-RC4-128-SHA", 00469 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00470 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00471 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00472 0 }, 00473 #endif /* POLARSSL_SHA1_C */ 00474 #endif /* POLARSSL_ARC4_C */ 00475 00476 #if defined(POLARSSL_CIPHER_NULL_CIPHER) 00477 #if defined(POLARSSL_SHA1_C) 00478 { TLS_ECDHE_RSA_WITH_NULL_SHA, "TLS-ECDHE-RSA-WITH-NULL-SHA", 00479 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_RSA, 00480 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00481 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00482 POLARSSL_CIPHERSUITE_WEAK }, 00483 #endif /* POLARSSL_SHA1_C */ 00484 #endif /* POLARSSL_CIPHER_NULL_CIPHER */ 00485 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ 00486 00487 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) 00488 #if defined(POLARSSL_AES_C) 00489 #if defined(POLARSSL_SHA512_C) && defined(POLARSSL_GCM_C) 00490 { TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, "TLS-DHE-RSA-WITH-AES-256-GCM-SHA384", 00491 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00492 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00493 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00494 0 }, 00495 #endif /* POLARSSL_SHA512_C && POLARSSL_GCM_C */ 00496 00497 #if defined(POLARSSL_SHA256_C) 00498 #if defined(POLARSSL_GCM_C) 00499 { TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, "TLS-DHE-RSA-WITH-AES-128-GCM-SHA256", 00500 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00501 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00502 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00503 0 }, 00504 #endif /* POLARSSL_GCM_C */ 00505 00506 #if defined(POLARSSL_CIPHER_MODE_CBC) 00507 { TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA256", 00508 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00509 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00510 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00511 0 }, 00512 00513 { TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA256", 00514 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00515 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00516 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00517 0 }, 00518 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00519 #endif /* POLARSSL_SHA256_C */ 00520 00521 #if defined(POLARSSL_CIPHER_MODE_CBC) 00522 #if defined(POLARSSL_SHA1_C) 00523 { TLS_DHE_RSA_WITH_AES_128_CBC_SHA, "TLS-DHE-RSA-WITH-AES-128-CBC-SHA", 00524 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00525 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00526 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00527 0 }, 00528 00529 { TLS_DHE_RSA_WITH_AES_256_CBC_SHA, "TLS-DHE-RSA-WITH-AES-256-CBC-SHA", 00530 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00531 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00532 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00533 0 }, 00534 #endif /* POLARSSL_SHA1_C */ 00535 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00536 #endif /* POLARSSL_AES_C */ 00537 00538 #if defined(POLARSSL_CAMELLIA_C) 00539 #if defined(POLARSSL_CIPHER_MODE_CBC) 00540 #if defined(POLARSSL_SHA256_C) 00541 { TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00542 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00543 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00544 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00545 0 }, 00546 00547 { TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA256", 00548 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00549 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00550 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00551 0 }, 00552 #endif /* POLARSSL_SHA256_C */ 00553 00554 #if defined(POLARSSL_SHA1_C) 00555 { TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-128-CBC-SHA", 00556 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00557 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00558 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00559 0 }, 00560 00561 { TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-DHE-RSA-WITH-CAMELLIA-256-CBC-SHA", 00562 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00563 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00564 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00565 0 }, 00566 #endif /* POLARSSL_SHA1_C */ 00567 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00568 #if defined(POLARSSL_GCM_C) 00569 #if defined(POLARSSL_SHA256_C) 00570 { TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00571 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00572 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00573 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00574 0 }, 00575 #endif /* POLARSSL_SHA256_C */ 00576 00577 #if defined(POLARSSL_SHA512_C) 00578 { TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00579 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00580 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00581 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00582 0 }, 00583 #endif /* POLARSSL_SHA512_C */ 00584 #endif /* POLARSSL_GCM_C */ 00585 #endif /* POLARSSL_CAMELLIA_C */ 00586 00587 #if defined(POLARSSL_DES_C) 00588 #if defined(POLARSSL_CIPHER_MODE_CBC) 00589 #if defined(POLARSSL_SHA1_C) 00590 { TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-RSA-WITH-3DES-EDE-CBC-SHA", 00591 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 00592 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00593 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00594 0 }, 00595 #endif /* POLARSSL_SHA1_C */ 00596 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00597 #endif /* POLARSSL_DES_C */ 00598 #endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */ 00599 00600 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED) 00601 #if defined(POLARSSL_AES_C) 00602 #if defined(POLARSSL_SHA512_C) && defined(POLARSSL_GCM_C) 00603 { TLS_RSA_WITH_AES_256_GCM_SHA384, "TLS-RSA-WITH-AES-256-GCM-SHA384", 00604 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA, 00605 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00606 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00607 0 }, 00608 #endif /* POLARSSL_SHA512_C && POLARSSL_GCM_C */ 00609 00610 #if defined(POLARSSL_SHA256_C) 00611 #if defined(POLARSSL_GCM_C) 00612 { TLS_RSA_WITH_AES_128_GCM_SHA256, "TLS-RSA-WITH-AES-128-GCM-SHA256", 00613 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00614 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00615 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00616 0 }, 00617 #endif /* POLARSSL_GCM_C */ 00618 00619 #if defined(POLARSSL_CIPHER_MODE_CBC) 00620 { TLS_RSA_WITH_AES_128_CBC_SHA256, "TLS-RSA-WITH-AES-128-CBC-SHA256", 00621 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00622 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00623 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00624 0 }, 00625 00626 { TLS_RSA_WITH_AES_256_CBC_SHA256, "TLS-RSA-WITH-AES-256-CBC-SHA256", 00627 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00628 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00629 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00630 0 }, 00631 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00632 #endif /* POLARSSL_SHA256_C */ 00633 00634 #if defined(POLARSSL_SHA1_C) 00635 #if defined(POLARSSL_CIPHER_MODE_CBC) 00636 { TLS_RSA_WITH_AES_128_CBC_SHA, "TLS-RSA-WITH-AES-128-CBC-SHA", 00637 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00638 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00639 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00640 0 }, 00641 00642 { TLS_RSA_WITH_AES_256_CBC_SHA, "TLS-RSA-WITH-AES-256-CBC-SHA", 00643 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00644 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00645 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00646 0 }, 00647 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00648 #endif /* POLARSSL_SHA1_C */ 00649 #endif /* POLARSSL_AES_C */ 00650 00651 #if defined(POLARSSL_CAMELLIA_C) 00652 #if defined(POLARSSL_CIPHER_MODE_CBC) 00653 #if defined(POLARSSL_SHA256_C) 00654 { TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00655 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00656 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00657 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00658 0 }, 00659 00660 { TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA256", 00661 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00662 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00663 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00664 0 }, 00665 #endif /* POLARSSL_SHA256_C */ 00666 00667 #if defined(POLARSSL_SHA1_C) 00668 { TLS_RSA_WITH_CAMELLIA_128_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-128-CBC-SHA", 00669 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00670 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00671 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00672 0 }, 00673 00674 { TLS_RSA_WITH_CAMELLIA_256_CBC_SHA, "TLS-RSA-WITH-CAMELLIA-256-CBC-SHA", 00675 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00676 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00677 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00678 0 }, 00679 #endif /* POLARSSL_SHA1_C */ 00680 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00681 00682 #if defined(POLARSSL_GCM_C) 00683 #if defined(POLARSSL_SHA256_C) 00684 { TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00685 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 00686 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00687 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00688 0 }, 00689 #endif /* POLARSSL_SHA256_C */ 00690 00691 #if defined(POLARSSL_SHA1_C) 00692 { TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00693 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA, 00694 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00695 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00696 0 }, 00697 #endif /* POLARSSL_SHA1_C */ 00698 #endif /* POLARSSL_GCM_C */ 00699 #endif /* POLARSSL_CAMELLIA_C */ 00700 00701 #if defined(POLARSSL_DES_C) 00702 #if defined(POLARSSL_CIPHER_MODE_CBC) 00703 #if defined(POLARSSL_SHA1_C) 00704 { TLS_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-WITH-3DES-EDE-CBC-SHA", 00705 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00706 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00707 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00708 0 }, 00709 #endif /* POLARSSL_SHA1_C */ 00710 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00711 #endif /* POLARSSL_DES_C */ 00712 00713 #if defined(POLARSSL_ARC4_C) 00714 #if defined(POLARSSL_MD5_C) 00715 { TLS_RSA_WITH_RC4_128_MD5, "TLS-RSA-WITH-RC4-128-MD5", 00716 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_MD5, POLARSSL_KEY_EXCHANGE_RSA, 00717 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00718 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00719 0 }, 00720 #endif 00721 00722 #if defined(POLARSSL_SHA1_C) 00723 { TLS_RSA_WITH_RC4_128_SHA, "TLS-RSA-WITH-RC4-128-SHA", 00724 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 00725 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00726 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00727 0 }, 00728 #endif 00729 #endif /* POLARSSL_ARC4_C */ 00730 #endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */ 00731 00732 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED) 00733 #if defined(POLARSSL_AES_C) 00734 #if defined(POLARSSL_SHA1_C) 00735 #if defined(POLARSSL_CIPHER_MODE_CBC) 00736 { TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA", 00737 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00738 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00739 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00740 0 }, 00741 { TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA", 00742 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00743 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00744 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00745 0 }, 00746 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00747 #endif /* POLARSSL_SHA1_C */ 00748 #if defined(POLARSSL_SHA256_C) 00749 #if defined(POLARSSL_CIPHER_MODE_CBC) 00750 { TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-AES-128-CBC-SHA256", 00751 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00752 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00753 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00754 0 }, 00755 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00756 #if defined(POLARSSL_GCM_C) 00757 { TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-AES-128-GCM-SHA256", 00758 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00759 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00760 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00761 0 }, 00762 #endif /* POLARSSL_GCM_C */ 00763 #endif /* POLARSSL_SHA256_C */ 00764 #if defined(POLARSSL_SHA512_C) 00765 #if defined(POLARSSL_CIPHER_MODE_CBC) 00766 { TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-AES-256-CBC-SHA384", 00767 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00768 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00769 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00770 0 }, 00771 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00772 #if defined(POLARSSL_GCM_C) 00773 { TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-AES-256-GCM-SHA384", 00774 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00775 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00776 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00777 0 }, 00778 #endif /* POLARSSL_GCM_C */ 00779 #endif /* POLARSSL_SHA512_C */ 00780 #endif /* POLARSSL_AES_C */ 00781 00782 #if defined(POLARSSL_CAMELLIA_C) 00783 #if defined(POLARSSL_CIPHER_MODE_CBC) 00784 #if defined(POLARSSL_SHA256_C) 00785 { TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-CBC-SHA256", 00786 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00787 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00788 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00789 0 }, 00790 #endif /* POLARSSL_SHA256_C */ 00791 #if defined(POLARSSL_SHA512_C) 00792 { TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-CBC-SHA384", 00793 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00794 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00795 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00796 0 }, 00797 #endif /* POLARSSL_SHA512_C */ 00798 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00799 00800 #if defined(POLARSSL_GCM_C) 00801 #if defined(POLARSSL_SHA256_C) 00802 { TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-RSA-WITH-CAMELLIA-128-GCM-SHA256", 00803 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00804 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00805 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00806 0 }, 00807 #endif /* POLARSSL_SHA256_C */ 00808 #if defined(POLARSSL_SHA512_C) 00809 { TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-RSA-WITH-CAMELLIA-256-GCM-SHA384", 00810 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00811 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00812 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00813 0 }, 00814 #endif /* POLARSSL_SHA512_C */ 00815 #endif /* POLARSSL_GCM_C */ 00816 #endif /* POLARSSL_CAMELLIA_C */ 00817 00818 #if defined(POLARSSL_DES_C) 00819 #if defined(POLARSSL_CIPHER_MODE_CBC) 00820 #if defined(POLARSSL_SHA1_C) 00821 { TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-RSA-WITH-3DES-EDE-CBC-SHA", 00822 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00823 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00824 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00825 0 }, 00826 #endif /* POLARSSL_SHA1_C */ 00827 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00828 #endif /* POLARSSL_DES_C */ 00829 00830 #if defined(POLARSSL_ARC4_C) 00831 #if defined(POLARSSL_SHA1_C) 00832 { TLS_ECDH_RSA_WITH_RC4_128_SHA, "TLS-ECDH-RSA-WITH-RC4-128-SHA", 00833 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00834 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00835 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00836 0 }, 00837 #endif /* POLARSSL_SHA1_C */ 00838 #endif /* POLARSSL_ARC4_C */ 00839 00840 #if defined(POLARSSL_CIPHER_NULL_CIPHER) 00841 #if defined(POLARSSL_SHA1_C) 00842 { TLS_ECDH_RSA_WITH_NULL_SHA, "TLS-ECDH-RSA-WITH-NULL-SHA", 00843 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_RSA, 00844 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00845 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00846 POLARSSL_CIPHERSUITE_WEAK }, 00847 #endif /* POLARSSL_SHA1_C */ 00848 #endif /* POLARSSL_CIPHER_NULL_CIPHER */ 00849 #endif /* POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED */ 00850 00851 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) 00852 #if defined(POLARSSL_AES_C) 00853 #if defined(POLARSSL_SHA1_C) 00854 #if defined(POLARSSL_CIPHER_MODE_CBC) 00855 { TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA", 00856 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00857 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00858 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00859 0 }, 00860 { TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA", 00861 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00862 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00863 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00864 0 }, 00865 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00866 #endif /* POLARSSL_SHA1_C */ 00867 #if defined(POLARSSL_SHA256_C) 00868 #if defined(POLARSSL_CIPHER_MODE_CBC) 00869 { TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-CBC-SHA256", 00870 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00871 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00872 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00873 0 }, 00874 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00875 #if defined(POLARSSL_GCM_C) 00876 { TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-AES-128-GCM-SHA256", 00877 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00878 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00879 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00880 0 }, 00881 #endif /* POLARSSL_GCM_C */ 00882 #endif /* POLARSSL_SHA256_C */ 00883 #if defined(POLARSSL_SHA512_C) 00884 #if defined(POLARSSL_CIPHER_MODE_CBC) 00885 { TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-CBC-SHA384", 00886 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00887 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00888 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00889 0 }, 00890 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00891 #if defined(POLARSSL_GCM_C) 00892 { TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-AES-256-GCM-SHA384", 00893 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00894 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00895 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00896 0 }, 00897 #endif /* POLARSSL_GCM_C */ 00898 #endif /* POLARSSL_SHA512_C */ 00899 #endif /* POLARSSL_AES_C */ 00900 00901 #if defined(POLARSSL_CAMELLIA_C) 00902 #if defined(POLARSSL_CIPHER_MODE_CBC) 00903 #if defined(POLARSSL_SHA256_C) 00904 { TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-CBC-SHA256", 00905 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00906 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00907 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00908 0 }, 00909 #endif /* POLARSSL_SHA256_C */ 00910 #if defined(POLARSSL_SHA512_C) 00911 { TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-CBC-SHA384", 00912 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00913 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00914 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00915 0 }, 00916 #endif /* POLARSSL_SHA512_C */ 00917 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00918 00919 #if defined(POLARSSL_GCM_C) 00920 #if defined(POLARSSL_SHA256_C) 00921 { TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256, "TLS-ECDH-ECDSA-WITH-CAMELLIA-128-GCM-SHA256", 00922 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00923 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00924 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00925 0 }, 00926 #endif /* POLARSSL_SHA256_C */ 00927 #if defined(POLARSSL_SHA512_C) 00928 { TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384, "TLS-ECDH-ECDSA-WITH-CAMELLIA-256-GCM-SHA384", 00929 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00930 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00931 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00932 0 }, 00933 #endif /* POLARSSL_SHA512_C */ 00934 #endif /* POLARSSL_GCM_C */ 00935 #endif /* POLARSSL_CAMELLIA_C */ 00936 00937 #if defined(POLARSSL_DES_C) 00938 #if defined(POLARSSL_CIPHER_MODE_CBC) 00939 #if defined(POLARSSL_SHA1_C) 00940 { TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, "TLS-ECDH-ECDSA-WITH-3DES-EDE-CBC-SHA", 00941 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00942 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00943 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00944 0 }, 00945 #endif /* POLARSSL_SHA1_C */ 00946 #endif /* POLARSSL_CIPHER_MODE_CBC */ 00947 #endif /* POLARSSL_DES_C */ 00948 00949 #if defined(POLARSSL_ARC4_C) 00950 #if defined(POLARSSL_SHA1_C) 00951 { TLS_ECDH_ECDSA_WITH_RC4_128_SHA, "TLS-ECDH-ECDSA-WITH-RC4-128-SHA", 00952 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00953 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00954 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00955 0 }, 00956 #endif /* POLARSSL_SHA1_C */ 00957 #endif /* POLARSSL_ARC4_C */ 00958 00959 #if defined(POLARSSL_CIPHER_NULL_CIPHER) 00960 #if defined(POLARSSL_SHA1_C) 00961 { TLS_ECDH_ECDSA_WITH_NULL_SHA, "TLS-ECDH-ECDSA-WITH-NULL-SHA", 00962 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDH_ECDSA, 00963 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 00964 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00965 POLARSSL_CIPHERSUITE_WEAK }, 00966 #endif /* POLARSSL_SHA1_C */ 00967 #endif /* POLARSSL_CIPHER_NULL_CIPHER */ 00968 #endif /* POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ 00969 00970 #if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED) 00971 #if defined(POLARSSL_AES_C) 00972 #if defined(POLARSSL_GCM_C) 00973 #if defined(POLARSSL_SHA256_C) 00974 { TLS_PSK_WITH_AES_128_GCM_SHA256, "TLS-PSK-WITH-AES-128-GCM-SHA256", 00975 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK, 00976 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00977 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00978 0 }, 00979 #endif /* POLARSSL_SHA256_C */ 00980 00981 #if defined(POLARSSL_SHA512_C) 00982 { TLS_PSK_WITH_AES_256_GCM_SHA384, "TLS-PSK-WITH-AES-256-GCM-SHA384", 00983 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK, 00984 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00985 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00986 0 }, 00987 #endif /* POLARSSL_SHA512_C */ 00988 #endif /* POLARSSL_GCM_C */ 00989 00990 #if defined(POLARSSL_CIPHER_MODE_CBC) 00991 #if defined(POLARSSL_SHA256_C) 00992 { TLS_PSK_WITH_AES_128_CBC_SHA256, "TLS-PSK-WITH-AES-128-CBC-SHA256", 00993 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK, 00994 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 00995 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 00996 0 }, 00997 #endif /* POLARSSL_SHA256_C */ 00998 00999 #if defined(POLARSSL_SHA512_C) 01000 { TLS_PSK_WITH_AES_256_CBC_SHA384, "TLS-PSK-WITH-AES-256-CBC-SHA384", 01001 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK, 01002 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01003 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01004 0 }, 01005 #endif /* POLARSSL_SHA512_C */ 01006 01007 #if defined(POLARSSL_SHA1_C) 01008 { TLS_PSK_WITH_AES_128_CBC_SHA, "TLS-PSK-WITH-AES-128-CBC-SHA", 01009 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK, 01010 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01011 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01012 0 }, 01013 01014 { TLS_PSK_WITH_AES_256_CBC_SHA, "TLS-PSK-WITH-AES-256-CBC-SHA", 01015 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK, 01016 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01017 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01018 0 }, 01019 #endif /* POLARSSL_SHA1_C */ 01020 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01021 #endif /* POLARSSL_AES_C */ 01022 01023 #if defined(POLARSSL_CAMELLIA_C) 01024 #if defined(POLARSSL_CIPHER_MODE_CBC) 01025 #if defined(POLARSSL_SHA256_C) 01026 { TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01027 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK, 01028 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01029 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01030 0 }, 01031 #endif /* POLARSSL_SHA256_C */ 01032 01033 #if defined(POLARSSL_SHA512_C) 01034 { TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01035 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK, 01036 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01037 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01038 0 }, 01039 #endif /* POLARSSL_SHA512_C */ 01040 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01041 01042 #if defined(POLARSSL_GCM_C) 01043 #if defined(POLARSSL_SHA256_C) 01044 { TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01045 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK, 01046 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01047 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01048 0 }, 01049 #endif /* POLARSSL_SHA256_C */ 01050 01051 #if defined(POLARSSL_SHA512_C) 01052 { TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01053 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK, 01054 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01055 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01056 0 }, 01057 #endif /* POLARSSL_SHA512_C */ 01058 #endif /* POLARSSL_GCM_C */ 01059 #endif /* POLARSSL_CAMELLIA_C */ 01060 01061 #if defined(POLARSSL_DES_C) 01062 #if defined(POLARSSL_CIPHER_MODE_CBC) 01063 #if defined(POLARSSL_SHA1_C) 01064 { TLS_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-PSK-WITH-3DES-EDE-CBC-SHA", 01065 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK, 01066 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01067 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01068 0 }, 01069 #endif /* POLARSSL_SHA1_C */ 01070 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01071 #endif /* POLARSSL_DES_C */ 01072 01073 #if defined(POLARSSL_ARC4_C) 01074 #if defined(POLARSSL_SHA1_C) 01075 { TLS_PSK_WITH_RC4_128_SHA, "TLS-PSK-WITH-RC4-128-SHA", 01076 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK, 01077 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01078 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01079 0 }, 01080 #endif /* POLARSSL_SHA1_C */ 01081 #endif /* POLARSSL_ARC4_C */ 01082 #endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */ 01083 01084 #if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED) 01085 #if defined(POLARSSL_AES_C) 01086 #if defined(POLARSSL_GCM_C) 01087 #if defined(POLARSSL_SHA256_C) 01088 { TLS_DHE_PSK_WITH_AES_128_GCM_SHA256, "TLS-DHE-PSK-WITH-AES-128-GCM-SHA256", 01089 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01090 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01091 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01092 0 }, 01093 #endif /* POLARSSL_SHA256_C */ 01094 01095 #if defined(POLARSSL_SHA512_C) 01096 { TLS_DHE_PSK_WITH_AES_256_GCM_SHA384, "TLS-DHE-PSK-WITH-AES-256-GCM-SHA384", 01097 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01098 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01099 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01100 0 }, 01101 #endif /* POLARSSL_SHA512_C */ 01102 #endif /* POLARSSL_GCM_C */ 01103 01104 #if defined(POLARSSL_CIPHER_MODE_CBC) 01105 #if defined(POLARSSL_SHA256_C) 01106 { TLS_DHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA256", 01107 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01108 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01109 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01110 0 }, 01111 #endif /* POLARSSL_SHA256_C */ 01112 01113 #if defined(POLARSSL_SHA512_C) 01114 { TLS_DHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA384", 01115 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01116 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01117 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01118 0 }, 01119 #endif /* POLARSSL_SHA512_C */ 01120 01121 #if defined(POLARSSL_SHA1_C) 01122 { TLS_DHE_PSK_WITH_AES_128_CBC_SHA, "TLS-DHE-PSK-WITH-AES-128-CBC-SHA", 01123 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01124 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01125 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01126 0 }, 01127 01128 { TLS_DHE_PSK_WITH_AES_256_CBC_SHA, "TLS-DHE-PSK-WITH-AES-256-CBC-SHA", 01129 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01130 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01131 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01132 0 }, 01133 #endif /* POLARSSL_SHA1_C */ 01134 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01135 #endif /* POLARSSL_AES_C */ 01136 01137 #if defined(POLARSSL_CAMELLIA_C) 01138 #if defined(POLARSSL_CIPHER_MODE_CBC) 01139 #if defined(POLARSSL_SHA256_C) 01140 { TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01141 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01142 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01143 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01144 0 }, 01145 #endif /* POLARSSL_SHA256_C */ 01146 01147 #if defined(POLARSSL_SHA512_C) 01148 { TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01149 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01150 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01151 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01152 0 }, 01153 #endif /* POLARSSL_SHA512_C */ 01154 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01155 01156 #if defined(POLARSSL_GCM_C) 01157 #if defined(POLARSSL_SHA256_C) 01158 { TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-DHE-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01159 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01160 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01161 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01162 0 }, 01163 #endif /* POLARSSL_SHA256_C */ 01164 01165 #if defined(POLARSSL_SHA512_C) 01166 { TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-DHE-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01167 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01168 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01169 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01170 0 }, 01171 #endif /* POLARSSL_SHA512_C */ 01172 #endif /* POLARSSL_GCM_C */ 01173 #endif /* POLARSSL_CAMELLIA_C */ 01174 01175 #if defined(POLARSSL_DES_C) 01176 #if defined(POLARSSL_CIPHER_MODE_CBC) 01177 #if defined(POLARSSL_SHA1_C) 01178 { TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-DHE-PSK-WITH-3DES-EDE-CBC-SHA", 01179 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01180 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01181 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01182 0 }, 01183 #endif /* POLARSSL_SHA1_C */ 01184 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01185 #endif /* POLARSSL_DES_C */ 01186 01187 #if defined(POLARSSL_ARC4_C) 01188 #if defined(POLARSSL_SHA1_C) 01189 { TLS_DHE_PSK_WITH_RC4_128_SHA, "TLS-DHE-PSK-WITH-RC4-128-SHA", 01190 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01191 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01192 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01193 0 }, 01194 #endif /* POLARSSL_SHA1_C */ 01195 #endif /* POLARSSL_ARC4_C */ 01196 #endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */ 01197 01198 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED) 01199 #if defined(POLARSSL_AES_C) 01200 01201 #if defined(POLARSSL_CIPHER_MODE_CBC) 01202 #if defined(POLARSSL_SHA256_C) 01203 { TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA256", 01204 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01205 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01206 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01207 0 }, 01208 #endif /* POLARSSL_SHA256_C */ 01209 01210 #if defined(POLARSSL_SHA512_C) 01211 { TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA384", 01212 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01213 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01214 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01215 0 }, 01216 #endif /* POLARSSL_SHA512_C */ 01217 01218 #if defined(POLARSSL_SHA1_C) 01219 { TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-128-CBC-SHA", 01220 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01221 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01222 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01223 0 }, 01224 01225 { TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, "TLS-ECDHE-PSK-WITH-AES-256-CBC-SHA", 01226 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01227 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01228 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01229 0 }, 01230 #endif /* POLARSSL_SHA1_C */ 01231 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01232 #endif /* POLARSSL_AES_C */ 01233 01234 #if defined(POLARSSL_CAMELLIA_C) 01235 #if defined(POLARSSL_CIPHER_MODE_CBC) 01236 #if defined(POLARSSL_SHA256_C) 01237 { TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-ECDHE-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01238 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01239 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01240 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01241 0 }, 01242 #endif /* POLARSSL_SHA256_C */ 01243 01244 #if defined(POLARSSL_SHA512_C) 01245 { TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-ECDHE-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01246 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01247 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01248 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01249 0 }, 01250 #endif /* POLARSSL_SHA512_C */ 01251 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01252 #endif /* POLARSSL_CAMELLIA_C */ 01253 01254 #if defined(POLARSSL_DES_C) 01255 #if defined(POLARSSL_CIPHER_MODE_CBC) 01256 #if defined(POLARSSL_SHA1_C) 01257 { TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-ECDHE-PSK-WITH-3DES-EDE-CBC-SHA", 01258 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01259 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01260 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01261 0 }, 01262 #endif /* POLARSSL_SHA1_C */ 01263 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01264 #endif /* POLARSSL_DES_C */ 01265 01266 #if defined(POLARSSL_ARC4_C) 01267 #if defined(POLARSSL_SHA1_C) 01268 { TLS_ECDHE_PSK_WITH_RC4_128_SHA, "TLS-ECDHE-PSK-WITH-RC4-128-SHA", 01269 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01270 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01271 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01272 0 }, 01273 #endif /* POLARSSL_SHA1_C */ 01274 #endif /* POLARSSL_ARC4_C */ 01275 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ 01276 01277 #if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED) 01278 #if defined(POLARSSL_AES_C) 01279 #if defined(POLARSSL_GCM_C) 01280 #if defined(POLARSSL_SHA256_C) 01281 { TLS_RSA_PSK_WITH_AES_128_GCM_SHA256, "TLS-RSA-PSK-WITH-AES-128-GCM-SHA256", 01282 POLARSSL_CIPHER_AES_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01283 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01284 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01285 0 }, 01286 #endif /* POLARSSL_SHA256_C */ 01287 01288 #if defined(POLARSSL_SHA512_C) 01289 { TLS_RSA_PSK_WITH_AES_256_GCM_SHA384, "TLS-RSA-PSK-WITH-AES-256-GCM-SHA384", 01290 POLARSSL_CIPHER_AES_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01291 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01292 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01293 0 }, 01294 #endif /* POLARSSL_SHA512_C */ 01295 #endif /* POLARSSL_GCM_C */ 01296 01297 #if defined(POLARSSL_CIPHER_MODE_CBC) 01298 #if defined(POLARSSL_SHA256_C) 01299 { TLS_RSA_PSK_WITH_AES_128_CBC_SHA256, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA256", 01300 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01301 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01302 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01303 0 }, 01304 #endif /* POLARSSL_SHA256_C */ 01305 01306 #if defined(POLARSSL_SHA512_C) 01307 { TLS_RSA_PSK_WITH_AES_256_CBC_SHA384, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA384", 01308 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01309 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01310 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01311 0 }, 01312 #endif /* POLARSSL_SHA512_C */ 01313 01314 #if defined(POLARSSL_SHA1_C) 01315 { TLS_RSA_PSK_WITH_AES_128_CBC_SHA, "TLS-RSA-PSK-WITH-AES-128-CBC-SHA", 01316 POLARSSL_CIPHER_AES_128_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01317 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01318 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01319 0 }, 01320 01321 { TLS_RSA_PSK_WITH_AES_256_CBC_SHA, "TLS-RSA-PSK-WITH-AES-256-CBC-SHA", 01322 POLARSSL_CIPHER_AES_256_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01323 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01324 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01325 0 }, 01326 #endif /* POLARSSL_SHA1_C */ 01327 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01328 #endif /* POLARSSL_AES_C */ 01329 01330 #if defined(POLARSSL_CAMELLIA_C) 01331 #if defined(POLARSSL_CIPHER_MODE_CBC) 01332 #if defined(POLARSSL_SHA256_C) 01333 { TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-CBC-SHA256", 01334 POLARSSL_CIPHER_CAMELLIA_128_CBC, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01335 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01336 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01337 0 }, 01338 #endif /* POLARSSL_SHA256_C */ 01339 01340 #if defined(POLARSSL_SHA512_C) 01341 { TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-CBC-SHA384", 01342 POLARSSL_CIPHER_CAMELLIA_256_CBC, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01343 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01344 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01345 0 }, 01346 #endif /* POLARSSL_SHA512_C */ 01347 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01348 01349 #if defined(POLARSSL_GCM_C) 01350 #if defined(POLARSSL_SHA256_C) 01351 { TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256, "TLS-RSA-PSK-WITH-CAMELLIA-128-GCM-SHA256", 01352 POLARSSL_CIPHER_CAMELLIA_128_GCM, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01353 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01354 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01355 0 }, 01356 #endif /* POLARSSL_SHA256_C */ 01357 01358 #if defined(POLARSSL_SHA512_C) 01359 { TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384, "TLS-RSA-PSK-WITH-CAMELLIA-256-GCM-SHA384", 01360 POLARSSL_CIPHER_CAMELLIA_256_GCM, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01361 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01362 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01363 0 }, 01364 #endif /* POLARSSL_SHA512_C */ 01365 #endif /* POLARSSL_GCM_C */ 01366 #endif /* POLARSSL_CAMELLIA_C */ 01367 01368 #if defined(POLARSSL_DES_C) 01369 #if defined(POLARSSL_CIPHER_MODE_CBC) 01370 #if defined(POLARSSL_SHA1_C) 01371 { TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA, "TLS-RSA-PSK-WITH-3DES-EDE-CBC-SHA", 01372 POLARSSL_CIPHER_DES_EDE3_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01373 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01374 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01375 0 }, 01376 #endif /* POLARSSL_SHA1_C */ 01377 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01378 #endif /* POLARSSL_DES_C */ 01379 01380 #if defined(POLARSSL_ARC4_C) 01381 #if defined(POLARSSL_SHA1_C) 01382 { TLS_RSA_PSK_WITH_RC4_128_SHA, "TLS-RSA-PSK-WITH-RC4-128-SHA", 01383 POLARSSL_CIPHER_ARC4_128, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01384 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01385 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01386 0 }, 01387 #endif /* POLARSSL_SHA1_C */ 01388 #endif /* POLARSSL_ARC4_C */ 01389 #endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */ 01390 01391 #if defined(POLARSSL_ENABLE_WEAK_CIPHERSUITES) 01392 #if defined(POLARSSL_CIPHER_NULL_CIPHER) 01393 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED) 01394 #if defined(POLARSSL_MD5_C) 01395 { TLS_RSA_WITH_NULL_MD5, "TLS-RSA-WITH-NULL-MD5", 01396 POLARSSL_CIPHER_NULL, POLARSSL_MD_MD5, POLARSSL_KEY_EXCHANGE_RSA, 01397 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01398 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01399 POLARSSL_CIPHERSUITE_WEAK }, 01400 #endif 01401 01402 #if defined(POLARSSL_SHA1_C) 01403 { TLS_RSA_WITH_NULL_SHA, "TLS-RSA-WITH-NULL-SHA", 01404 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 01405 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01406 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01407 POLARSSL_CIPHERSUITE_WEAK }, 01408 #endif 01409 01410 #if defined(POLARSSL_SHA256_C) 01411 { TLS_RSA_WITH_NULL_SHA256, "TLS-RSA-WITH-NULL-SHA256", 01412 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA, 01413 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01414 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01415 POLARSSL_CIPHERSUITE_WEAK }, 01416 #endif 01417 #endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */ 01418 01419 #if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED) 01420 #if defined(POLARSSL_SHA1_C) 01421 { TLS_PSK_WITH_NULL_SHA, "TLS-PSK-WITH-NULL-SHA", 01422 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_PSK, 01423 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01424 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01425 POLARSSL_CIPHERSUITE_WEAK }, 01426 #endif /* POLARSSL_SHA1_C */ 01427 01428 #if defined(POLARSSL_SHA256_C) 01429 { TLS_PSK_WITH_NULL_SHA256, "TLS-PSK-WITH-NULL-SHA256", 01430 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_PSK, 01431 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01432 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01433 POLARSSL_CIPHERSUITE_WEAK }, 01434 #endif 01435 01436 #if defined(POLARSSL_SHA512_C) 01437 { TLS_PSK_WITH_NULL_SHA384, "TLS-PSK-WITH-NULL-SHA384", 01438 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_PSK, 01439 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01440 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01441 POLARSSL_CIPHERSUITE_WEAK }, 01442 #endif 01443 #endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */ 01444 01445 #if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED) 01446 #if defined(POLARSSL_SHA1_C) 01447 { TLS_DHE_PSK_WITH_NULL_SHA, "TLS-DHE-PSK-WITH-NULL-SHA", 01448 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01449 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01450 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01451 POLARSSL_CIPHERSUITE_WEAK }, 01452 #endif /* POLARSSL_SHA1_C */ 01453 01454 #if defined(POLARSSL_SHA256_C) 01455 { TLS_DHE_PSK_WITH_NULL_SHA256, "TLS-DHE-PSK-WITH-NULL-SHA256", 01456 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01457 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01458 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01459 POLARSSL_CIPHERSUITE_WEAK }, 01460 #endif 01461 01462 #if defined(POLARSSL_SHA512_C) 01463 { TLS_DHE_PSK_WITH_NULL_SHA384, "TLS-DHE-PSK-WITH-NULL-SHA384", 01464 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_DHE_PSK, 01465 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01466 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01467 POLARSSL_CIPHERSUITE_WEAK }, 01468 #endif 01469 #endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */ 01470 01471 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED) 01472 #if defined(POLARSSL_SHA1_C) 01473 { TLS_ECDHE_PSK_WITH_NULL_SHA, "TLS-ECDHE-PSK-WITH-NULL-SHA", 01474 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01475 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01476 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01477 POLARSSL_CIPHERSUITE_WEAK }, 01478 #endif /* POLARSSL_SHA1_C */ 01479 01480 #if defined(POLARSSL_SHA256_C) 01481 { TLS_ECDHE_PSK_WITH_NULL_SHA256, "TLS-ECDHE-PSK-WITH-NULL-SHA256", 01482 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01483 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01484 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01485 POLARSSL_CIPHERSUITE_WEAK }, 01486 #endif 01487 01488 #if defined(POLARSSL_SHA512_C) 01489 { TLS_ECDHE_PSK_WITH_NULL_SHA384, "TLS-ECDHE-PSK-WITH-NULL-SHA384", 01490 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_ECDHE_PSK, 01491 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_1, 01492 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01493 POLARSSL_CIPHERSUITE_WEAK }, 01494 #endif 01495 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ 01496 01497 #if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED) 01498 #if defined(POLARSSL_SHA1_C) 01499 { TLS_RSA_PSK_WITH_NULL_SHA, "TLS-RSA-PSK-WITH-NULL-SHA", 01500 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01501 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01502 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01503 POLARSSL_CIPHERSUITE_WEAK }, 01504 #endif /* POLARSSL_SHA1_C */ 01505 01506 #if defined(POLARSSL_SHA256_C) 01507 { TLS_RSA_PSK_WITH_NULL_SHA256, "TLS-RSA-PSK-WITH-NULL-SHA256", 01508 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA256, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01509 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01510 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01511 POLARSSL_CIPHERSUITE_WEAK }, 01512 #endif 01513 01514 #if defined(POLARSSL_SHA512_C) 01515 { TLS_RSA_PSK_WITH_NULL_SHA384, "TLS-RSA-PSK-WITH-NULL-SHA384", 01516 POLARSSL_CIPHER_NULL, POLARSSL_MD_SHA384, POLARSSL_KEY_EXCHANGE_RSA_PSK, 01517 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01518 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01519 POLARSSL_CIPHERSUITE_WEAK }, 01520 #endif 01521 #endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */ 01522 #endif /* POLARSSL_CIPHER_NULL_CIPHER */ 01523 01524 #if defined(POLARSSL_DES_C) 01525 #if defined(POLARSSL_CIPHER_MODE_CBC) 01526 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) 01527 #if defined(POLARSSL_SHA1_C) 01528 { TLS_DHE_RSA_WITH_DES_CBC_SHA, "TLS-DHE-RSA-WITH-DES-CBC-SHA", 01529 POLARSSL_CIPHER_DES_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_DHE_RSA, 01530 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01531 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01532 POLARSSL_CIPHERSUITE_WEAK }, 01533 #endif /* POLARSSL_SHA1_C */ 01534 #endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */ 01535 01536 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED) 01537 #if defined(POLARSSL_SHA1_C) 01538 { TLS_RSA_WITH_DES_CBC_SHA, "TLS-RSA-WITH-DES-CBC-SHA", 01539 POLARSSL_CIPHER_DES_CBC, POLARSSL_MD_SHA1, POLARSSL_KEY_EXCHANGE_RSA, 01540 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_0, 01541 SSL_MAJOR_VERSION_3, SSL_MINOR_VERSION_3, 01542 POLARSSL_CIPHERSUITE_WEAK }, 01543 #endif /* POLARSSL_SHA1_C */ 01544 #endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */ 01545 #endif /* POLARSSL_CIPHER_MODE_CBC */ 01546 #endif /* POLARSSL_DES_C */ 01547 #endif /* POLARSSL_ENABLE_WEAK_CIPHERSUITES */ 01548 01549 { 0, "", 0, 0, 0, 0, 0, 0, 0, 0 } 01550 }; 01551 01552 const int *ssl_list_ciphersuites( void ) 01553 { 01554 /* 01555 * On initial call filter out all ciphersuites not supported by current 01556 * build based on presence in the ciphersuite_definitions. 01557 */ 01558 if( supported_init == 0 ) 01559 { 01560 const int *p = ciphersuite_preference; 01561 int *q = supported_ciphersuites; 01562 size_t i; 01563 size_t max = sizeof(supported_ciphersuites) / sizeof(int); 01564 01565 for( i = 0; i < max - 1 && p[i] != 0; i++ ) 01566 { 01567 if( ssl_ciphersuite_from_id( p[i] ) != NULL ) 01568 *(q++) = p[i]; 01569 } 01570 *q = 0; 01571 01572 supported_init = 1; 01573 } 01574 01575 return supported_ciphersuites; 01576 }; 01577 01578 const ssl_ciphersuite_t *ssl_ciphersuite_from_string( 01579 const char *ciphersuite_name ) 01580 { 01581 const ssl_ciphersuite_t *cur = ciphersuite_definitions; 01582 01583 if( NULL == ciphersuite_name ) 01584 return( NULL ); 01585 01586 while( cur->id != 0 ) 01587 { 01588 if( 0 == strcasecmp( cur->name, ciphersuite_name ) ) 01589 return( cur ); 01590 01591 cur++; 01592 } 01593 01594 return( NULL ); 01595 } 01596 01597 const ssl_ciphersuite_t *ssl_ciphersuite_from_id( int ciphersuite ) 01598 { 01599 const ssl_ciphersuite_t *cur = ciphersuite_definitions; 01600 01601 while( cur->id != 0 ) 01602 { 01603 if( cur->id == ciphersuite ) 01604 return( cur ); 01605 01606 cur++; 01607 } 01608 01609 return( NULL ); 01610 } 01611 01612 const char *ssl_get_ciphersuite_name( const int ciphersuite_id ) 01613 { 01614 const ssl_ciphersuite_t *cur; 01615 01616 cur = ssl_ciphersuite_from_id( ciphersuite_id ); 01617 01618 if( cur == NULL ) 01619 return( "unknown" ); 01620 01621 return( cur->name ); 01622 } 01623 01624 int ssl_get_ciphersuite_id( const char *ciphersuite_name ) 01625 { 01626 const ssl_ciphersuite_t *cur; 01627 01628 cur = ssl_ciphersuite_from_string( ciphersuite_name ); 01629 01630 if( cur == NULL ) 01631 return( 0 ); 01632 01633 return( cur->id ); 01634 } 01635 01636 #if defined(POLARSSL_PK_C) 01637 pk_type_t ssl_get_ciphersuite_sig_pk_alg( const ssl_ciphersuite_t *info ) 01638 { 01639 switch( info->key_exchange ) 01640 { 01641 case POLARSSL_KEY_EXCHANGE_RSA: 01642 case POLARSSL_KEY_EXCHANGE_DHE_RSA: 01643 case POLARSSL_KEY_EXCHANGE_ECDHE_RSA: 01644 case POLARSSL_KEY_EXCHANGE_RSA_PSK: 01645 return( POLARSSL_PK_RSA ); 01646 01647 case POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA: 01648 return( POLARSSL_PK_ECDSA ); 01649 01650 case POLARSSL_KEY_EXCHANGE_ECDH_RSA: 01651 case POLARSSL_KEY_EXCHANGE_ECDH_ECDSA: 01652 return( POLARSSL_PK_ECKEY ); 01653 01654 default: 01655 return( POLARSSL_PK_NONE ); 01656 } 01657 } 01658 #endif /* POLARSSL_PK_C */ 01659 01660 #if defined(POLARSSL_ECDH_C) || defined(POLARSSL_ECDSA_C) 01661 int ssl_ciphersuite_uses_ec( const ssl_ciphersuite_t *info ) 01662 { 01663 switch( info->key_exchange ) 01664 { 01665 case POLARSSL_KEY_EXCHANGE_ECDHE_RSA: 01666 case POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA: 01667 case POLARSSL_KEY_EXCHANGE_ECDHE_PSK: 01668 case POLARSSL_KEY_EXCHANGE_ECDH_RSA: 01669 case POLARSSL_KEY_EXCHANGE_ECDH_ECDSA: 01670 return( 1 ); 01671 01672 default: 01673 return( 0 ); 01674 } 01675 } 01676 #endif /* POLARSSL_ECDH_C || POLARSSL_ECDSA_C */ 01677 01678 #if defined(POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED) 01679 int ssl_ciphersuite_uses_psk( const ssl_ciphersuite_t *info ) 01680 { 01681 switch( info->key_exchange ) 01682 { 01683 case POLARSSL_KEY_EXCHANGE_PSK: 01684 case POLARSSL_KEY_EXCHANGE_RSA_PSK: 01685 case POLARSSL_KEY_EXCHANGE_DHE_PSK: 01686 case POLARSSL_KEY_EXCHANGE_ECDHE_PSK: 01687 return( 1 ); 01688 01689 default: 01690 return( 0 ); 01691 } 01692 } 01693 #endif /* POLARSSL_KEY_EXCHANGE__SOME__PSK_ENABLED */ 01694 01695 #endif /* POLARSSL_SSL_TLS_C */ 01696 01697
Generated on Tue Jul 12 2022 19:40:20 by 1.7.2