Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.
config.h
00001 /** 00002 * \file config.h 00003 * 00004 * \brief Configuration options (set of defines) 00005 * 00006 * Copyright (C) 2006-2014, ARM Limited, All Rights Reserved 00007 * 00008 * This file is part of mbed TLS (https://tls.mbed.org) 00009 * 00010 * This program is free software; you can redistribute it and/or modify 00011 * it under the terms of the GNU General Public License as published by 00012 * the Free Software Foundation; either version 2 of the License, or 00013 * (at your option) any later version. 00014 * 00015 * This program is distributed in the hope that it will be useful, 00016 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00017 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00018 * GNU General Public License for more details. 00019 * 00020 * You should have received a copy of the GNU General Public License along 00021 * with this program; if not, write to the Free Software Foundation, Inc., 00022 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 00023 * 00024 * This set of compile-time options may be used to enable 00025 * or disable features selectively, and reduce the global 00026 * memory footprint. 00027 */ 00028 #ifndef POLARSSL_CONFIG_H 00029 #define POLARSSL_CONFIG_H 00030 00031 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) 00032 #define _CRT_SECURE_NO_DEPRECATE 1 00033 #endif 00034 00035 /** 00036 * \name SECTION: System support 00037 * 00038 * This section sets system specific settings. 00039 * \{ 00040 */ 00041 00042 /** 00043 * \def POLARSSL_HAVE_INT8 00044 * 00045 * The system uses 8-bit wide native integers. 00046 * 00047 * \deprecated The compiler should be able to generate code for 32-bit 00048 * arithmetic (required by C89). This code is likely to be at least as 00049 * efficient as ours. 00050 * 00051 * Uncomment if native integers are 8-bit wide. 00052 */ 00053 //#define POLARSSL_HAVE_INT8 00054 00055 /** 00056 * \def POLARSSL_HAVE_INT16 00057 * 00058 * The system uses 16-bit wide native integers. 00059 * 00060 * \deprecated The compiler should be able to generate code for 32-bit 00061 * arithmetic (required by C89). This code is likely to be at least as 00062 * efficient as ours. 00063 * 00064 * Uncomment if native integers are 16-bit wide. 00065 */ 00066 //#define POLARSSL_HAVE_INT16 00067 00068 /** 00069 * \def POLARSSL_HAVE_LONGLONG 00070 * 00071 * The compiler supports the 'long long' type. 00072 * (Only used on 32-bit platforms) 00073 */ 00074 #define POLARSSL_HAVE_LONGLONG 00075 00076 /** 00077 * \def POLARSSL_HAVE_ASM 00078 * 00079 * The compiler has support for asm(). 00080 * 00081 * Requires support for asm() in compiler. 00082 * 00083 * Used in: 00084 * library/timing.c 00085 * library/padlock.c 00086 * include/polarssl/bn_mul.h 00087 * 00088 * Comment to disable the use of assembly code. 00089 */ 00090 #define POLARSSL_HAVE_ASM 00091 00092 /** 00093 * \def POLARSSL_HAVE_SSE2 00094 * 00095 * CPU supports SSE2 instruction set. 00096 * 00097 * Uncomment if the CPU supports SSE2 (IA-32 specific). 00098 */ 00099 //#define POLARSSL_HAVE_SSE2 00100 00101 /** 00102 * \def POLARSSL_HAVE_TIME 00103 * 00104 * System has time.h and time() / localtime() / gettimeofday(). 00105 * 00106 * Comment if your system does not support time functions 00107 */ 00108 #define POLARSSL_HAVE_TIME 00109 00110 /** 00111 * \def POLARSSL_HAVE_IPV6 00112 * 00113 * System supports the basic socket interface for IPv6 (RFC 3493), 00114 * specifically getaddrinfo(), freeaddrinfo() and struct sockaddr_storage. 00115 * 00116 * Note: on Windows/MingW, XP or higher is required. 00117 * 00118 * \warning As of 1.3.11, *not* using this flag when POLARSSL_NET_C is 00119 * defined, is deprecated. The alternative legacy code will be removed in 2.0. 00120 * 00121 * Comment if your system does not support the IPv6 socket interface 00122 */ 00123 #define POLARSSL_HAVE_IPV6 00124 00125 /** 00126 * \def POLARSSL_PLATFORM_MEMORY 00127 * 00128 * Enable the memory allocation layer. 00129 * 00130 * By default mbed TLS uses the system-provided malloc() and free(). 00131 * This allows different allocators (self-implemented or provided) to be 00132 * provided to the platform abstraction layer. 00133 * 00134 * Enabling POLARSSL_PLATFORM_MEMORY without the 00135 * POLARSSL_PLATFORM_{FREE,MALLOC}_MACROs will provide 00136 * "platform_set_malloc_free()" allowing you to set an alternative malloc() and 00137 * free() function pointer at runtime. 00138 * 00139 * Enabling POLARSSL_PLATFORM_MEMORY and specifying 00140 * POLARSSL_PLATFORM_{MALLOC,FREE}_MACROs will allow you to specify the 00141 * alternate function at compile time. 00142 * 00143 * Requires: POLARSSL_PLATFORM_C 00144 * 00145 * Enable this layer to allow use of alternative memory allocators. 00146 */ 00147 //#define POLARSSL_PLATFORM_MEMORY 00148 00149 /** 00150 * \def POLARSSL_PLATFORM_NO_STD_FUNCTIONS 00151 * 00152 * Do not assign standard functions in the platform layer (e.g. malloc() to 00153 * POLARSSL_PLATFORM_STD_MALLOC and printf() to POLARSSL_PLATFORM_STD_PRINTF) 00154 * 00155 * This makes sure there are no linking errors on platforms that do not support 00156 * these functions. You will HAVE to provide alternatives, either at runtime 00157 * via the platform_set_xxx() functions or at compile time by setting 00158 * the POLARSSL_PLATFORM_STD_XXX defines, or enabling a 00159 * POLARSSL_PLATFORM_XXX_MACRO. 00160 * 00161 * Requires: POLARSSL_PLATFORM_C 00162 * 00163 * Uncomment to prevent default assignment of standard functions in the 00164 * platform layer. 00165 */ 00166 //#define POLARSSL_PLATFORM_NO_STD_FUNCTIONS 00167 00168 /** 00169 * \def POLARSSL_PLATFORM_XXX_ALT 00170 * 00171 * Uncomment a macro to let mbed TLS support the function in the platform 00172 * abstraction layer. 00173 * 00174 * Example: In case you uncomment POLARSSL_PLATFORM_PRINTF_ALT, mbed TLS will 00175 * provide a function "platform_set_printf()" that allows you to set an 00176 * alternative printf function pointer. 00177 * 00178 * All these define require POLARSSL_PLATFORM_C to be defined! 00179 * 00180 * WARNING: POLARSSL_PLATFORM_SNPRINTF_ALT is not available on Windows 00181 * for compatibility reasons. 00182 * 00183 * WARNING: POLARSSL_PLATFORM_XXX_ALT cannot be defined at the same time as 00184 * POLARSSL_PLATFORM_XXX_MACRO! 00185 * 00186 * Uncomment a macro to enable alternate implementation of specific base 00187 * platform function 00188 */ 00189 //#define POLARSSL_PLATFORM_EXIT_ALT 00190 //#define POLARSSL_PLATFORM_FPRINTF_ALT 00191 //#define POLARSSL_PLATFORM_PRINTF_ALT 00192 //#define POLARSSL_PLATFORM_SNPRINTF_ALT 00193 00194 /** 00195 * \def POLARSSL_DEPRECATED_WARNING 00196 * 00197 * Mark deprecated functions so that they generate a warning if used. 00198 * Functions deprecated in one version will usually be removed in the next 00199 * version. You can enable this to help you prepare the transition to a new 00200 * major version by making sure your code is not using these functions. 00201 * 00202 * This only works with GCC and Clang. With other compilers, you may want to 00203 * use POLARSSL_DEPRECATED_REMOVED 00204 * 00205 * Uncomment to get warnings on using deprecated functions. 00206 */ 00207 //#define POLARSSL_DEPRECATED_WARNING 00208 00209 /** 00210 * \def POLARSSL_DEPRECATED_REMOVED 00211 * 00212 * Remove deprecated functions so that they generate an error if used. 00213 * Functions deprecated in one version will usually be removed in the next 00214 * version. You can enable this to help you prepare the transition to a new 00215 * major version by making sure your code is not using these functions. 00216 * 00217 * Uncomment to get errors on using deprecated functions. 00218 */ 00219 //#define POLARSSL_DEPRECATED_REMOVED 00220 00221 /* \} name SECTION: System support */ 00222 00223 /** 00224 * \name SECTION: mbed TLS feature support 00225 * 00226 * This section sets support for features that are or are not needed 00227 * within the modules that are enabled. 00228 * \{ 00229 */ 00230 00231 /** 00232 * \def POLARSSL_TIMING_ALT 00233 * 00234 * Uncomment to provide your own alternate implementation for hardclock(), 00235 * get_timer(), set_alarm() and m_sleep(). 00236 * 00237 * Only works if you have POLARSSL_TIMING_C enabled. 00238 * 00239 * You will need to provide a header "timing_alt.h" and an implementation at 00240 * compile time. 00241 */ 00242 //#define POLARSSL_TIMING_ALT 00243 00244 /** 00245 * \def POLARSSL_XXX_ALT 00246 * 00247 * Uncomment a macro to let mbed TLS use your alternate core implementation of 00248 * a symmetric or hash algorithm (e.g. platform specific assembly optimized 00249 * implementations). Keep in mind that the function prototypes should remain 00250 * the same. 00251 * 00252 * Example: In case you uncomment POLARSSL_AES_ALT, mbed TLS will no longer 00253 * provide the "struct aes_context" definition and omit the base function 00254 * declarations and implementations. "aes_alt.h" will be included from 00255 * "aes.h" to include the new function definitions. 00256 * 00257 * Uncomment a macro to enable alternate implementation for core algorithm 00258 * functions 00259 */ 00260 //#define POLARSSL_AES_ALT 00261 //#define POLARSSL_ARC4_ALT 00262 //#define POLARSSL_BLOWFISH_ALT 00263 //#define POLARSSL_CAMELLIA_ALT 00264 //#define POLARSSL_DES_ALT 00265 //#define POLARSSL_XTEA_ALT 00266 //#define POLARSSL_MD2_ALT 00267 //#define POLARSSL_MD4_ALT 00268 //#define POLARSSL_MD5_ALT 00269 //#define POLARSSL_RIPEMD160_ALT 00270 //#define POLARSSL_SHA1_ALT 00271 //#define POLARSSL_SHA256_ALT 00272 //#define POLARSSL_SHA512_ALT 00273 00274 /** 00275 * \def POLARSSL_AES_ROM_TABLES 00276 * 00277 * Store the AES tables in ROM. 00278 * 00279 * Uncomment this macro to store the AES tables in ROM. 00280 */ 00281 //#define POLARSSL_AES_ROM_TABLES 00282 00283 /** 00284 * \def POLARSSL_CAMELLIA_SMALL_MEMORY 00285 * 00286 * Use less ROM for the Camellia implementation (saves about 768 bytes). 00287 * 00288 * Uncomment this macro to use less memory for Camellia. 00289 */ 00290 //#define POLARSSL_CAMELLIA_SMALL_MEMORY 00291 00292 /** 00293 * \def POLARSSL_CIPHER_MODE_CBC 00294 * 00295 * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers. 00296 */ 00297 #define POLARSSL_CIPHER_MODE_CBC 00298 00299 /** 00300 * \def POLARSSL_CIPHER_MODE_CFB 00301 * 00302 * Enable Cipher Feedback mode (CFB) for symmetric ciphers. 00303 */ 00304 #define POLARSSL_CIPHER_MODE_CFB 00305 00306 /** 00307 * \def POLARSSL_CIPHER_MODE_CTR 00308 * 00309 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers. 00310 */ 00311 #define POLARSSL_CIPHER_MODE_CTR 00312 00313 /** 00314 * \def POLARSSL_CIPHER_NULL_CIPHER 00315 * 00316 * Enable NULL cipher. 00317 * Warning: Only do so when you know what you are doing. This allows for 00318 * encryption or channels without any security! 00319 * 00320 * Requires POLARSSL_ENABLE_WEAK_CIPHERSUITES as well to enable 00321 * the following ciphersuites: 00322 * TLS_ECDH_ECDSA_WITH_NULL_SHA 00323 * TLS_ECDH_RSA_WITH_NULL_SHA 00324 * TLS_ECDHE_ECDSA_WITH_NULL_SHA 00325 * TLS_ECDHE_RSA_WITH_NULL_SHA 00326 * TLS_ECDHE_PSK_WITH_NULL_SHA384 00327 * TLS_ECDHE_PSK_WITH_NULL_SHA256 00328 * TLS_ECDHE_PSK_WITH_NULL_SHA 00329 * TLS_DHE_PSK_WITH_NULL_SHA384 00330 * TLS_DHE_PSK_WITH_NULL_SHA256 00331 * TLS_DHE_PSK_WITH_NULL_SHA 00332 * TLS_RSA_WITH_NULL_SHA256 00333 * TLS_RSA_WITH_NULL_SHA 00334 * TLS_RSA_WITH_NULL_MD5 00335 * TLS_RSA_PSK_WITH_NULL_SHA384 00336 * TLS_RSA_PSK_WITH_NULL_SHA256 00337 * TLS_RSA_PSK_WITH_NULL_SHA 00338 * TLS_PSK_WITH_NULL_SHA384 00339 * TLS_PSK_WITH_NULL_SHA256 00340 * TLS_PSK_WITH_NULL_SHA 00341 * 00342 * Uncomment this macro to enable the NULL cipher and ciphersuites 00343 */ 00344 //#define POLARSSL_CIPHER_NULL_CIPHER 00345 00346 /** 00347 * \def POLARSSL_CIPHER_PADDING_XXX 00348 * 00349 * Uncomment or comment macros to add support for specific padding modes 00350 * in the cipher layer with cipher modes that support padding (e.g. CBC) 00351 * 00352 * If you disable all padding modes, only full blocks can be used with CBC. 00353 * 00354 * Enable padding modes in the cipher layer. 00355 */ 00356 #define POLARSSL_CIPHER_PADDING_PKCS7 00357 #define POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS 00358 #define POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN 00359 #define POLARSSL_CIPHER_PADDING_ZEROS 00360 00361 /** 00362 * \def POLARSSL_ENABLE_WEAK_CIPHERSUITES 00363 * 00364 * Enable weak ciphersuites in SSL / TLS. 00365 * Warning: Only do so when you know what you are doing. This allows for 00366 * channels with virtually no security at all! 00367 * 00368 * This enables the following ciphersuites: 00369 * TLS_RSA_WITH_DES_CBC_SHA 00370 * TLS_DHE_RSA_WITH_DES_CBC_SHA 00371 * 00372 * Uncomment this macro to enable weak ciphersuites 00373 */ 00374 //#define POLARSSL_ENABLE_WEAK_CIPHERSUITES 00375 00376 /** 00377 * \def POLARSSL_REMOVE_ARC4_CIPHERSUITES 00378 * 00379 * Remove RC4 ciphersuites by default in SSL / TLS. 00380 * This flag removes the ciphersuites based on RC4 from the default list as 00381 * returned by ssl_list_ciphersuites(). However, it is still possible to 00382 * enable (some of) them with ssl_set_ciphersuites() by including them 00383 * explicitly. 00384 * 00385 * Uncomment this macro to remove RC4 ciphersuites by default. 00386 */ 00387 //#define POLARSSL_REMOVE_ARC4_CIPHERSUITES 00388 00389 /** 00390 * \def POLARSSL_ECP_XXXX_ENABLED 00391 * 00392 * Enables specific curves within the Elliptic Curve module. 00393 * By default all supported curves are enabled. 00394 * 00395 * Comment macros to disable the curve and functions for it 00396 */ 00397 #define POLARSSL_ECP_DP_SECP192R1_ENABLED 00398 #define POLARSSL_ECP_DP_SECP224R1_ENABLED 00399 #define POLARSSL_ECP_DP_SECP256R1_ENABLED 00400 #define POLARSSL_ECP_DP_SECP384R1_ENABLED 00401 #define POLARSSL_ECP_DP_SECP521R1_ENABLED 00402 #define POLARSSL_ECP_DP_SECP192K1_ENABLED 00403 #define POLARSSL_ECP_DP_SECP224K1_ENABLED 00404 #define POLARSSL_ECP_DP_SECP256K1_ENABLED 00405 #define POLARSSL_ECP_DP_BP256R1_ENABLED 00406 #define POLARSSL_ECP_DP_BP384R1_ENABLED 00407 #define POLARSSL_ECP_DP_BP512R1_ENABLED 00408 //#define POLARSSL_ECP_DP_M221_ENABLED // Not implemented yet! 00409 #define POLARSSL_ECP_DP_M255_ENABLED 00410 //#define POLARSSL_ECP_DP_M383_ENABLED // Not implemented yet! 00411 //#define POLARSSL_ECP_DP_M511_ENABLED // Not implemented yet! 00412 00413 /** 00414 * \def POLARSSL_ECP_NIST_OPTIM 00415 * 00416 * Enable specific 'modulo p' routines for each NIST prime. 00417 * Depending on the prime and architecture, makes operations 4 to 8 times 00418 * faster on the corresponding curve. 00419 * 00420 * Comment this macro to disable NIST curves optimisation. 00421 */ 00422 #define POLARSSL_ECP_NIST_OPTIM 00423 00424 /** 00425 * \def POLARSSL_ECDSA_DETERMINISTIC 00426 * 00427 * Enable deterministic ECDSA (RFC 6979). 00428 * Standard ECDSA is "fragile" in the sense that lack of entropy when signing 00429 * may result in a compromise of the long-term signing key. This is avoided by 00430 * the deterministic variant. 00431 * 00432 * Requires: POLARSSL_HMAC_DRBG_C 00433 * 00434 * Comment this macro to disable deterministic ECDSA. 00435 */ 00436 #define POLARSSL_ECDSA_DETERMINISTIC 00437 00438 /** 00439 * \def POLARSSL_KEY_EXCHANGE_PSK_ENABLED 00440 * 00441 * Enable the PSK based ciphersuite modes in SSL / TLS. 00442 * 00443 * This enables the following ciphersuites (if other requisites are 00444 * enabled as well): 00445 * TLS_PSK_WITH_AES_256_GCM_SHA384 00446 * TLS_PSK_WITH_AES_256_CBC_SHA384 00447 * TLS_PSK_WITH_AES_256_CBC_SHA 00448 * TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 00449 * TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 00450 * TLS_PSK_WITH_AES_128_GCM_SHA256 00451 * TLS_PSK_WITH_AES_128_CBC_SHA256 00452 * TLS_PSK_WITH_AES_128_CBC_SHA 00453 * TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 00454 * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 00455 * TLS_PSK_WITH_3DES_EDE_CBC_SHA 00456 * TLS_PSK_WITH_RC4_128_SHA 00457 */ 00458 #define POLARSSL_KEY_EXCHANGE_PSK_ENABLED 00459 00460 /** 00461 * \def POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED 00462 * 00463 * Enable the DHE-PSK based ciphersuite modes in SSL / TLS. 00464 * 00465 * Requires: POLARSSL_DHM_C 00466 * 00467 * This enables the following ciphersuites (if other requisites are 00468 * enabled as well): 00469 * TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 00470 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 00471 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA 00472 * TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 00473 * TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 00474 * TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 00475 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 00476 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA 00477 * TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 00478 * TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 00479 * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 00480 * TLS_DHE_PSK_WITH_RC4_128_SHA 00481 */ 00482 #define POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED 00483 00484 /** 00485 * \def POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED 00486 * 00487 * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS. 00488 * 00489 * Requires: POLARSSL_ECDH_C 00490 * 00491 * This enables the following ciphersuites (if other requisites are 00492 * enabled as well): 00493 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 00494 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 00495 * TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 00496 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 00497 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 00498 * TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 00499 * TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 00500 * TLS_ECDHE_PSK_WITH_RC4_128_SHA 00501 */ 00502 #define POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED 00503 00504 /** 00505 * \def POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED 00506 * 00507 * Enable the RSA-PSK based ciphersuite modes in SSL / TLS. 00508 * 00509 * Requires: POLARSSL_RSA_C, POLARSSL_PKCS1_V15, 00510 * POLARSSL_X509_CRT_PARSE_C 00511 * 00512 * This enables the following ciphersuites (if other requisites are 00513 * enabled as well): 00514 * TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 00515 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 00516 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA 00517 * TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 00518 * TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 00519 * TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 00520 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 00521 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA 00522 * TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 00523 * TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 00524 * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 00525 * TLS_RSA_PSK_WITH_RC4_128_SHA 00526 */ 00527 #define POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED 00528 00529 /** 00530 * \def POLARSSL_KEY_EXCHANGE_RSA_ENABLED 00531 * 00532 * Enable the RSA-only based ciphersuite modes in SSL / TLS. 00533 * 00534 * Requires: POLARSSL_RSA_C, POLARSSL_PKCS1_V15, 00535 * POLARSSL_X509_CRT_PARSE_C 00536 * 00537 * This enables the following ciphersuites (if other requisites are 00538 * enabled as well): 00539 * TLS_RSA_WITH_AES_256_GCM_SHA384 00540 * TLS_RSA_WITH_AES_256_CBC_SHA256 00541 * TLS_RSA_WITH_AES_256_CBC_SHA 00542 * TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 00543 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 00544 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 00545 * TLS_RSA_WITH_AES_128_GCM_SHA256 00546 * TLS_RSA_WITH_AES_128_CBC_SHA256 00547 * TLS_RSA_WITH_AES_128_CBC_SHA 00548 * TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 00549 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 00550 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 00551 * TLS_RSA_WITH_3DES_EDE_CBC_SHA 00552 * TLS_RSA_WITH_RC4_128_SHA 00553 * TLS_RSA_WITH_RC4_128_MD5 00554 */ 00555 #define POLARSSL_KEY_EXCHANGE_RSA_ENABLED 00556 00557 /** 00558 * \def POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED 00559 * 00560 * Enable the DHE-RSA based ciphersuite modes in SSL / TLS. 00561 * 00562 * Requires: POLARSSL_DHM_C, POLARSSL_RSA_C, POLARSSL_PKCS1_V15, 00563 * POLARSSL_X509_CRT_PARSE_C 00564 * 00565 * This enables the following ciphersuites (if other requisites are 00566 * enabled as well): 00567 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 00568 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 00569 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA 00570 * TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 00571 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 00572 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 00573 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 00574 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 00575 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA 00576 * TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 00577 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 00578 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 00579 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 00580 */ 00581 #define POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED 00582 00583 /** 00584 * \def POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED 00585 * 00586 * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS. 00587 * 00588 * Requires: POLARSSL_ECDH_C, POLARSSL_RSA_C, POLARSSL_PKCS1_V15, 00589 * POLARSSL_X509_CRT_PARSE_C 00590 * 00591 * This enables the following ciphersuites (if other requisites are 00592 * enabled as well): 00593 * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 00594 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 00595 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 00596 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 00597 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 00598 * TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 00599 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 00600 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 00601 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 00602 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 00603 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 00604 * TLS_ECDHE_RSA_WITH_RC4_128_SHA 00605 */ 00606 #define POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED 00607 00608 /** 00609 * \def POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 00610 * 00611 * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS. 00612 * 00613 * Requires: POLARSSL_ECDH_C, POLARSSL_ECDSA_C, POLARSSL_X509_CRT_PARSE_C, 00614 * 00615 * This enables the following ciphersuites (if other requisites are 00616 * enabled as well): 00617 * TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 00618 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 00619 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 00620 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 00621 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 00622 * TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 00623 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 00624 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 00625 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 00626 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 00627 * TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 00628 * TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 00629 */ 00630 #define POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 00631 00632 /** 00633 * \def POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED 00634 * 00635 * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS. 00636 * 00637 * Requires: POLARSSL_ECDH_C, POLARSSL_X509_CRT_PARSE_C 00638 * 00639 * This enables the following ciphersuites (if other requisites are 00640 * enabled as well): 00641 * TLS_ECDH_ECDSA_WITH_RC4_128_SHA 00642 * TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 00643 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 00644 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 00645 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 00646 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 00647 * TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 00648 * TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 00649 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 00650 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 00651 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 00652 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 00653 */ 00654 #define POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED 00655 00656 /** 00657 * \def POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED 00658 * 00659 * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS. 00660 * 00661 * Requires: POLARSSL_ECDH_C, POLARSSL_X509_CRT_PARSE_C 00662 * 00663 * This enables the following ciphersuites (if other requisites are 00664 * enabled as well): 00665 * TLS_ECDH_RSA_WITH_RC4_128_SHA 00666 * TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 00667 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 00668 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 00669 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 00670 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 00671 * TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 00672 * TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 00673 * TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 00674 * TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 00675 * TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 00676 * TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 00677 */ 00678 #define POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED 00679 00680 /** 00681 * \def POLARSSL_PK_PARSE_EC_EXTENDED 00682 * 00683 * Enhance support for reading EC keys using variants of SEC1 not allowed by 00684 * RFC 5915 and RFC 5480. 00685 * 00686 * Currently this means parsing the SpecifiedECDomain choice of EC 00687 * parameters (only known groups are supported, not arbitrary domains, to 00688 * avoid validation issues). 00689 * 00690 * Disable if you only need to support RFC 5915 + 5480 key formats. 00691 */ 00692 #define POLARSSL_PK_PARSE_EC_EXTENDED 00693 00694 /** 00695 * \def POLARSSL_ERROR_STRERROR_BC 00696 * 00697 * Make available the backward compatible error_strerror() next to the 00698 * current polarssl_strerror(). 00699 * 00700 * \deprecated Do not define this and use polarssl_strerror() instead 00701 * 00702 * Disable if you want to really remove the error_strerror() name 00703 */ 00704 #define POLARSSL_ERROR_STRERROR_BC 00705 00706 /** 00707 * \def POLARSSL_ERROR_STRERROR_DUMMY 00708 * 00709 * Enable a dummy error function to make use of polarssl_strerror() in 00710 * third party libraries easier when POLARSSL_ERROR_C is disabled 00711 * (no effect when POLARSSL_ERROR_C is enabled). 00712 * 00713 * You can safely disable this if POLARSSL_ERROR_C is enabled, or if you're 00714 * not using polarssl_strerror() or error_strerror() in your application. 00715 * 00716 * Disable if you run into name conflicts and want to really remove the 00717 * polarssl_strerror() 00718 */ 00719 #define POLARSSL_ERROR_STRERROR_DUMMY 00720 00721 /** 00722 * \def POLARSSL_GENPRIME 00723 * 00724 * Enable the prime-number generation code. 00725 * 00726 * Requires: POLARSSL_BIGNUM_C 00727 */ 00728 #define POLARSSL_GENPRIME 00729 00730 /** 00731 * \def POLARSSL_FS_IO 00732 * 00733 * Enable functions that use the filesystem. 00734 */ 00735 #define POLARSSL_FS_IO 00736 00737 /** 00738 * \def POLARSSL_NO_DEFAULT_ENTROPY_SOURCES 00739 * 00740 * Do not add default entropy sources. These are the platform specific, 00741 * hardclock and HAVEGE based poll functions. 00742 * 00743 * This is useful to have more control over the added entropy sources in an 00744 * application. 00745 * 00746 * Uncomment this macro to prevent loading of default entropy functions. 00747 */ 00748 //#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES 00749 00750 /** 00751 * \def POLARSSL_NO_PLATFORM_ENTROPY 00752 * 00753 * Do not use built-in platform entropy functions. 00754 * This is useful if your platform does not support 00755 * standards like the /dev/urandom or Windows CryptoAPI. 00756 * 00757 * Uncomment this macro to disable the built-in platform entropy functions. 00758 */ 00759 //#define POLARSSL_NO_PLATFORM_ENTROPY 00760 00761 /** 00762 * \def POLARSSL_ENTROPY_FORCE_SHA256 00763 * 00764 * Force the entropy accumulator to use a SHA-256 accumulator instead of the 00765 * default SHA-512 based one (if both are available). 00766 * 00767 * Requires: POLARSSL_SHA256_C 00768 * 00769 * On 32-bit systems SHA-256 can be much faster than SHA-512. Use this option 00770 * if you have performance concerns. 00771 * 00772 * This option is only useful if both POLARSSL_SHA256_C and 00773 * POLARSSL_SHA512_C are defined. Otherwise the available hash module is used. 00774 */ 00775 //#define POLARSSL_ENTROPY_FORCE_SHA256 00776 00777 /** 00778 * \def POLARSSL_MEMORY_DEBUG 00779 * 00780 * Enable debugging of buffer allocator memory issues. Automatically prints 00781 * (to stderr) all (fatal) messages on memory allocation issues. Enables 00782 * function for 'debug output' of allocated memory. 00783 * 00784 * Requires: POLARSSL_MEMORY_BUFFER_ALLOC_C 00785 * 00786 * Uncomment this macro to let the buffer allocator print out error messages. 00787 */ 00788 //#define POLARSSL_MEMORY_DEBUG 00789 00790 /** 00791 * \def POLARSSL_MEMORY_BACKTRACE 00792 * 00793 * Include backtrace information with each allocated block. 00794 * 00795 * Requires: POLARSSL_MEMORY_BUFFER_ALLOC_C 00796 * GLIBC-compatible backtrace() an backtrace_symbols() support 00797 * 00798 * Uncomment this macro to include backtrace information 00799 */ 00800 //#define POLARSSL_MEMORY_BACKTRACE 00801 00802 /** 00803 * \def POLARSSL_PKCS1_V15 00804 * 00805 * Enable support for PKCS#1 v1.5 encoding. 00806 * 00807 * Requires: POLARSSL_RSA_C 00808 * 00809 * This enables support for PKCS#1 v1.5 operations. 00810 */ 00811 #define POLARSSL_PKCS1_V15 00812 00813 /** 00814 * \def POLARSSL_PKCS1_V21 00815 * 00816 * Enable support for PKCS#1 v2.1 encoding. 00817 * 00818 * Requires: POLARSSL_MD_C, POLARSSL_RSA_C 00819 * 00820 * This enables support for RSAES-OAEP and RSASSA-PSS operations. 00821 */ 00822 #define POLARSSL_PKCS1_V21 00823 00824 /** 00825 * \def POLARSSL_RSA_NO_CRT 00826 * 00827 * Do not use the Chinese Remainder Theorem for the RSA private operation. 00828 * 00829 * Uncomment this macro to disable the use of CRT in RSA. 00830 * 00831 */ 00832 //#define POLARSSL_RSA_NO_CRT 00833 00834 /** 00835 * \def POLARSSL_SELF_TEST 00836 * 00837 * Enable the checkup functions (*_self_test). 00838 */ 00839 #define POLARSSL_SELF_TEST 00840 00841 /** 00842 * \def POLARSSL_SSL_AEAD_RANDOM_IV 00843 * 00844 * Generate a random IV rather than using the record sequence number as a 00845 * nonce for ciphersuites using and AEAD algorithm (GCM or CCM). 00846 * 00847 * Using the sequence number is generally recommended. 00848 * 00849 * Uncomment this macro to always use random IVs with AEAD ciphersuites. 00850 */ 00851 //#define POLARSSL_SSL_AEAD_RANDOM_IV 00852 00853 /** 00854 * \def POLARSSL_SSL_ALL_ALERT_MESSAGES 00855 * 00856 * Enable sending of alert messages in case of encountered errors as per RFC. 00857 * If you choose not to send the alert messages, mbed TLS can still communicate 00858 * with other servers, only debugging of failures is harder. 00859 * 00860 * The advantage of not sending alert messages, is that no information is given 00861 * about reasons for failures thus preventing adversaries of gaining intel. 00862 * 00863 * Enable sending of all alert messages 00864 */ 00865 #define POLARSSL_SSL_ALERT_MESSAGES 00866 00867 /** 00868 * \def POLARSSL_SSL_DEBUG_ALL 00869 * 00870 * Enable the debug messages in SSL module for all issues. 00871 * Debug messages have been disabled in some places to prevent timing 00872 * attacks due to (unbalanced) debugging function calls. 00873 * 00874 * If you need all error reporting you should enable this during debugging, 00875 * but remove this for production servers that should log as well. 00876 * 00877 * Uncomment this macro to report all debug messages on errors introducing 00878 * a timing side-channel. 00879 * 00880 */ 00881 //#define POLARSSL_SSL_DEBUG_ALL 00882 00883 /** \def POLARSSL_SSL_ENCRYPT_THEN_MAC 00884 * 00885 * Enable support for Encrypt-then-MAC, RFC 7366. 00886 * 00887 * This allows peers that both support it to use a more robust protection for 00888 * ciphersuites using CBC, providing deep resistance against timing attacks 00889 * on the padding or underlying cipher. 00890 * 00891 * This only affects CBC ciphersuites, and is useless if none is defined. 00892 * 00893 * Requires: POLARSSL_SSL_PROTO_TLS1 or 00894 * POLARSSL_SSL_PROTO_TLS1_1 or 00895 * POLARSSL_SSL_PROTO_TLS1_2 00896 * 00897 * Comment this macro to disable support for Encrypt-then-MAC 00898 */ 00899 #define POLARSSL_SSL_ENCRYPT_THEN_MAC 00900 00901 /** \def POLARSSL_SSL_EXTENDED_MASTER_SECRET 00902 * 00903 * Enable support for Extended Master Secret, aka Session Hash 00904 * (draft-ietf-tls-session-hash-02). 00905 * 00906 * This was introduced as "the proper fix" to the Triple Handshake familiy of 00907 * attacks, but it is recommended to always use it (even if you disable 00908 * renegotiation), since it actually fixes a more fundamental issue in the 00909 * original SSL/TLS design, and has implications beyond Triple Handshake. 00910 * 00911 * Requires: POLARSSL_SSL_PROTO_TLS1 or 00912 * POLARSSL_SSL_PROTO_TLS1_1 or 00913 * POLARSSL_SSL_PROTO_TLS1_2 00914 * 00915 * Comment this macro to disable support for Extended Master Secret. 00916 */ 00917 #define POLARSSL_SSL_EXTENDED_MASTER_SECRET 00918 00919 /** 00920 * \def POLARSSL_SSL_FALLBACK_SCSV 00921 * 00922 * Enable support for FALLBACK_SCSV (draft-ietf-tls-downgrade-scsv-00). 00923 * 00924 * For servers, it is recommended to always enable this, unless you support 00925 * only one version of TLS, or know for sure that none of your clients 00926 * implements a fallback strategy. 00927 * 00928 * For clients, you only need this if you're using a fallback strategy, which 00929 * is not recommended in the first place, unless you absolutely need it to 00930 * interoperate with buggy (version-intolerant) servers. 00931 * 00932 * Comment this macro to disable support for FALLBACK_SCSV 00933 */ 00934 #define POLARSSL_SSL_FALLBACK_SCSV 00935 00936 /** 00937 * \def POLARSSL_SSL_HW_RECORD_ACCEL 00938 * 00939 * Enable hooking functions in SSL module for hardware acceleration of 00940 * individual records. 00941 * 00942 * Uncomment this macro to enable hooking functions. 00943 */ 00944 //#define POLARSSL_SSL_HW_RECORD_ACCEL 00945 00946 /** 00947 * \def POLARSSL_SSL_CBC_RECORD_SPLITTING 00948 * 00949 * Enable 1/n-1 record splitting for CBC mode in SSLv3 and TLS 1.0. 00950 * 00951 * This is a countermeasure to the BEAST attack, which also minimizes the risk 00952 * of interoperability issues compared to sending 0-length records. 00953 * 00954 * Comment this macro to disable 1/n-1 record splitting. 00955 */ 00956 #define POLARSSL_SSL_CBC_RECORD_SPLITTING 00957 00958 /** 00959 * \def POLARSSL_SSL_DISABLE_RENEGOTIATION 00960 * 00961 * Disable support for TLS renegotiation. 00962 * 00963 * The two main uses of renegotiation are (1) refresh keys on long-lived 00964 * connections and (2) client authentication after the initial handshake. 00965 * If you don't need renegotiation, it's probably better to disable it, since 00966 * it has been associated with security issues in the past and is easy to 00967 * misuse/misunderstand. 00968 * 00969 * Warning: in the next stable branch, this switch will be replaced by 00970 * POLARSSL_SSL_RENEGOTIATION to enable support for renegotiation. 00971 * 00972 * Uncomment this to disable support for renegotiation. 00973 */ 00974 //#define POLARSSL_SSL_DISABLE_RENEGOTIATION 00975 00976 /** 00977 * \def POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO 00978 * 00979 * Enable support for receiving and parsing SSLv2 Client Hello messages for the 00980 * SSL Server module (POLARSSL_SSL_SRV_C). 00981 * 00982 * Comment this macro to disable support for SSLv2 Client Hello messages. 00983 */ 00984 #define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO 00985 00986 /** 00987 * \def POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE 00988 * 00989 * Pick the ciphersuite according to the client's preferences rather than ours 00990 * in the SSL Server module (POLARSSL_SSL_SRV_C). 00991 * 00992 * Uncomment this macro to respect client's ciphersuite order 00993 */ 00994 //#define POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE 00995 00996 /** 00997 * \def POLARSSL_SSL_MAX_FRAGMENT_LENGTH 00998 * 00999 * Enable support for RFC 6066 max_fragment_length extension in SSL. 01000 * 01001 * Comment this macro to disable support for the max_fragment_length extension 01002 */ 01003 #define POLARSSL_SSL_MAX_FRAGMENT_LENGTH 01004 01005 /** 01006 * \def POLARSSL_SSL_PROTO_SSL3 01007 * 01008 * Enable support for SSL 3.0. 01009 * 01010 * Requires: POLARSSL_MD5_C 01011 * POLARSSL_SHA1_C 01012 * 01013 * Comment this macro to disable support for SSL 3.0 01014 */ 01015 #define POLARSSL_SSL_PROTO_SSL3 01016 01017 /** 01018 * \def POLARSSL_SSL_PROTO_TLS1 01019 * 01020 * Enable support for TLS 1.0. 01021 * 01022 * Requires: POLARSSL_MD5_C 01023 * POLARSSL_SHA1_C 01024 * 01025 * Comment this macro to disable support for TLS 1.0 01026 */ 01027 #define POLARSSL_SSL_PROTO_TLS1 01028 01029 /** 01030 * \def POLARSSL_SSL_PROTO_TLS1_1 01031 * 01032 * Enable support for TLS 1.1. 01033 * 01034 * Requires: POLARSSL_MD5_C 01035 * POLARSSL_SHA1_C 01036 * 01037 * Comment this macro to disable support for TLS 1.1 01038 */ 01039 #define POLARSSL_SSL_PROTO_TLS1_1 01040 01041 /** 01042 * \def POLARSSL_SSL_PROTO_TLS1_2 01043 * 01044 * Enable support for TLS 1.2. 01045 * 01046 * Requires: POLARSSL_SHA1_C or POLARSSL_SHA256_C or POLARSSL_SHA512_C 01047 * (Depends on ciphersuites) 01048 * 01049 * Comment this macro to disable support for TLS 1.2 01050 */ 01051 #define POLARSSL_SSL_PROTO_TLS1_2 01052 01053 /** 01054 * \def POLARSSL_SSL_ALPN 01055 * 01056 * Enable support for RFC 7301 Application Layer Protocol Negotiation. 01057 * 01058 * Comment this macro to disable support for ALPN. 01059 */ 01060 #define POLARSSL_SSL_ALPN 01061 01062 /** 01063 * \def POLARSSL_SSL_SESSION_TICKETS 01064 * 01065 * Enable support for RFC 5077 session tickets in SSL. 01066 * 01067 * Requires: POLARSSL_AES_C 01068 * POLARSSL_SHA256_C 01069 * POLARSSL_CIPHER_MODE_CBC 01070 * 01071 * Comment this macro to disable support for SSL session tickets 01072 */ 01073 #define POLARSSL_SSL_SESSION_TICKETS 01074 01075 /** 01076 * \def POLARSSL_SSL_SERVER_NAME_INDICATION 01077 * 01078 * Enable support for RFC 6066 server name indication (SNI) in SSL. 01079 * 01080 * Requires: POLARSSL_X509_CRT_PARSE_C 01081 * 01082 * Comment this macro to disable support for server name indication in SSL 01083 */ 01084 #define POLARSSL_SSL_SERVER_NAME_INDICATION 01085 01086 /** 01087 * \def POLARSSL_SSL_TRUNCATED_HMAC 01088 * 01089 * Enable support for RFC 6066 truncated HMAC in SSL. 01090 * 01091 * Comment this macro to disable support for truncated HMAC in SSL 01092 */ 01093 #define POLARSSL_SSL_TRUNCATED_HMAC 01094 01095 /** 01096 * \def POLARSSL_SSL_SET_CURVES 01097 * 01098 * Enable ssl_set_curves(). 01099 * 01100 * This is disabled by default since it breaks binary compatibility with the 01101 * 1.3.x line. If you choose to enable it, you will need to rebuild your 01102 * application against the new header files, relinking will not be enough. 01103 * It will be enabled by default, or no longer an option, in the 1.4 branch. 01104 * 01105 * Uncomment to make ssl_set_curves() available. 01106 */ 01107 //#define POLARSSL_SSL_SET_CURVES 01108 01109 /** 01110 * \def POLARSSL_THREADING_ALT 01111 * 01112 * Provide your own alternate threading implementation. 01113 * 01114 * Requires: POLARSSL_THREADING_C 01115 * 01116 * Uncomment this to allow your own alternate threading implementation. 01117 */ 01118 //#define POLARSSL_THREADING_ALT 01119 01120 /** 01121 * \def POLARSSL_THREADING_PTHREAD 01122 * 01123 * Enable the pthread wrapper layer for the threading layer. 01124 * 01125 * Requires: POLARSSL_THREADING_C 01126 * 01127 * Uncomment this to enable pthread mutexes. 01128 */ 01129 //#define POLARSSL_THREADING_PTHREAD 01130 01131 /** 01132 * \def POLARSSL_VERSION_FEATURES 01133 * 01134 * Allow run-time checking of compile-time enabled features. Thus allowing users 01135 * to check at run-time if the library is for instance compiled with threading 01136 * support via version_check_feature(). 01137 * 01138 * Requires: POLARSSL_VERSION_C 01139 * 01140 * Comment this to disable run-time checking and save ROM space 01141 */ 01142 #define POLARSSL_VERSION_FEATURES 01143 01144 /** 01145 * \def POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 01146 * 01147 * If set, the X509 parser will not break-off when parsing an X509 certificate 01148 * and encountering an extension in a v1 or v2 certificate. 01149 * 01150 * Uncomment to prevent an error. 01151 */ 01152 //#define POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 01153 01154 /** 01155 * \def POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION 01156 * 01157 * If set, the X509 parser will not break-off when parsing an X509 certificate 01158 * and encountering an unknown critical extension. 01159 * 01160 * Uncomment to prevent an error. 01161 */ 01162 //#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION 01163 01164 /** 01165 * \def POLARSSL_X509_CHECK_KEY_USAGE 01166 * 01167 * Enable verification of the keyUsage extension (CA and leaf certificates). 01168 * 01169 * Disabling this avoids problems with mis-issued and/or misused 01170 * (intermediate) CA and leaf certificates. 01171 * 01172 * \warning Depending on your PKI use, disabling this can be a security risk! 01173 * 01174 * Comment to skip keyUsage checking for both CA and leaf certificates. 01175 */ 01176 #define POLARSSL_X509_CHECK_KEY_USAGE 01177 01178 /** 01179 * \def POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE 01180 * 01181 * Enable verification of the extendedKeyUsage extension (leaf certificates). 01182 * 01183 * Disabling this avoids problems with mis-issued and/or misused certificates. 01184 * 01185 * \warning Depending on your PKI use, disabling this can be a security risk! 01186 * 01187 * Comment to skip extendedKeyUsage checking for certificates. 01188 */ 01189 #define POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE 01190 01191 /** 01192 * \def POLARSSL_X509_RSASSA_PSS_SUPPORT 01193 * 01194 * Enable parsing and verification of X.509 certificates, CRLs and CSRS 01195 * signed with RSASSA-PSS (aka PKCS#1 v2.1). 01196 * 01197 * Comment this macro to disallow using RSASSA-PSS in certificates. 01198 */ 01199 #define POLARSSL_X509_RSASSA_PSS_SUPPORT 01200 01201 /** 01202 * \def POLARSSL_ZLIB_SUPPORT 01203 * 01204 * If set, the SSL/TLS module uses ZLIB to support compression and 01205 * decompression of packet data. 01206 * 01207 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the 01208 * CRIME attack. Before enabling this option, you should examine with care if 01209 * CRIME or similar exploits may be a applicable to your use case. 01210 * 01211 * Used in: library/ssl_tls.c 01212 * library/ssl_cli.c 01213 * library/ssl_srv.c 01214 * 01215 * This feature requires zlib library and headers to be present. 01216 * 01217 * Uncomment to enable use of ZLIB 01218 */ 01219 //#define POLARSSL_ZLIB_SUPPORT 01220 /* \} name SECTION: mbed TLS feature support */ 01221 01222 /** 01223 * \name SECTION: mbed TLS modules 01224 * 01225 * This section enables or disables entire modules in mbed TLS 01226 * \{ 01227 */ 01228 01229 /** 01230 * \def POLARSSL_AESNI_C 01231 * 01232 * Enable AES-NI support on x86-64. 01233 * 01234 * Module: library/aesni.c 01235 * Caller: library/aes.c 01236 * 01237 * Requires: POLARSSL_HAVE_ASM 01238 * 01239 * This modules adds support for the AES-NI instructions on x86-64 01240 */ 01241 #define POLARSSL_AESNI_C 01242 01243 /** 01244 * \def POLARSSL_AES_C 01245 * 01246 * Enable the AES block cipher. 01247 * 01248 * Module: library/aes.c 01249 * Caller: library/ssl_tls.c 01250 * library/pem.c 01251 * library/ctr_drbg.c 01252 * 01253 * This module enables the following ciphersuites (if other requisites are 01254 * enabled as well): 01255 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 01256 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 01257 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 01258 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 01259 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 01260 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 01261 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 01262 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 01263 * TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 01264 * TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 01265 * TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 01266 * TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 01267 * TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 01268 * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 01269 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 01270 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 01271 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 01272 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 01273 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 01274 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 01275 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA 01276 * TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 01277 * TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 01278 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 01279 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 01280 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 01281 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 01282 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 01283 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 01284 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA 01285 * TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 01286 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 01287 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 01288 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 01289 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA 01290 * TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 01291 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 01292 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 01293 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 01294 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA 01295 * TLS_RSA_WITH_AES_256_GCM_SHA384 01296 * TLS_RSA_WITH_AES_256_CBC_SHA256 01297 * TLS_RSA_WITH_AES_256_CBC_SHA 01298 * TLS_RSA_WITH_AES_128_GCM_SHA256 01299 * TLS_RSA_WITH_AES_128_CBC_SHA256 01300 * TLS_RSA_WITH_AES_128_CBC_SHA 01301 * TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 01302 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 01303 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA 01304 * TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 01305 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 01306 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA 01307 * TLS_PSK_WITH_AES_256_GCM_SHA384 01308 * TLS_PSK_WITH_AES_256_CBC_SHA384 01309 * TLS_PSK_WITH_AES_256_CBC_SHA 01310 * TLS_PSK_WITH_AES_128_GCM_SHA256 01311 * TLS_PSK_WITH_AES_128_CBC_SHA256 01312 * TLS_PSK_WITH_AES_128_CBC_SHA 01313 * 01314 * PEM_PARSE uses AES for decrypting encrypted keys. 01315 */ 01316 #define POLARSSL_AES_C 01317 01318 /** 01319 * \def POLARSSL_ARC4_C 01320 * 01321 * Enable the ARCFOUR stream cipher. 01322 * 01323 * Module: library/arc4.c 01324 * Caller: library/ssl_tls.c 01325 * 01326 * This module enables the following ciphersuites (if other requisites are 01327 * enabled as well): 01328 * TLS_ECDH_ECDSA_WITH_RC4_128_SHA 01329 * TLS_ECDH_RSA_WITH_RC4_128_SHA 01330 * TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 01331 * TLS_ECDHE_RSA_WITH_RC4_128_SHA 01332 * TLS_ECDHE_PSK_WITH_RC4_128_SHA 01333 * TLS_DHE_PSK_WITH_RC4_128_SHA 01334 * TLS_RSA_WITH_RC4_128_SHA 01335 * TLS_RSA_WITH_RC4_128_MD5 01336 * TLS_RSA_PSK_WITH_RC4_128_SHA 01337 * TLS_PSK_WITH_RC4_128_SHA 01338 */ 01339 #define POLARSSL_ARC4_C 01340 01341 /** 01342 * \def POLARSSL_ASN1_PARSE_C 01343 * 01344 * Enable the generic ASN1 parser. 01345 * 01346 * Module: library/asn1.c 01347 * Caller: library/x509.c 01348 * library/dhm.c 01349 * library/pkcs12.c 01350 * library/pkcs5.c 01351 * library/pkparse.c 01352 */ 01353 #define POLARSSL_ASN1_PARSE_C 01354 01355 /** 01356 * \def POLARSSL_ASN1_WRITE_C 01357 * 01358 * Enable the generic ASN1 writer. 01359 * 01360 * Module: library/asn1write.c 01361 * Caller: library/ecdsa.c 01362 * library/pkwrite.c 01363 * library/x509_create.c 01364 * library/x509write_crt.c 01365 * library/x509write_csr.c 01366 */ 01367 #define POLARSSL_ASN1_WRITE_C 01368 01369 /** 01370 * \def POLARSSL_BASE64_C 01371 * 01372 * Enable the Base64 module. 01373 * 01374 * Module: library/base64.c 01375 * Caller: library/pem.c 01376 * 01377 * This module is required for PEM support (required by X.509). 01378 */ 01379 #define POLARSSL_BASE64_C 01380 01381 /** 01382 * \def POLARSSL_BIGNUM_C 01383 * 01384 * Enable the multi-precision integer library. 01385 * 01386 * Module: library/bignum.c 01387 * Caller: library/dhm.c 01388 * library/ecp.c 01389 * library/ecdsa.c 01390 * library/rsa.c 01391 * library/ssl_tls.c 01392 * 01393 * This module is required for RSA, DHM and ECC (ECDH, ECDSA) support. 01394 */ 01395 #define POLARSSL_BIGNUM_C 01396 01397 /** 01398 * \def POLARSSL_BLOWFISH_C 01399 * 01400 * Enable the Blowfish block cipher. 01401 * 01402 * Module: library/blowfish.c 01403 */ 01404 #define POLARSSL_BLOWFISH_C 01405 01406 /** 01407 * \def POLARSSL_CAMELLIA_C 01408 * 01409 * Enable the Camellia block cipher. 01410 * 01411 * Module: library/camellia.c 01412 * Caller: library/ssl_tls.c 01413 * 01414 * This module enables the following ciphersuites (if other requisites are 01415 * enabled as well): 01416 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 01417 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 01418 * TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 01419 * TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 01420 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 01421 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 01422 * TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 01423 * TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 01424 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 01425 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 01426 * TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 01427 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 01428 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 01429 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 01430 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 01431 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 01432 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 01433 * TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 01434 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 01435 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 01436 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 01437 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 01438 * TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 01439 * TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 01440 * TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 01441 * TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 01442 * TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 01443 * TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 01444 * TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 01445 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 01446 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 01447 * TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 01448 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 01449 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 01450 * TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 01451 * TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 01452 * TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 01453 * TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 01454 * TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 01455 * TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 01456 * TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 01457 * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 01458 */ 01459 #define POLARSSL_CAMELLIA_C 01460 01461 /** 01462 * \def POLARSSL_CCM_C 01463 * 01464 * Enable the Counter with CBC-MAC (CCM) mode for 128-bit block cipher. 01465 * 01466 * Module: library/ccm.c 01467 * 01468 * Requires: POLARSSL_AES_C or POLARSSL_CAMELLIA_C 01469 * 01470 * This module enables the AES-CCM ciphersuites, if other requisites are 01471 * enabled as well. 01472 */ 01473 #define POLARSSL_CCM_C 01474 01475 /** 01476 * \def POLARSSL_CERTS_C 01477 * 01478 * Enable the test certificates. 01479 * 01480 * Module: library/certs.c 01481 * Caller: 01482 * 01483 * Requires: POLARSSL_PEM_PARSE_C 01484 * 01485 * This module is used for testing (ssl_client/server). 01486 */ 01487 #define POLARSSL_CERTS_C 01488 01489 /** 01490 * \def POLARSSL_CIPHER_C 01491 * 01492 * Enable the generic cipher layer. 01493 * 01494 * Module: library/cipher.c 01495 * Caller: library/ssl_tls.c 01496 * 01497 * Uncomment to enable generic cipher wrappers. 01498 */ 01499 #define POLARSSL_CIPHER_C 01500 01501 /** 01502 * \def POLARSSL_CTR_DRBG_C 01503 * 01504 * Enable the CTR_DRBG AES-256-based random generator. 01505 * 01506 * Module: library/ctr_drbg.c 01507 * Caller: 01508 * 01509 * Requires: POLARSSL_AES_C 01510 * 01511 * This module provides the CTR_DRBG AES-256 random number generator. 01512 */ 01513 #define POLARSSL_CTR_DRBG_C 01514 01515 /** 01516 * \def POLARSSL_DEBUG_C 01517 * 01518 * Enable the debug functions. 01519 * 01520 * Module: library/debug.c 01521 * Caller: library/ssl_cli.c 01522 * library/ssl_srv.c 01523 * library/ssl_tls.c 01524 * 01525 * This module provides debugging functions. 01526 */ 01527 #define POLARSSL_DEBUG_C 01528 01529 /** 01530 * \def POLARSSL_DES_C 01531 * 01532 * Enable the DES block cipher. 01533 * 01534 * Module: library/des.c 01535 * Caller: library/pem.c 01536 * library/ssl_tls.c 01537 * 01538 * This module enables the following ciphersuites (if other requisites are 01539 * enabled as well): 01540 * TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 01541 * TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 01542 * TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 01543 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 01544 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 01545 * TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 01546 * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 01547 * TLS_RSA_WITH_3DES_EDE_CBC_SHA 01548 * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 01549 * TLS_PSK_WITH_3DES_EDE_CBC_SHA 01550 * 01551 * PEM_PARSE uses DES/3DES for decrypting encrypted keys. 01552 */ 01553 #define POLARSSL_DES_C 01554 01555 /** 01556 * \def POLARSSL_DHM_C 01557 * 01558 * Enable the Diffie-Hellman-Merkle module. 01559 * 01560 * Module: library/dhm.c 01561 * Caller: library/ssl_cli.c 01562 * library/ssl_srv.c 01563 * 01564 * This module is used by the following key exchanges: 01565 * DHE-RSA, DHE-PSK 01566 */ 01567 #define POLARSSL_DHM_C 01568 01569 /** 01570 * \def POLARSSL_ECDH_C 01571 * 01572 * Enable the elliptic curve Diffie-Hellman library. 01573 * 01574 * Module: library/ecdh.c 01575 * Caller: library/ssl_cli.c 01576 * library/ssl_srv.c 01577 * 01578 * This module is used by the following key exchanges: 01579 * ECDHE-ECDSA, ECDHE-RSA, DHE-PSK 01580 * 01581 * Requires: POLARSSL_ECP_C 01582 */ 01583 #define POLARSSL_ECDH_C 01584 01585 /** 01586 * \def POLARSSL_ECDSA_C 01587 * 01588 * Enable the elliptic curve DSA library. 01589 * 01590 * Module: library/ecdsa.c 01591 * Caller: 01592 * 01593 * This module is used by the following key exchanges: 01594 * ECDHE-ECDSA 01595 * 01596 * Requires: POLARSSL_ECP_C, POLARSSL_ASN1_WRITE_C, POLARSSL_ASN1_PARSE_C 01597 */ 01598 #define POLARSSL_ECDSA_C 01599 01600 /** 01601 * \def POLARSSL_ECP_C 01602 * 01603 * Enable the elliptic curve over GF(p) library. 01604 * 01605 * Module: library/ecp.c 01606 * Caller: library/ecdh.c 01607 * library/ecdsa.c 01608 * 01609 * Requires: POLARSSL_BIGNUM_C and at least one POLARSSL_ECP_DP_XXX_ENABLED 01610 */ 01611 #define POLARSSL_ECP_C 01612 01613 /** 01614 * \def POLARSSL_ENTROPY_C 01615 * 01616 * Enable the platform-specific entropy code. 01617 * 01618 * Module: library/entropy.c 01619 * Caller: 01620 * 01621 * Requires: POLARSSL_SHA512_C or POLARSSL_SHA256_C 01622 * 01623 * This module provides a generic entropy pool 01624 */ 01625 #define POLARSSL_ENTROPY_C 01626 01627 /** 01628 * \def POLARSSL_ERROR_C 01629 * 01630 * Enable error code to error string conversion. 01631 * 01632 * Module: library/error.c 01633 * Caller: 01634 * 01635 * This module enables polarssl_strerror(). 01636 */ 01637 #define POLARSSL_ERROR_C 01638 01639 /** 01640 * \def POLARSSL_GCM_C 01641 * 01642 * Enable the Galois/Counter Mode (GCM) for AES. 01643 * 01644 * Module: library/gcm.c 01645 * 01646 * Requires: POLARSSL_AES_C or POLARSSL_CAMELLIA_C 01647 * 01648 * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other 01649 * requisites are enabled as well. 01650 */ 01651 #define POLARSSL_GCM_C 01652 01653 /** 01654 * \def POLARSSL_HAVEGE_C 01655 * 01656 * Enable the HAVEGE random generator. 01657 * 01658 * Warning: the HAVEGE random generator is not suitable for virtualized 01659 * environments 01660 * 01661 * Warning: the HAVEGE random generator is dependent on timing and specific 01662 * processor traits. It is therefore not advised to use HAVEGE as 01663 * your applications primary random generator or primary entropy pool 01664 * input. As a secondary input to your entropy pool, it IS able add 01665 * the (limited) extra entropy it provides. 01666 * 01667 * Module: library/havege.c 01668 * Caller: 01669 * 01670 * Requires: POLARSSL_TIMING_C 01671 * 01672 * Uncomment to enable the HAVEGE random generator. 01673 */ 01674 //#define POLARSSL_HAVEGE_C 01675 01676 /** 01677 * \def POLARSSL_HMAC_DRBG_C 01678 * 01679 * Enable the HMAC_DRBG random generator. 01680 * 01681 * Module: library/hmac_drbg.c 01682 * Caller: 01683 * 01684 * Requires: POLARSSL_MD_C 01685 * 01686 * Uncomment to enable the HMAC_DRBG random number geerator. 01687 */ 01688 #define POLARSSL_HMAC_DRBG_C 01689 01690 /** 01691 * \def POLARSSL_MD_C 01692 * 01693 * Enable the generic message digest layer. 01694 * 01695 * Module: library/md.c 01696 * Caller: 01697 * 01698 * Uncomment to enable generic message digest wrappers. 01699 */ 01700 #define POLARSSL_MD_C 01701 01702 /** 01703 * \def POLARSSL_MD2_C 01704 * 01705 * Enable the MD2 hash algorithm. 01706 * 01707 * Module: library/md2.c 01708 * Caller: 01709 * 01710 * Uncomment to enable support for (rare) MD2-signed X.509 certs. 01711 */ 01712 //#define POLARSSL_MD2_C 01713 01714 /** 01715 * \def POLARSSL_MD4_C 01716 * 01717 * Enable the MD4 hash algorithm. 01718 * 01719 * Module: library/md4.c 01720 * Caller: 01721 * 01722 * Uncomment to enable support for (rare) MD4-signed X.509 certs. 01723 */ 01724 //#define POLARSSL_MD4_C 01725 01726 /** 01727 * \def POLARSSL_MD5_C 01728 * 01729 * Enable the MD5 hash algorithm. 01730 * 01731 * Module: library/md5.c 01732 * Caller: library/md.c 01733 * library/pem.c 01734 * library/ssl_tls.c 01735 * 01736 * This module is required for SSL/TLS and X.509. 01737 * PEM_PARSE uses MD5 for decrypting encrypted keys. 01738 */ 01739 #define POLARSSL_MD5_C 01740 01741 /** 01742 * \def POLARSSL_MEMORY_C 01743 * 01744 * \deprecated Use POLARSSL_PLATFORM_MEMORY instead. 01745 * 01746 * Depends on: POLARSSL_PLATFORM_C 01747 */ 01748 //#define POLARSSL_MEMORY_C 01749 01750 /** 01751 * \def POLARSSL_MEMORY_BUFFER_ALLOC_C 01752 * 01753 * Enable the buffer allocator implementation that makes use of a (stack) 01754 * based buffer to 'allocate' dynamic memory. (replaces malloc() and free() 01755 * calls) 01756 * 01757 * Module: library/memory_buffer_alloc.c 01758 * 01759 * Requires: POLARSSL_PLATFORM_C 01760 * POLARSSL_PLATFORM_MEMORY (to use it within mbed TLS) 01761 * 01762 * Enable this module to enable the buffer memory allocator. 01763 */ 01764 //#define POLARSSL_MEMORY_BUFFER_ALLOC_C 01765 01766 /** 01767 * \def POLARSSL_NET_C 01768 * 01769 * Enable the TCP/IP networking routines. 01770 * 01771 * \warning As of 1.3.11, it is deprecated to enable this module without 01772 * POLARSSL_HAVE_IPV6. The alternative legacy code will be removed in 2.0. 01773 * 01774 * Module: library/net.c 01775 * 01776 * This module provides TCP/IP networking routines. 01777 */ 01778 #define POLARSSL_NET_C 01779 01780 /** 01781 * \def POLARSSL_OID_C 01782 * 01783 * Enable the OID database. 01784 * 01785 * Module: library/oid.c 01786 * Caller: library/asn1write.c 01787 * library/pkcs5.c 01788 * library/pkparse.c 01789 * library/pkwrite.c 01790 * library/rsa.c 01791 * library/x509.c 01792 * library/x509_create.c 01793 * library/x509_crl.c 01794 * library/x509_crt.c 01795 * library/x509_csr.c 01796 * library/x509write_crt.c 01797 * library/x509write_csr.c 01798 * 01799 * This modules translates between OIDs and internal values. 01800 */ 01801 #define POLARSSL_OID_C 01802 01803 /** 01804 * \def POLARSSL_PADLOCK_C 01805 * 01806 * Enable VIA Padlock support on x86. 01807 * 01808 * Module: library/padlock.c 01809 * Caller: library/aes.c 01810 * 01811 * Requires: POLARSSL_HAVE_ASM 01812 * 01813 * This modules adds support for the VIA PadLock on x86. 01814 */ 01815 #define POLARSSL_PADLOCK_C 01816 01817 /** 01818 * \def POLARSSL_PBKDF2_C 01819 * 01820 * Enable PKCS#5 PBKDF2 key derivation function. 01821 * 01822 * \deprecated Use POLARSSL_PKCS5_C instead 01823 * 01824 * Module: library/pbkdf2.c 01825 * 01826 * Requires: POLARSSL_PKCS5_C 01827 * 01828 * This module adds support for the PKCS#5 PBKDF2 key derivation function. 01829 */ 01830 #define POLARSSL_PBKDF2_C 01831 01832 /** 01833 * \def POLARSSL_PEM_PARSE_C 01834 * 01835 * Enable PEM decoding / parsing. 01836 * 01837 * Module: library/pem.c 01838 * Caller: library/dhm.c 01839 * library/pkparse.c 01840 * library/x509_crl.c 01841 * library/x509_crt.c 01842 * library/x509_csr.c 01843 * 01844 * Requires: POLARSSL_BASE64_C 01845 * 01846 * This modules adds support for decoding / parsing PEM files. 01847 */ 01848 #define POLARSSL_PEM_PARSE_C 01849 01850 /** 01851 * \def POLARSSL_PEM_WRITE_C 01852 * 01853 * Enable PEM encoding / writing. 01854 * 01855 * Module: library/pem.c 01856 * Caller: library/pkwrite.c 01857 * library/x509write_crt.c 01858 * library/x509write_csr.c 01859 * 01860 * Requires: POLARSSL_BASE64_C 01861 * 01862 * This modules adds support for encoding / writing PEM files. 01863 */ 01864 #define POLARSSL_PEM_WRITE_C 01865 01866 /** 01867 * \def POLARSSL_PK_C 01868 * 01869 * Enable the generic public (asymetric) key layer. 01870 * 01871 * Module: library/pk.c 01872 * Caller: library/ssl_tls.c 01873 * library/ssl_cli.c 01874 * library/ssl_srv.c 01875 * 01876 * Requires: POLARSSL_RSA_C or POLARSSL_ECP_C 01877 * 01878 * Uncomment to enable generic public key wrappers. 01879 */ 01880 #define POLARSSL_PK_C 01881 01882 /** 01883 * \def POLARSSL_PK_PARSE_C 01884 * 01885 * Enable the generic public (asymetric) key parser. 01886 * 01887 * Module: library/pkparse.c 01888 * Caller: library/x509_crt.c 01889 * library/x509_csr.c 01890 * 01891 * Requires: POLARSSL_PK_C 01892 * 01893 * Uncomment to enable generic public key parse functions. 01894 */ 01895 #define POLARSSL_PK_PARSE_C 01896 01897 /** 01898 * \def POLARSSL_PK_WRITE_C 01899 * 01900 * Enable the generic public (asymetric) key writer. 01901 * 01902 * Module: library/pkwrite.c 01903 * Caller: library/x509write.c 01904 * 01905 * Requires: POLARSSL_PK_C 01906 * 01907 * Uncomment to enable generic public key write functions. 01908 */ 01909 #define POLARSSL_PK_WRITE_C 01910 01911 /** 01912 * \def POLARSSL_PKCS5_C 01913 * 01914 * Enable PKCS#5 functions. 01915 * 01916 * Module: library/pkcs5.c 01917 * 01918 * Requires: POLARSSL_MD_C 01919 * 01920 * This module adds support for the PKCS#5 functions. 01921 */ 01922 #define POLARSSL_PKCS5_C 01923 01924 /** 01925 * \def POLARSSL_PKCS11_C 01926 * 01927 * Enable wrapper for PKCS#11 smartcard support. 01928 * 01929 * Module: library/pkcs11.c 01930 * Caller: library/pk.c 01931 * 01932 * Requires: POLARSSL_PK_C 01933 * 01934 * This module enables SSL/TLS PKCS #11 smartcard support. 01935 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper) 01936 */ 01937 //#define POLARSSL_PKCS11_C 01938 01939 /** 01940 * \def POLARSSL_PKCS12_C 01941 * 01942 * Enable PKCS#12 PBE functions. 01943 * Adds algorithms for parsing PKCS#8 encrypted private keys 01944 * 01945 * Module: library/pkcs12.c 01946 * Caller: library/pkparse.c 01947 * 01948 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_CIPHER_C, POLARSSL_MD_C 01949 * Can use: POLARSSL_ARC4_C 01950 * 01951 * This module enables PKCS#12 functions. 01952 */ 01953 #define POLARSSL_PKCS12_C 01954 01955 /** 01956 * \def POLARSSL_PLATFORM_C 01957 * 01958 * Enable the platform abstraction layer that allows you to re-assign 01959 * functions like malloc(), free(), snprintf(), printf(), fprintf(), exit() 01960 * 01961 * Enabling POLARSSL_PLATFORM_C enables to use of POLARSSL_PLATFORM_XXX_ALT 01962 * or POLARSSL_PLATFORM_XXX_MACRO directives, allowing the functions mentioned 01963 * above to be specified at runtime or compile time respectively. 01964 * 01965 * Module: library/platform.c 01966 * Caller: Most other .c files 01967 * 01968 * This module enables abstraction of common (libc) functions. 01969 */ 01970 #define POLARSSL_PLATFORM_C 01971 01972 /** 01973 * \def POLARSSL_RIPEMD160_C 01974 * 01975 * Enable the RIPEMD-160 hash algorithm. 01976 * 01977 * Module: library/ripemd160.c 01978 * Caller: library/md.c 01979 * 01980 */ 01981 #define POLARSSL_RIPEMD160_C 01982 01983 /** 01984 * \def POLARSSL_RSA_C 01985 * 01986 * Enable the RSA public-key cryptosystem. 01987 * 01988 * Module: library/rsa.c 01989 * Caller: library/ssl_cli.c 01990 * library/ssl_srv.c 01991 * library/ssl_tls.c 01992 * library/x509.c 01993 * 01994 * This module is used by the following key exchanges: 01995 * RSA, DHE-RSA, ECDHE-RSA, RSA-PSK 01996 * 01997 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C 01998 */ 01999 #define POLARSSL_RSA_C 02000 02001 /** 02002 * \def POLARSSL_SHA1_C 02003 * 02004 * Enable the SHA1 cryptographic hash algorithm. 02005 * 02006 * Module: library/sha1.c 02007 * Caller: library/md.c 02008 * library/ssl_cli.c 02009 * library/ssl_srv.c 02010 * library/ssl_tls.c 02011 * library/x509write_crt.c 02012 * 02013 * This module is required for SSL/TLS and SHA1-signed certificates. 02014 */ 02015 #define POLARSSL_SHA1_C 02016 02017 /** 02018 * \def POLARSSL_SHA256_C 02019 * 02020 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms. 02021 * (Used to be POLARSSL_SHA2_C) 02022 * 02023 * Module: library/sha256.c 02024 * Caller: library/entropy.c 02025 * library/md.c 02026 * library/ssl_cli.c 02027 * library/ssl_srv.c 02028 * library/ssl_tls.c 02029 * 02030 * This module adds support for SHA-224 and SHA-256. 02031 * This module is required for the SSL/TLS 1.2 PRF function. 02032 */ 02033 #define POLARSSL_SHA256_C 02034 02035 /** 02036 * \def POLARSSL_SHA512_C 02037 * 02038 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms. 02039 * (Used to be POLARSSL_SHA4_C) 02040 * 02041 * Module: library/sha512.c 02042 * Caller: library/entropy.c 02043 * library/md.c 02044 * library/ssl_cli.c 02045 * library/ssl_srv.c 02046 * 02047 * This module adds support for SHA-384 and SHA-512. 02048 */ 02049 #define POLARSSL_SHA512_C 02050 02051 /** 02052 * \def POLARSSL_SSL_CACHE_C 02053 * 02054 * Enable simple SSL cache implementation. 02055 * 02056 * Module: library/ssl_cache.c 02057 * Caller: 02058 * 02059 * Requires: POLARSSL_SSL_CACHE_C 02060 */ 02061 #define POLARSSL_SSL_CACHE_C 02062 02063 /** 02064 * \def POLARSSL_SSL_CLI_C 02065 * 02066 * Enable the SSL/TLS client code. 02067 * 02068 * Module: library/ssl_cli.c 02069 * Caller: 02070 * 02071 * Requires: POLARSSL_SSL_TLS_C 02072 * 02073 * This module is required for SSL/TLS client support. 02074 */ 02075 #define POLARSSL_SSL_CLI_C 02076 02077 /** 02078 * \def POLARSSL_SSL_SRV_C 02079 * 02080 * Enable the SSL/TLS server code. 02081 * 02082 * Module: library/ssl_srv.c 02083 * Caller: 02084 * 02085 * Requires: POLARSSL_SSL_TLS_C 02086 * 02087 * This module is required for SSL/TLS server support. 02088 */ 02089 #define POLARSSL_SSL_SRV_C 02090 02091 /** 02092 * \def POLARSSL_SSL_TLS_C 02093 * 02094 * Enable the generic SSL/TLS code. 02095 * 02096 * Module: library/ssl_tls.c 02097 * Caller: library/ssl_cli.c 02098 * library/ssl_srv.c 02099 * 02100 * Requires: POLARSSL_CIPHER_C, POLARSSL_MD_C 02101 * and at least one of the POLARSSL_SSL_PROTO_* defines 02102 * 02103 * This module is required for SSL/TLS. 02104 */ 02105 #define POLARSSL_SSL_TLS_C 02106 02107 /** 02108 * \def POLARSSL_THREADING_C 02109 * 02110 * Enable the threading abstraction layer. 02111 * By default mbed TLS assumes it is used in a non-threaded environment or that 02112 * contexts are not shared between threads. If you do intend to use contexts 02113 * between threads, you will need to enable this layer to prevent race 02114 * conditions. 02115 * 02116 * Module: library/threading.c 02117 * 02118 * This allows different threading implementations (self-implemented or 02119 * provided). 02120 * 02121 * You will have to enable either POLARSSL_THREADING_ALT or 02122 * POLARSSL_THREADING_PTHREAD. 02123 * 02124 * Enable this layer to allow use of mutexes within mbed TLS 02125 */ 02126 //#define POLARSSL_THREADING_C 02127 02128 /** 02129 * \def POLARSSL_TIMING_C 02130 * 02131 * Enable the portable timing interface. 02132 * 02133 * Module: library/timing.c 02134 * Caller: library/havege.c 02135 * 02136 * This module is used by the HAVEGE random number generator. 02137 */ 02138 #define POLARSSL_TIMING_C 02139 02140 /** 02141 * \def POLARSSL_VERSION_C 02142 * 02143 * Enable run-time version information. 02144 * 02145 * Module: library/version.c 02146 * 02147 * This module provides run-time version information. 02148 */ 02149 #define POLARSSL_VERSION_C 02150 02151 /** 02152 * \def POLARSSL_X509_USE_C 02153 * 02154 * Enable X.509 core for using certificates. 02155 * 02156 * Module: library/x509.c 02157 * Caller: library/x509_crl.c 02158 * library/x509_crt.c 02159 * library/x509_csr.c 02160 * 02161 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_BIGNUM_C, POLARSSL_OID_C, 02162 * POLARSSL_PK_PARSE_C 02163 * 02164 * This module is required for the X.509 parsing modules. 02165 */ 02166 #define POLARSSL_X509_USE_C 02167 02168 /** 02169 * \def POLARSSL_X509_CRT_PARSE_C 02170 * 02171 * Enable X.509 certificate parsing. 02172 * 02173 * Module: library/x509_crt.c 02174 * Caller: library/ssl_cli.c 02175 * library/ssl_srv.c 02176 * library/ssl_tls.c 02177 * 02178 * Requires: POLARSSL_X509_USE_C 02179 * 02180 * This module is required for X.509 certificate parsing. 02181 */ 02182 #define POLARSSL_X509_CRT_PARSE_C 02183 02184 /** 02185 * \def POLARSSL_X509_CRL_PARSE_C 02186 * 02187 * Enable X.509 CRL parsing. 02188 * 02189 * Module: library/x509_crl.c 02190 * Caller: library/x509_crt.c 02191 * 02192 * Requires: POLARSSL_X509_USE_C 02193 * 02194 * This module is required for X.509 CRL parsing. 02195 */ 02196 #define POLARSSL_X509_CRL_PARSE_C 02197 02198 /** 02199 * \def POLARSSL_X509_CSR_PARSE_C 02200 * 02201 * Enable X.509 Certificate Signing Request (CSR) parsing. 02202 * 02203 * Module: library/x509_csr.c 02204 * Caller: library/x509_crt_write.c 02205 * 02206 * Requires: POLARSSL_X509_USE_C 02207 * 02208 * This module is used for reading X.509 certificate request. 02209 */ 02210 #define POLARSSL_X509_CSR_PARSE_C 02211 02212 /** 02213 * \def POLARSSL_X509_CREATE_C 02214 * 02215 * Enable X.509 core for creating certificates. 02216 * 02217 * Module: library/x509_create.c 02218 * 02219 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C, POLARSSL_PK_WRITE_C 02220 * 02221 * This module is the basis for creating X.509 certificates and CSRs. 02222 */ 02223 #define POLARSSL_X509_CREATE_C 02224 02225 /** 02226 * \def POLARSSL_X509_CRT_WRITE_C 02227 * 02228 * Enable creating X.509 certificates. 02229 * 02230 * Module: library/x509_crt_write.c 02231 * 02232 * Requires: POLARSSL_CREATE_C 02233 * 02234 * This module is required for X.509 certificate creation. 02235 */ 02236 #define POLARSSL_X509_CRT_WRITE_C 02237 02238 /** 02239 * \def POLARSSL_X509_CSR_WRITE_C 02240 * 02241 * Enable creating X.509 Certificate Signing Requests (CSR). 02242 * 02243 * Module: library/x509_csr_write.c 02244 * 02245 * Requires: POLARSSL_CREATE_C 02246 * 02247 * This module is required for X.509 certificate request writing. 02248 */ 02249 #define POLARSSL_X509_CSR_WRITE_C 02250 02251 /** 02252 * \def POLARSSL_XTEA_C 02253 * 02254 * Enable the XTEA block cipher. 02255 * 02256 * Module: library/xtea.c 02257 * Caller: 02258 */ 02259 #define POLARSSL_XTEA_C 02260 02261 /* \} name SECTION: mbed TLS modules */ 02262 02263 /** 02264 * \name SECTION: Module configuration options 02265 * 02266 * This section allows for the setting of module specific sizes and 02267 * configuration options. The default values are already present in the 02268 * relevant header files and should suffice for the regular use cases. 02269 * 02270 * Our advice is to enable options and change their values here 02271 * only if you have a good reason and know the consequences. 02272 * 02273 * Please check the respective header file for documentation on these 02274 * parameters (to prevent duplicate documentation). 02275 * \{ 02276 */ 02277 02278 /* MPI / BIGNUM options */ 02279 //#define POLARSSL_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */ 02280 //#define POLARSSL_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */ 02281 02282 /* CTR_DRBG options */ 02283 //#define CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */ 02284 //#define CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */ 02285 //#define CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */ 02286 //#define CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */ 02287 //#define CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */ 02288 02289 /* HMAC_DRBG options */ 02290 //#define POLARSSL_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */ 02291 //#define POLARSSL_HMAC_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */ 02292 //#define POLARSSL_HMAC_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */ 02293 //#define POLARSSL_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */ 02294 02295 /* ECP options */ 02296 //#define POLARSSL_ECP_MAX_BITS 521 /**< Maximum bit size of groups */ 02297 //#define POLARSSL_ECP_WINDOW_SIZE 6 /**< Maximum window size used */ 02298 //#define POLARSSL_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */ 02299 02300 /* Entropy options */ 02301 //#define ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */ 02302 //#define ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */ 02303 02304 /* Memory buffer allocator options */ 02305 //#define POLARSSL_MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */ 02306 02307 /* Platform options */ 02308 //#define POLARSSL_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if POLARSSL_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */ 02309 //#define POLARSSL_PLATFORM_STD_MALLOC malloc /**< Default allocator to use, can be undefined */ 02310 //#define POLARSSL_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */ 02311 //#define POLARSSL_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */ 02312 //#define POLARSSL_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */ 02313 //#define POLARSSL_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */ 02314 //#define POLARSSL_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */ 02315 02316 /* To Use Function Macros POLARSSL_PLATFORM_C must be enabled */ 02317 /* POLARSSL_PLATFORM_XXX_MACRO and POLARSSL_PLATFORM_XXX_ALT cannot both be defined */ 02318 //#define POLARSSL_PLATFORM_MALLOC_MACRO malloc /**< Default allocator macro to use, can be undefined */ 02319 //#define POLARSSL_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */ 02320 //#define POLARSSL_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */ 02321 //#define POLARSSL_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */ 02322 //#define POLARSSL_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */ 02323 //#define POLARSSL_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */ 02324 02325 /* SSL Cache options */ 02326 //#define SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */ 02327 //#define SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */ 02328 02329 /* SSL options */ 02330 //#define SSL_MAX_CONTENT_LEN 16384 /**< Size of the input / output buffer */ 02331 //#define SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */ 02332 //#define POLARSSL_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */ 02333 02334 /** 02335 * Complete list of ciphersuites to use, in order of preference. 02336 * 02337 * \warning No dependency checking is done on that field! This option can only 02338 * be used to restrict the set of available ciphersuites. It is your 02339 * responsibility to make sure the needed modules are active. 02340 * 02341 * Use this to save a few hundred bytes of ROM (default ordering of all 02342 * available ciphersuites) and a few to a few hundred bytes of RAM. 02343 * 02344 * The value below is only an example, not the default. 02345 */ 02346 //#define SSL_CIPHERSUITES TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 02347 02348 /* Debug options */ 02349 //#define POLARSSL_DEBUG_DFL_MODE POLARSSL_DEBUG_LOG_FULL /**< Default log: Full or Raw */ 02350 02351 /* X509 options */ 02352 //#define POLARSSL_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */ 02353 02354 /* \} name SECTION: Module configuration options */ 02355 02356 #include "check_config.h" 02357 02358 #endif /* POLARSSL_CONFIG_H */ 02359
Generated on Tue Jul 12 2022 22:22:38 by 1.7.2