Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
config.h
00001 /** 00002 * \file config.h 00003 * 00004 * \brief Configuration options (set of defines) 00005 * 00006 * This set of compile-time options may be used to enable 00007 * or disable features selectively, and reduce the global 00008 * memory footprint. 00009 * 00010 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 00011 * SPDX-License-Identifier: Apache-2.0 00012 * 00013 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00014 * not use this file except in compliance with the License. 00015 * You may obtain a copy of the License at 00016 * 00017 * http://www.apache.org/licenses/LICENSE-2.0 00018 * 00019 * Unless required by applicable law or agreed to in writing, software 00020 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00021 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00022 * See the License for the specific language governing permissions and 00023 * limitations under the License. 00024 * 00025 * This file is part of mbed TLS (https://tls.mbed.org) 00026 */ 00027 00028 #ifndef MBEDTLS_CONFIG_H 00029 00030 #include "platform/inc/platform_mbed.h" 00031 00032 /* 00033 * Only use features that do not require an entropy source when 00034 * DEVICE_ENTROPY_SOURCE is not defined in mbed OS. 00035 */ 00036 #if !defined(MBEDTLS_ENTROPY_HARDWARE_ALT) && !defined(MBEDTLS_TEST_NULL_ENTROPY) 00037 #include "mbedtls/config-no-entropy.h" 00038 00039 #if defined(MBEDTLS_USER_CONFIG_FILE) 00040 #include MBEDTLS_USER_CONFIG_FILE 00041 #endif 00042 00043 #else 00044 #define MBEDTLS_CONFIG_H 00045 00046 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) 00047 #define _CRT_SECURE_NO_DEPRECATE 1 00048 #endif 00049 00050 /** 00051 * \name SECTION: System support 00052 * 00053 * This section sets system specific settings. 00054 * \{ 00055 */ 00056 00057 /** 00058 * \def MBEDTLS_HAVE_ASM 00059 * 00060 * The compiler has support for asm(). 00061 * 00062 * Requires support for asm() in compiler. 00063 * 00064 * Used in: 00065 * library/timing.c 00066 * library/padlock.c 00067 * include/mbedtls/bn_mul.h 00068 * 00069 * Comment to disable the use of assembly code. 00070 */ 00071 #define MBEDTLS_HAVE_ASM 00072 00073 /** 00074 * \def MBEDTLS_HAVE_SSE2 00075 * 00076 * CPU supports SSE2 instruction set. 00077 * 00078 * Uncomment if the CPU supports SSE2 (IA-32 specific). 00079 */ 00080 //#define MBEDTLS_HAVE_SSE2 00081 00082 /** 00083 * \def MBEDTLS_HAVE_TIME 00084 * 00085 * System has time.h and time(). 00086 * The time does not need to be correct, only time differences are used, 00087 * by contrast with MBEDTLS_HAVE_TIME_DATE 00088 * 00089 * Defining MBEDTLS_HAVE_TIME allows you to specify MBEDTLS_PLATFORM_TIME_ALT, 00090 * MBEDTLS_PLATFORM_TIME_MACRO, MBEDTLS_PLATFORM_TIME_TYPE_MACRO and 00091 * MBEDTLS_PLATFORM_STD_TIME. 00092 * 00093 * Comment if your system does not support time functions 00094 */ 00095 #define MBEDTLS_HAVE_TIME 00096 00097 /** 00098 * \def MBEDTLS_HAVE_TIME_DATE 00099 * 00100 * System has time.h and time(), gmtime() and the clock is correct. 00101 * The time needs to be correct (not necesarily very accurate, but at least 00102 * the date should be correct). This is used to verify the validity period of 00103 * X.509 certificates. 00104 * 00105 * Comment if your system does not have a correct clock. 00106 */ 00107 //#define MBEDTLS_HAVE_TIME_DATE 00108 00109 /** 00110 * \def MBEDTLS_PLATFORM_MEMORY 00111 * 00112 * Enable the memory allocation layer. 00113 * 00114 * By default mbed TLS uses the system-provided calloc() and free(). 00115 * This allows different allocators (self-implemented or provided) to be 00116 * provided to the platform abstraction layer. 00117 * 00118 * Enabling MBEDTLS_PLATFORM_MEMORY without the 00119 * MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide 00120 * "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and 00121 * free() function pointer at runtime. 00122 * 00123 * Enabling MBEDTLS_PLATFORM_MEMORY and specifying 00124 * MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the 00125 * alternate function at compile time. 00126 * 00127 * Requires: MBEDTLS_PLATFORM_C 00128 * 00129 * Enable this layer to allow use of alternative memory allocators. 00130 */ 00131 //#define MBEDTLS_PLATFORM_MEMORY 00132 00133 /** 00134 * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS 00135 * 00136 * Do not assign standard functions in the platform layer (e.g. calloc() to 00137 * MBEDTLS_PLATFORM_STD_CALLOC and printf() to MBEDTLS_PLATFORM_STD_PRINTF) 00138 * 00139 * This makes sure there are no linking errors on platforms that do not support 00140 * these functions. You will HAVE to provide alternatives, either at runtime 00141 * via the platform_set_xxx() functions or at compile time by setting 00142 * the MBEDTLS_PLATFORM_STD_XXX defines, or enabling a 00143 * MBEDTLS_PLATFORM_XXX_MACRO. 00144 * 00145 * Requires: MBEDTLS_PLATFORM_C 00146 * 00147 * Uncomment to prevent default assignment of standard functions in the 00148 * platform layer. 00149 */ 00150 //#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS 00151 00152 /** 00153 * \def MBEDTLS_PLATFORM_EXIT_ALT 00154 * 00155 * MBEDTLS_PLATFORM_XXX_ALT: Uncomment a macro to let mbed TLS support the 00156 * function in the platform abstraction layer. 00157 * 00158 * Example: In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT, mbed TLS will 00159 * provide a function "mbedtls_platform_set_printf()" that allows you to set an 00160 * alternative printf function pointer. 00161 * 00162 * All these define require MBEDTLS_PLATFORM_C to be defined! 00163 * 00164 * \note MBEDTLS_PLATFORM_SNPRINTF_ALT is required on Windows; 00165 * it will be enabled automatically by check_config.h 00166 * 00167 * \warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as 00168 * MBEDTLS_PLATFORM_XXX_MACRO! 00169 * 00170 * Requires: MBEDTLS_PLATFORM_TIME_ALT requires MBEDTLS_HAVE_TIME 00171 * 00172 * Uncomment a macro to enable alternate implementation of specific base 00173 * platform function 00174 */ 00175 //#define MBEDTLS_PLATFORM_EXIT_ALT 00176 //#define MBEDTLS_PLATFORM_TIME_ALT 00177 //#define MBEDTLS_PLATFORM_FPRINTF_ALT 00178 //#define MBEDTLS_PLATFORM_PRINTF_ALT 00179 //#define MBEDTLS_PLATFORM_SNPRINTF_ALT 00180 //#define MBEDTLS_PLATFORM_NV_SEED_ALT 00181 00182 /** 00183 * \def MBEDTLS_DEPRECATED_WARNING 00184 * 00185 * Mark deprecated functions so that they generate a warning if used. 00186 * Functions deprecated in one version will usually be removed in the next 00187 * version. You can enable this to help you prepare the transition to a new 00188 * major version by making sure your code is not using these functions. 00189 * 00190 * This only works with GCC and Clang. With other compilers, you may want to 00191 * use MBEDTLS_DEPRECATED_REMOVED 00192 * 00193 * Uncomment to get warnings on using deprecated functions. 00194 */ 00195 //#define MBEDTLS_DEPRECATED_WARNING 00196 00197 /** 00198 * \def MBEDTLS_DEPRECATED_REMOVED 00199 * 00200 * Remove deprecated functions so that they generate an error if used. 00201 * Functions deprecated in one version will usually be removed in the next 00202 * version. You can enable this to help you prepare the transition to a new 00203 * major version by making sure your code is not using these functions. 00204 * 00205 * Uncomment to get errors on using deprecated functions. 00206 */ 00207 //#define MBEDTLS_DEPRECATED_REMOVED 00208 00209 /* \} name SECTION: System support */ 00210 00211 /** 00212 * \name SECTION: mbed TLS feature support 00213 * 00214 * This section sets support for features that are or are not needed 00215 * within the modules that are enabled. 00216 * \{ 00217 */ 00218 00219 /** 00220 * \def MBEDTLS_TIMING_ALT 00221 * 00222 * Uncomment to provide your own alternate implementation for mbedtls_timing_hardclock(), 00223 * mbedtls_timing_get_timer(), mbedtls_set_alarm(), mbedtls_set/get_delay() 00224 * 00225 * Only works if you have MBEDTLS_TIMING_C enabled. 00226 * 00227 * You will need to provide a header "timing_alt.h" and an implementation at 00228 * compile time. 00229 */ 00230 //#define MBEDTLS_TIMING_ALT 00231 00232 /** 00233 * \def MBEDTLS_AES_ALT 00234 * 00235 * MBEDTLS__MODULE_NAME__ALT: Uncomment a macro to let mbed TLS use your 00236 * alternate core implementation of a symmetric crypto or hash module (e.g. 00237 * platform specific assembly optimized implementations). Keep in mind that 00238 * the function prototypes should remain the same. 00239 * 00240 * This replaces the whole module. If you only want to replace one of the 00241 * functions, use one of the MBEDTLS__FUNCTION_NAME__ALT flags. 00242 * 00243 * Example: In case you uncomment MBEDTLS_AES_ALT, mbed TLS will no longer 00244 * provide the "struct mbedtls_aes_context" definition and omit the base function 00245 * declarations and implementations. "aes_alt.h" will be included from 00246 * "aes.h" to include the new function definitions. 00247 * 00248 * Uncomment a macro to enable alternate implementation of the corresponding 00249 * module. 00250 */ 00251 //#define MBEDTLS_AES_ALT 00252 //#define MBEDTLS_ARC4_ALT 00253 //#define MBEDTLS_BLOWFISH_ALT 00254 //#define MBEDTLS_CAMELLIA_ALT 00255 //#define MBEDTLS_DES_ALT 00256 //#define MBEDTLS_XTEA_ALT 00257 //#define MBEDTLS_MD2_ALT 00258 //#define MBEDTLS_MD4_ALT 00259 //#define MBEDTLS_MD5_ALT 00260 //#define MBEDTLS_RIPEMD160_ALT 00261 //#define MBEDTLS_SHA1_ALT 00262 //#define MBEDTLS_SHA256_ALT 00263 //#define MBEDTLS_SHA512_ALT 00264 00265 /** 00266 * \def MBEDTLS_MD2_PROCESS_ALT 00267 * 00268 * MBEDTLS__FUNCTION_NAME__ALT: Uncomment a macro to let mbed TLS use you 00269 * alternate core implementation of symmetric crypto or hash function. Keep in 00270 * mind that function prototypes should remain the same. 00271 * 00272 * This replaces only one function. The header file from mbed TLS is still 00273 * used, in contrast to the MBEDTLS__MODULE_NAME__ALT flags. 00274 * 00275 * Example: In case you uncomment MBEDTLS_SHA256_PROCESS_ALT, mbed TLS will 00276 * no longer provide the mbedtls_sha1_process() function, but it will still provide 00277 * the other function (using your mbedtls_sha1_process() function) and the definition 00278 * of mbedtls_sha1_context, so your implementation of mbedtls_sha1_process must be compatible 00279 * with this definition. 00280 * 00281 * Note: if you use the AES_xxx_ALT macros, then is is recommended to also set 00282 * MBEDTLS_AES_ROM_TABLES in order to help the linker garbage-collect the AES 00283 * tables. 00284 * 00285 * Uncomment a macro to enable alternate implementation of the corresponding 00286 * function. 00287 */ 00288 //#define MBEDTLS_MD2_PROCESS_ALT 00289 //#define MBEDTLS_MD4_PROCESS_ALT 00290 //#define MBEDTLS_MD5_PROCESS_ALT 00291 //#define MBEDTLS_RIPEMD160_PROCESS_ALT 00292 //#define MBEDTLS_SHA1_PROCESS_ALT 00293 //#define MBEDTLS_SHA256_PROCESS_ALT 00294 //#define MBEDTLS_SHA512_PROCESS_ALT 00295 //#define MBEDTLS_DES_SETKEY_ALT 00296 //#define MBEDTLS_DES_CRYPT_ECB_ALT 00297 //#define MBEDTLS_DES3_CRYPT_ECB_ALT 00298 //#define MBEDTLS_AES_SETKEY_ENC_ALT 00299 //#define MBEDTLS_AES_SETKEY_DEC_ALT 00300 //#define MBEDTLS_AES_ENCRYPT_ALT 00301 //#define MBEDTLS_AES_DECRYPT_ALT 00302 00303 /** 00304 * \def MBEDTLS_TEST_NULL_ENTROPY 00305 * 00306 * Enables testing and use of mbed TLS without any configured entropy sources. 00307 * This permits use of the library on platforms before an entropy source has 00308 * been integrated (see for example the MBEDTLS_ENTROPY_HARDWARE_ALT or the 00309 * MBEDTLS_ENTROPY_NV_SEED switches). 00310 * 00311 * WARNING! This switch MUST be disabled in production builds, and is suitable 00312 * only for development. 00313 * Enabling the switch negates any security provided by the library. 00314 * 00315 * Requires MBEDTLS_ENTROPY_C, MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES 00316 * 00317 */ 00318 //#define MBEDTLS_TEST_NULL_ENTROPY 00319 00320 /** 00321 * \def MBEDTLS_ENTROPY_HARDWARE_ALT 00322 * 00323 * Uncomment this macro to let mbed TLS use your own implementation of a 00324 * hardware entropy collector. 00325 * 00326 * Your function must be called \c mbedtls_hardware_poll(), have the same 00327 * prototype as declared in entropy_poll.h, and accept NULL as first argument. 00328 * 00329 * Uncomment to use your own hardware entropy collector. 00330 */ 00331 //#define MBEDTLS_ENTROPY_HARDWARE_ALT 00332 00333 /** 00334 * \def MBEDTLS_AES_ROM_TABLES 00335 * 00336 * Store the AES tables in ROM. 00337 * 00338 * Uncomment this macro to store the AES tables in ROM. 00339 */ 00340 //#define MBEDTLS_AES_ROM_TABLES 00341 00342 /** 00343 * \def MBEDTLS_CAMELLIA_SMALL_MEMORY 00344 * 00345 * Use less ROM for the Camellia implementation (saves about 768 bytes). 00346 * 00347 * Uncomment this macro to use less memory for Camellia. 00348 */ 00349 //#define MBEDTLS_CAMELLIA_SMALL_MEMORY 00350 00351 /** 00352 * \def MBEDTLS_CIPHER_MODE_CBC 00353 * 00354 * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers. 00355 */ 00356 #define MBEDTLS_CIPHER_MODE_CBC 00357 00358 /** 00359 * \def MBEDTLS_CIPHER_MODE_CFB 00360 * 00361 * Enable Cipher Feedback mode (CFB) for symmetric ciphers. 00362 */ 00363 //#define MBEDTLS_CIPHER_MODE_CFB 00364 00365 /** 00366 * \def MBEDTLS_CIPHER_MODE_CTR 00367 * 00368 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers. 00369 */ 00370 //#define MBEDTLS_CIPHER_MODE_CTR 00371 00372 /** 00373 * \def MBEDTLS_CIPHER_NULL_CIPHER 00374 * 00375 * Enable NULL cipher. 00376 * Warning: Only do so when you know what you are doing. This allows for 00377 * encryption or channels without any security! 00378 * 00379 * Requires MBEDTLS_ENABLE_WEAK_CIPHERSUITES as well to enable 00380 * the following ciphersuites: 00381 * MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA 00382 * MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA 00383 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA 00384 * MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA 00385 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384 00386 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256 00387 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA 00388 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384 00389 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256 00390 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA 00391 * MBEDTLS_TLS_RSA_WITH_NULL_SHA256 00392 * MBEDTLS_TLS_RSA_WITH_NULL_SHA 00393 * MBEDTLS_TLS_RSA_WITH_NULL_MD5 00394 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384 00395 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256 00396 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA 00397 * MBEDTLS_TLS_PSK_WITH_NULL_SHA384 00398 * MBEDTLS_TLS_PSK_WITH_NULL_SHA256 00399 * MBEDTLS_TLS_PSK_WITH_NULL_SHA 00400 * 00401 * Uncomment this macro to enable the NULL cipher and ciphersuites 00402 */ 00403 //#define MBEDTLS_CIPHER_NULL_CIPHER 00404 00405 /** 00406 * \def MBEDTLS_CIPHER_PADDING_PKCS7 00407 * 00408 * MBEDTLS_CIPHER_PADDING_XXX: Uncomment or comment macros to add support for 00409 * specific padding modes in the cipher layer with cipher modes that support 00410 * padding (e.g. CBC) 00411 * 00412 * If you disable all padding modes, only full blocks can be used with CBC. 00413 * 00414 * Enable padding modes in the cipher layer. 00415 */ 00416 #define MBEDTLS_CIPHER_PADDING_PKCS7 00417 //#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS 00418 //#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN 00419 //#define MBEDTLS_CIPHER_PADDING_ZEROS 00420 00421 /** 00422 * \def MBEDTLS_ENABLE_WEAK_CIPHERSUITES 00423 * 00424 * Enable weak ciphersuites in SSL / TLS. 00425 * Warning: Only do so when you know what you are doing. This allows for 00426 * channels with virtually no security at all! 00427 * 00428 * This enables the following ciphersuites: 00429 * MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA 00430 * MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA 00431 * 00432 * Uncomment this macro to enable weak ciphersuites 00433 */ 00434 //#define MBEDTLS_ENABLE_WEAK_CIPHERSUITES 00435 00436 /** 00437 * \def MBEDTLS_REMOVE_ARC4_CIPHERSUITES 00438 * 00439 * Remove RC4 ciphersuites by default in SSL / TLS. 00440 * This flag removes the ciphersuites based on RC4 from the default list as 00441 * returned by mbedtls_ssl_list_ciphersuites(). However, it is still possible to 00442 * enable (some of) them with mbedtls_ssl_conf_ciphersuites() by including them 00443 * explicitly. 00444 * 00445 * Uncomment this macro to remove RC4 ciphersuites by default. 00446 */ 00447 #define MBEDTLS_REMOVE_ARC4_CIPHERSUITES 00448 00449 /** 00450 * \def MBEDTLS_ECP_DP_SECP192R1_ENABLED 00451 * 00452 * MBEDTLS_ECP_XXXX_ENABLED: Enables specific curves within the Elliptic Curve 00453 * module. By default all supported curves are enabled. 00454 * 00455 * Comment macros to disable the curve and functions for it 00456 */ 00457 //#define MBEDTLS_ECP_DP_SECP192R1_ENABLED 00458 //#define MBEDTLS_ECP_DP_SECP224R1_ENABLED 00459 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED 00460 #define MBEDTLS_ECP_DP_SECP384R1_ENABLED 00461 //#define MBEDTLS_ECP_DP_SECP521R1_ENABLED 00462 //#define MBEDTLS_ECP_DP_SECP192K1_ENABLED 00463 //#define MBEDTLS_ECP_DP_SECP224K1_ENABLED 00464 //#define MBEDTLS_ECP_DP_SECP256K1_ENABLED 00465 //#define MBEDTLS_ECP_DP_BP256R1_ENABLED 00466 //#define MBEDTLS_ECP_DP_BP384R1_ENABLED 00467 //#define MBEDTLS_ECP_DP_BP512R1_ENABLED 00468 #define MBEDTLS_ECP_DP_CURVE25519_ENABLED 00469 00470 /** 00471 * \def MBEDTLS_ECP_NIST_OPTIM 00472 * 00473 * Enable specific 'modulo p' routines for each NIST prime. 00474 * Depending on the prime and architecture, makes operations 4 to 8 times 00475 * faster on the corresponding curve. 00476 * 00477 * Comment this macro to disable NIST curves optimisation. 00478 */ 00479 #define MBEDTLS_ECP_NIST_OPTIM 00480 00481 /** 00482 * \def MBEDTLS_ECDSA_DETERMINISTIC 00483 * 00484 * Enable deterministic ECDSA (RFC 6979). 00485 * Standard ECDSA is "fragile" in the sense that lack of entropy when signing 00486 * may result in a compromise of the long-term signing key. This is avoided by 00487 * the deterministic variant. 00488 * 00489 * Requires: MBEDTLS_HMAC_DRBG_C 00490 * 00491 * Comment this macro to disable deterministic ECDSA. 00492 */ 00493 #define MBEDTLS_ECDSA_DETERMINISTIC 00494 00495 /** 00496 * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED 00497 * 00498 * Enable the PSK based ciphersuite modes in SSL / TLS. 00499 * 00500 * This enables the following ciphersuites (if other requisites are 00501 * enabled as well): 00502 * MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384 00503 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384 00504 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA 00505 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 00506 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 00507 * MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256 00508 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256 00509 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA 00510 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 00511 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 00512 * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA 00513 * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA 00514 */ 00515 #define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED 00516 00517 /** 00518 * \def MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED 00519 * 00520 * Enable the DHE-PSK based ciphersuite modes in SSL / TLS. 00521 * 00522 * Requires: MBEDTLS_DHM_C 00523 * 00524 * This enables the following ciphersuites (if other requisites are 00525 * enabled as well): 00526 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 00527 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 00528 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA 00529 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 00530 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 00531 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 00532 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 00533 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA 00534 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 00535 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 00536 * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 00537 * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA 00538 */ 00539 //#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED 00540 00541 /** 00542 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED 00543 * 00544 * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS. 00545 * 00546 * Requires: MBEDTLS_ECDH_C 00547 * 00548 * This enables the following ciphersuites (if other requisites are 00549 * enabled as well): 00550 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 00551 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 00552 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 00553 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 00554 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 00555 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 00556 * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 00557 * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA 00558 */ 00559 #define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED 00560 00561 /** 00562 * \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED 00563 * 00564 * Enable the RSA-PSK based ciphersuite modes in SSL / TLS. 00565 * 00566 * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15, 00567 * MBEDTLS_X509_CRT_PARSE_C 00568 * 00569 * This enables the following ciphersuites (if other requisites are 00570 * enabled as well): 00571 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 00572 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 00573 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA 00574 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 00575 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 00576 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 00577 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 00578 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA 00579 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 00580 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 00581 * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 00582 * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA 00583 */ 00584 //#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED 00585 00586 /** 00587 * \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED 00588 * 00589 * Enable the RSA-only based ciphersuite modes in SSL / TLS. 00590 * 00591 * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15, 00592 * MBEDTLS_X509_CRT_PARSE_C 00593 * 00594 * This enables the following ciphersuites (if other requisites are 00595 * enabled as well): 00596 * MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384 00597 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256 00598 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA 00599 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 00600 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 00601 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 00602 * MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256 00603 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256 00604 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA 00605 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 00606 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 00607 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 00608 * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA 00609 * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA 00610 * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5 00611 */ 00612 //#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED 00613 00614 /** 00615 * \def MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED 00616 * 00617 * Enable the DHE-RSA based ciphersuite modes in SSL / TLS. 00618 * 00619 * Requires: MBEDTLS_DHM_C, MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15, 00620 * MBEDTLS_X509_CRT_PARSE_C 00621 * 00622 * This enables the following ciphersuites (if other requisites are 00623 * enabled as well): 00624 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 00625 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 00626 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA 00627 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 00628 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 00629 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 00630 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 00631 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 00632 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA 00633 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 00634 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 00635 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 00636 * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 00637 */ 00638 //#define MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED 00639 00640 /** 00641 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 00642 * 00643 * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS. 00644 * 00645 * Requires: MBEDTLS_ECDH_C, MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15, 00646 * MBEDTLS_X509_CRT_PARSE_C 00647 * 00648 * This enables the following ciphersuites (if other requisites are 00649 * enabled as well): 00650 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 00651 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 00652 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 00653 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 00654 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 00655 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 00656 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 00657 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 00658 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 00659 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 00660 * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 00661 * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA 00662 */ 00663 #define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED 00664 00665 /** 00666 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 00667 * 00668 * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS. 00669 * 00670 * Requires: MBEDTLS_ECDH_C, MBEDTLS_ECDSA_C, MBEDTLS_X509_CRT_PARSE_C, 00671 * 00672 * This enables the following ciphersuites (if other requisites are 00673 * enabled as well): 00674 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 00675 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 00676 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 00677 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 00678 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 00679 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 00680 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 00681 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 00682 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 00683 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 00684 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 00685 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 00686 */ 00687 #define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED 00688 00689 /** 00690 * \def MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED 00691 * 00692 * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS. 00693 * 00694 * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C 00695 * 00696 * This enables the following ciphersuites (if other requisites are 00697 * enabled as well): 00698 * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 00699 * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 00700 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 00701 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 00702 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 00703 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 00704 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 00705 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 00706 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 00707 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 00708 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 00709 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 00710 */ 00711 //#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED 00712 00713 /** 00714 * \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED 00715 * 00716 * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS. 00717 * 00718 * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C 00719 * 00720 * This enables the following ciphersuites (if other requisites are 00721 * enabled as well): 00722 * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA 00723 * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 00724 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 00725 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 00726 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 00727 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 00728 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 00729 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 00730 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 00731 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 00732 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 00733 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 00734 */ 00735 //#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED 00736 00737 /** 00738 * \def MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 00739 * 00740 * Enable the ECJPAKE based ciphersuite modes in SSL / TLS. 00741 * 00742 * \warning This is currently experimental. EC J-PAKE support is based on the 00743 * Thread v1.0.0 specification; incompatible changes to the specification 00744 * might still happen. For this reason, this is disabled by default. 00745 * 00746 * Requires: MBEDTLS_ECJPAKE_C 00747 * MBEDTLS_SHA256_C 00748 * MBEDTLS_ECP_DP_SECP256R1_ENABLED 00749 * 00750 * This enables the following ciphersuites (if other requisites are 00751 * enabled as well): 00752 * MBEDTLS_TLS_ECJPAKE_WITH_AES_128_CCM_8 00753 */ 00754 //#define MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED 00755 00756 /** 00757 * \def MBEDTLS_PK_PARSE_EC_EXTENDED 00758 * 00759 * Enhance support for reading EC keys using variants of SEC1 not allowed by 00760 * RFC 5915 and RFC 5480. 00761 * 00762 * Currently this means parsing the SpecifiedECDomain choice of EC 00763 * parameters (only known groups are supported, not arbitrary domains, to 00764 * avoid validation issues). 00765 * 00766 * Disable if you only need to support RFC 5915 + 5480 key formats. 00767 */ 00768 //#define MBEDTLS_PK_PARSE_EC_EXTENDED 00769 00770 /** 00771 * \def MBEDTLS_ERROR_STRERROR_DUMMY 00772 * 00773 * Enable a dummy error function to make use of mbedtls_strerror() in 00774 * third party libraries easier when MBEDTLS_ERROR_C is disabled 00775 * (no effect when MBEDTLS_ERROR_C is enabled). 00776 * 00777 * You can safely disable this if MBEDTLS_ERROR_C is enabled, or if you're 00778 * not using mbedtls_strerror() or error_strerror() in your application. 00779 * 00780 * Disable if you run into name conflicts and want to really remove the 00781 * mbedtls_strerror() 00782 */ 00783 #define MBEDTLS_ERROR_STRERROR_DUMMY 00784 00785 /** 00786 * \def MBEDTLS_GENPRIME 00787 * 00788 * Enable the prime-number generation code. 00789 * 00790 * Requires: MBEDTLS_BIGNUM_C 00791 */ 00792 //#define MBEDTLS_GENPRIME 00793 00794 /** 00795 * \def MBEDTLS_FS_IO 00796 * 00797 * Enable functions that use the filesystem. 00798 */ 00799 //#define MBEDTLS_FS_IO 00800 00801 /** 00802 * \def MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES 00803 * 00804 * Do not add default entropy sources. These are the platform specific, 00805 * mbedtls_timing_hardclock and HAVEGE based poll functions. 00806 * 00807 * This is useful to have more control over the added entropy sources in an 00808 * application. 00809 * 00810 * Uncomment this macro to prevent loading of default entropy functions. 00811 */ 00812 //#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES 00813 00814 /** 00815 * \def MBEDTLS_NO_PLATFORM_ENTROPY 00816 * 00817 * Do not use built-in platform entropy functions. 00818 * This is useful if your platform does not support 00819 * standards like the /dev/urandom or Windows CryptoAPI. 00820 * 00821 * Uncomment this macro to disable the built-in platform entropy functions. 00822 */ 00823 #define MBEDTLS_NO_PLATFORM_ENTROPY 00824 00825 /** 00826 * \def MBEDTLS_ENTROPY_FORCE_SHA256 00827 * 00828 * Force the entropy accumulator to use a SHA-256 accumulator instead of the 00829 * default SHA-512 based one (if both are available). 00830 * 00831 * Requires: MBEDTLS_SHA256_C 00832 * 00833 * On 32-bit systems SHA-256 can be much faster than SHA-512. Use this option 00834 * if you have performance concerns. 00835 * 00836 * This option is only useful if both MBEDTLS_SHA256_C and 00837 * MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used. 00838 */ 00839 //#define MBEDTLS_ENTROPY_FORCE_SHA256 00840 00841 /** 00842 * \def MBEDTLS_ENTROPY_NV_SEED 00843 * 00844 * Enable the non-volatile (NV) seed file-based entropy source. 00845 * (Also enables the NV seed read/write functions in the platform layer) 00846 * 00847 * This is crucial (if not required) on systems that do not have a 00848 * cryptographic entropy source (in hardware or kernel) available. 00849 * 00850 * Requires: MBEDTLS_ENTROPY_C, MBEDTLS_PLATFORM_C 00851 * 00852 * \note The read/write functions that are used by the entropy source are 00853 * determined in the platform layer, and can be modified at runtime and/or 00854 * compile-time depending on the flags (MBEDTLS_PLATFORM_NV_SEED_*) used. 00855 * 00856 * \note If you use the default implementation functions that read a seedfile 00857 * with regular fopen(), please make sure you make a seedfile with the 00858 * proper name (defined in MBEDTLS_PLATFORM_STD_NV_SEED_FILE) and at 00859 * least MBEDTLS_ENTROPY_BLOCK_SIZE bytes in size that can be read from 00860 * and written to or you will get an entropy source error! The default 00861 * implementation will only use the first MBEDTLS_ENTROPY_BLOCK_SIZE 00862 * bytes from the file. 00863 * 00864 * \note The entropy collector will write to the seed file before entropy is 00865 * given to an external source, to update it. 00866 */ 00867 //#define MBEDTLS_ENTROPY_NV_SEED 00868 00869 /** 00870 * \def MBEDTLS_MEMORY_DEBUG 00871 * 00872 * Enable debugging of buffer allocator memory issues. Automatically prints 00873 * (to stderr) all (fatal) messages on memory allocation issues. Enables 00874 * function for 'debug output' of allocated memory. 00875 * 00876 * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C 00877 * 00878 * Uncomment this macro to let the buffer allocator print out error messages. 00879 */ 00880 //#define MBEDTLS_MEMORY_DEBUG 00881 00882 /** 00883 * \def MBEDTLS_MEMORY_BACKTRACE 00884 * 00885 * Include backtrace information with each allocated block. 00886 * 00887 * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C 00888 * GLIBC-compatible backtrace() an backtrace_symbols() support 00889 * 00890 * Uncomment this macro to include backtrace information 00891 */ 00892 //#define MBEDTLS_MEMORY_BACKTRACE 00893 00894 /** 00895 * \def MBEDTLS_PK_RSA_ALT_SUPPORT 00896 * 00897 * Support external private RSA keys (eg from a HSM) in the PK layer. 00898 * 00899 * Comment this macro to disable support for external private RSA keys. 00900 */ 00901 #define MBEDTLS_PK_RSA_ALT_SUPPORT 00902 00903 /** 00904 * \def MBEDTLS_PKCS1_V15 00905 * 00906 * Enable support for PKCS#1 v1.5 encoding. 00907 * 00908 * Requires: MBEDTLS_RSA_C 00909 * 00910 * This enables support for PKCS#1 v1.5 operations. 00911 */ 00912 #define MBEDTLS_PKCS1_V15 00913 00914 /** 00915 * \def MBEDTLS_PKCS1_V21 00916 * 00917 * Enable support for PKCS#1 v2.1 encoding. 00918 * 00919 * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C 00920 * 00921 * This enables support for RSAES-OAEP and RSASSA-PSS operations. 00922 */ 00923 #define MBEDTLS_PKCS1_V21 00924 00925 /** 00926 * \def MBEDTLS_RSA_NO_CRT 00927 * 00928 * Do not use the Chinese Remainder Theorem for the RSA private operation. 00929 * 00930 * Uncomment this macro to disable the use of CRT in RSA. 00931 * 00932 */ 00933 //#define MBEDTLS_RSA_NO_CRT 00934 00935 /** 00936 * \def MBEDTLS_SELF_TEST 00937 * 00938 * Enable the checkup functions (*_self_test). 00939 */ 00940 #define MBEDTLS_SELF_TEST 00941 00942 /** 00943 * \def MBEDTLS_SHA256_SMALLER 00944 * 00945 * Enable an implementation of SHA-256 that has lower ROM footprint but also 00946 * lower performance. 00947 * 00948 * The default implementation is meant to be a reasonnable compromise between 00949 * performance and size. This version optimizes more aggressively for size at 00950 * the expense of performance. Eg on Cortex-M4 it reduces the size of 00951 * mbedtls_sha256_process() from ~2KB to ~0.5KB for a performance hit of about 00952 * 30%. 00953 * 00954 * Uncomment to enable the smaller implementation of SHA256. 00955 */ 00956 //#define MBEDTLS_SHA256_SMALLER 00957 00958 /** 00959 * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES 00960 * 00961 * Enable sending of alert messages in case of encountered errors as per RFC. 00962 * If you choose not to send the alert messages, mbed TLS can still communicate 00963 * with other servers, only debugging of failures is harder. 00964 * 00965 * The advantage of not sending alert messages, is that no information is given 00966 * about reasons for failures thus preventing adversaries of gaining intel. 00967 * 00968 * Enable sending of all alert messages 00969 */ 00970 #define MBEDTLS_SSL_ALL_ALERT_MESSAGES 00971 00972 /** 00973 * \def MBEDTLS_SSL_DEBUG_ALL 00974 * 00975 * Enable the debug messages in SSL module for all issues. 00976 * Debug messages have been disabled in some places to prevent timing 00977 * attacks due to (unbalanced) debugging function calls. 00978 * 00979 * If you need all error reporting you should enable this during debugging, 00980 * but remove this for production servers that should log as well. 00981 * 00982 * Uncomment this macro to report all debug messages on errors introducing 00983 * a timing side-channel. 00984 * 00985 */ 00986 //#define MBEDTLS_SSL_DEBUG_ALL 00987 00988 /** \def MBEDTLS_SSL_ENCRYPT_THEN_MAC 00989 * 00990 * Enable support for Encrypt-then-MAC, RFC 7366. 00991 * 00992 * This allows peers that both support it to use a more robust protection for 00993 * ciphersuites using CBC, providing deep resistance against timing attacks 00994 * on the padding or underlying cipher. 00995 * 00996 * This only affects CBC ciphersuites, and is useless if none is defined. 00997 * 00998 * Requires: MBEDTLS_SSL_PROTO_TLS1 or 00999 * MBEDTLS_SSL_PROTO_TLS1_1 or 01000 * MBEDTLS_SSL_PROTO_TLS1_2 01001 * 01002 * Comment this macro to disable support for Encrypt-then-MAC 01003 */ 01004 #define MBEDTLS_SSL_ENCRYPT_THEN_MAC 01005 01006 /** \def MBEDTLS_SSL_EXTENDED_MASTER_SECRET 01007 * 01008 * Enable support for Extended Master Secret, aka Session Hash 01009 * (draft-ietf-tls-session-hash-02). 01010 * 01011 * This was introduced as "the proper fix" to the Triple Handshake familiy of 01012 * attacks, but it is recommended to always use it (even if you disable 01013 * renegotiation), since it actually fixes a more fundamental issue in the 01014 * original SSL/TLS design, and has implications beyond Triple Handshake. 01015 * 01016 * Requires: MBEDTLS_SSL_PROTO_TLS1 or 01017 * MBEDTLS_SSL_PROTO_TLS1_1 or 01018 * MBEDTLS_SSL_PROTO_TLS1_2 01019 * 01020 * Comment this macro to disable support for Extended Master Secret. 01021 */ 01022 #define MBEDTLS_SSL_EXTENDED_MASTER_SECRET 01023 01024 /** 01025 * \def MBEDTLS_SSL_FALLBACK_SCSV 01026 * 01027 * Enable support for FALLBACK_SCSV (draft-ietf-tls-downgrade-scsv-00). 01028 * 01029 * For servers, it is recommended to always enable this, unless you support 01030 * only one version of TLS, or know for sure that none of your clients 01031 * implements a fallback strategy. 01032 * 01033 * For clients, you only need this if you're using a fallback strategy, which 01034 * is not recommended in the first place, unless you absolutely need it to 01035 * interoperate with buggy (version-intolerant) servers. 01036 * 01037 * Comment this macro to disable support for FALLBACK_SCSV 01038 */ 01039 //#define MBEDTLS_SSL_FALLBACK_SCSV 01040 01041 /** 01042 * \def MBEDTLS_SSL_HW_RECORD_ACCEL 01043 * 01044 * Enable hooking functions in SSL module for hardware acceleration of 01045 * individual records. 01046 * 01047 * Uncomment this macro to enable hooking functions. 01048 */ 01049 //#define MBEDTLS_SSL_HW_RECORD_ACCEL 01050 01051 /** 01052 * \def MBEDTLS_SSL_CBC_RECORD_SPLITTING 01053 * 01054 * Enable 1/n-1 record splitting for CBC mode in SSLv3 and TLS 1.0. 01055 * 01056 * This is a countermeasure to the BEAST attack, which also minimizes the risk 01057 * of interoperability issues compared to sending 0-length records. 01058 * 01059 * Comment this macro to disable 1/n-1 record splitting. 01060 */ 01061 //#define MBEDTLS_SSL_CBC_RECORD_SPLITTING 01062 01063 /** 01064 * \def MBEDTLS_SSL_RENEGOTIATION 01065 * 01066 * Disable support for TLS renegotiation. 01067 * 01068 * The two main uses of renegotiation are (1) refresh keys on long-lived 01069 * connections and (2) client authentication after the initial handshake. 01070 * If you don't need renegotiation, it's probably better to disable it, since 01071 * it has been associated with security issues in the past and is easy to 01072 * misuse/misunderstand. 01073 * 01074 * Comment this to disable support for renegotiation. 01075 */ 01076 #define MBEDTLS_SSL_RENEGOTIATION 01077 01078 /** 01079 * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO 01080 * 01081 * Enable support for receiving and parsing SSLv2 Client Hello messages for the 01082 * SSL Server module (MBEDTLS_SSL_SRV_C). 01083 * 01084 * Uncomment this macro to enable support for SSLv2 Client Hello messages. 01085 */ 01086 //#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO 01087 01088 /** 01089 * \def MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE 01090 * 01091 * Pick the ciphersuite according to the client's preferences rather than ours 01092 * in the SSL Server module (MBEDTLS_SSL_SRV_C). 01093 * 01094 * Uncomment this macro to respect client's ciphersuite order 01095 */ 01096 //#define MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE 01097 01098 /** 01099 * \def MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 01100 * 01101 * Enable support for RFC 6066 max_fragment_length extension in SSL. 01102 * 01103 * Comment this macro to disable support for the max_fragment_length extension 01104 */ 01105 #define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH 01106 01107 /** 01108 * \def MBEDTLS_SSL_PROTO_SSL3 01109 * 01110 * Enable support for SSL 3.0. 01111 * 01112 * Requires: MBEDTLS_MD5_C 01113 * MBEDTLS_SHA1_C 01114 * 01115 * Comment this macro to disable support for SSL 3.0 01116 */ 01117 //#define MBEDTLS_SSL_PROTO_SSL3 01118 01119 /** 01120 * \def MBEDTLS_SSL_PROTO_TLS1 01121 * 01122 * Enable support for TLS 1.0. 01123 * 01124 * Requires: MBEDTLS_MD5_C 01125 * MBEDTLS_SHA1_C 01126 * 01127 * Comment this macro to disable support for TLS 1.0 01128 */ 01129 //#define MBEDTLS_SSL_PROTO_TLS1 01130 01131 /** 01132 * \def MBEDTLS_SSL_PROTO_TLS1_1 01133 * 01134 * Enable support for TLS 1.1 (and DTLS 1.0 if DTLS is enabled). 01135 * 01136 * Requires: MBEDTLS_MD5_C 01137 * MBEDTLS_SHA1_C 01138 * 01139 * Comment this macro to disable support for TLS 1.1 / DTLS 1.0 01140 */ 01141 //#define MBEDTLS_SSL_PROTO_TLS1_1 01142 01143 /** 01144 * \def MBEDTLS_SSL_PROTO_TLS1_2 01145 * 01146 * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled). 01147 * 01148 * Requires: MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C 01149 * (Depends on ciphersuites) 01150 * 01151 * Comment this macro to disable support for TLS 1.2 / DTLS 1.2 01152 */ 01153 #define MBEDTLS_SSL_PROTO_TLS1_2 01154 01155 /** 01156 * \def MBEDTLS_SSL_PROTO_DTLS 01157 * 01158 * Enable support for DTLS (all available versions). 01159 * 01160 * Enable this and MBEDTLS_SSL_PROTO_TLS1_1 to enable DTLS 1.0, 01161 * and/or this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2. 01162 * 01163 * Requires: MBEDTLS_SSL_PROTO_TLS1_1 01164 * or MBEDTLS_SSL_PROTO_TLS1_2 01165 * 01166 * Comment this macro to disable support for DTLS 01167 */ 01168 #define MBEDTLS_SSL_PROTO_DTLS 01169 01170 /** 01171 * \def MBEDTLS_SSL_ALPN 01172 * 01173 * Enable support for RFC 7301 Application Layer Protocol Negotiation. 01174 * 01175 * Comment this macro to disable support for ALPN. 01176 */ 01177 #define MBEDTLS_SSL_ALPN 01178 01179 /** 01180 * \def MBEDTLS_SSL_DTLS_ANTI_REPLAY 01181 * 01182 * Enable support for the anti-replay mechanism in DTLS. 01183 * 01184 * Requires: MBEDTLS_SSL_TLS_C 01185 * MBEDTLS_SSL_PROTO_DTLS 01186 * 01187 * \warning Disabling this is often a security risk! 01188 * See mbedtls_ssl_conf_dtls_anti_replay() for details. 01189 * 01190 * Comment this to disable anti-replay in DTLS. 01191 */ 01192 #define MBEDTLS_SSL_DTLS_ANTI_REPLAY 01193 01194 /** 01195 * \def MBEDTLS_SSL_DTLS_HELLO_VERIFY 01196 * 01197 * Enable support for HelloVerifyRequest on DTLS servers. 01198 * 01199 * This feature is highly recommended to prevent DTLS servers being used as 01200 * amplifiers in DoS attacks against other hosts. It should always be enabled 01201 * unless you know for sure amplification cannot be a problem in the 01202 * environment in which your server operates. 01203 * 01204 * \warning Disabling this can ba a security risk! (see above) 01205 * 01206 * Requires: MBEDTLS_SSL_PROTO_DTLS 01207 * 01208 * Comment this to disable support for HelloVerifyRequest. 01209 */ 01210 #define MBEDTLS_SSL_DTLS_HELLO_VERIFY 01211 01212 /** 01213 * \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE 01214 * 01215 * Enable server-side support for clients that reconnect from the same port. 01216 * 01217 * Some clients unexpectedly close the connection and try to reconnect using the 01218 * same source port. This needs special support from the server to handle the 01219 * new connection securely, as described in section 4.2.8 of RFC 6347. This 01220 * flag enables that support. 01221 * 01222 * Requires: MBEDTLS_SSL_DTLS_HELLO_VERIFY 01223 * 01224 * Comment this to disable support for clients reusing the source port. 01225 */ 01226 #define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE 01227 01228 /** 01229 * \def MBEDTLS_SSL_DTLS_BADMAC_LIMIT 01230 * 01231 * Enable support for a limit of records with bad MAC. 01232 * 01233 * See mbedtls_ssl_conf_dtls_badmac_limit(). 01234 * 01235 * Requires: MBEDTLS_SSL_PROTO_DTLS 01236 */ 01237 #define MBEDTLS_SSL_DTLS_BADMAC_LIMIT 01238 01239 /** 01240 * \def MBEDTLS_SSL_SESSION_TICKETS 01241 * 01242 * Enable support for RFC 5077 session tickets in SSL. 01243 * Client-side, provides full support for session tickets (maintainance of a 01244 * session store remains the responsibility of the application, though). 01245 * Server-side, you also need to provide callbacks for writing and parsing 01246 * tickets, including authenticated encryption and key management. Example 01247 * callbacks are provided by MBEDTLS_SSL_TICKET_C. 01248 * 01249 * Comment this macro to disable support for SSL session tickets 01250 */ 01251 #define MBEDTLS_SSL_SESSION_TICKETS 01252 01253 /** 01254 * \def MBEDTLS_SSL_EXPORT_KEYS 01255 * 01256 * Enable support for exporting key block and master secret. 01257 * This is required for certain users of TLS, e.g. EAP-TLS. 01258 * 01259 * Comment this macro to disable support for key export 01260 */ 01261 #define MBEDTLS_SSL_EXPORT_KEYS 01262 01263 /** 01264 * \def MBEDTLS_SSL_SERVER_NAME_INDICATION 01265 * 01266 * Enable support for RFC 6066 server name indication (SNI) in SSL. 01267 * 01268 * Requires: MBEDTLS_X509_CRT_PARSE_C 01269 * 01270 * Comment this macro to disable support for server name indication in SSL 01271 */ 01272 #define MBEDTLS_SSL_SERVER_NAME_INDICATION 01273 01274 /** 01275 * \def MBEDTLS_SSL_TRUNCATED_HMAC 01276 * 01277 * Enable support for RFC 6066 truncated HMAC in SSL. 01278 * 01279 * Comment this macro to disable support for truncated HMAC in SSL 01280 */ 01281 //#define MBEDTLS_SSL_TRUNCATED_HMAC 01282 01283 /** 01284 * \def MBEDTLS_THREADING_ALT 01285 * 01286 * Provide your own alternate threading implementation. 01287 * 01288 * Requires: MBEDTLS_THREADING_C 01289 * 01290 * Uncomment this to allow your own alternate threading implementation. 01291 */ 01292 //#define MBEDTLS_THREADING_ALT 01293 01294 /** 01295 * \def MBEDTLS_THREADING_PTHREAD 01296 * 01297 * Enable the pthread wrapper layer for the threading layer. 01298 * 01299 * Requires: MBEDTLS_THREADING_C 01300 * 01301 * Uncomment this to enable pthread mutexes. 01302 */ 01303 //#define MBEDTLS_THREADING_PTHREAD 01304 01305 /** 01306 * \def MBEDTLS_VERSION_FEATURES 01307 * 01308 * Allow run-time checking of compile-time enabled features. Thus allowing users 01309 * to check at run-time if the library is for instance compiled with threading 01310 * support via mbedtls_version_check_feature(). 01311 * 01312 * Requires: MBEDTLS_VERSION_C 01313 * 01314 * Comment this to disable run-time checking and save ROM space 01315 */ 01316 #define MBEDTLS_VERSION_FEATURES 01317 01318 /** 01319 * \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3 01320 * 01321 * If set, the X509 parser will not break-off when parsing an X509 certificate 01322 * and encountering an extension in a v1 or v2 certificate. 01323 * 01324 * Uncomment to prevent an error. 01325 */ 01326 //#define MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3 01327 01328 /** 01329 * \def MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION 01330 * 01331 * If set, the X509 parser will not break-off when parsing an X509 certificate 01332 * and encountering an unknown critical extension. 01333 * 01334 * \warning Depending on your PKI use, enabling this can be a security risk! 01335 * 01336 * Uncomment to prevent an error. 01337 */ 01338 //#define MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION 01339 01340 /** 01341 * \def MBEDTLS_X509_CHECK_KEY_USAGE 01342 * 01343 * Enable verification of the keyUsage extension (CA and leaf certificates). 01344 * 01345 * Disabling this avoids problems with mis-issued and/or misused 01346 * (intermediate) CA and leaf certificates. 01347 * 01348 * \warning Depending on your PKI use, disabling this can be a security risk! 01349 * 01350 * Comment to skip keyUsage checking for both CA and leaf certificates. 01351 */ 01352 #define MBEDTLS_X509_CHECK_KEY_USAGE 01353 01354 /** 01355 * \def MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE 01356 * 01357 * Enable verification of the extendedKeyUsage extension (leaf certificates). 01358 * 01359 * Disabling this avoids problems with mis-issued and/or misused certificates. 01360 * 01361 * \warning Depending on your PKI use, disabling this can be a security risk! 01362 * 01363 * Comment to skip extendedKeyUsage checking for certificates. 01364 */ 01365 #define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE 01366 01367 /** 01368 * \def MBEDTLS_X509_RSASSA_PSS_SUPPORT 01369 * 01370 * Enable parsing and verification of X.509 certificates, CRLs and CSRS 01371 * signed with RSASSA-PSS (aka PKCS#1 v2.1). 01372 * 01373 * Comment this macro to disallow using RSASSA-PSS in certificates. 01374 */ 01375 //#define MBEDTLS_X509_RSASSA_PSS_SUPPORT 01376 01377 /** 01378 * \def MBEDTLS_ZLIB_SUPPORT 01379 * 01380 * If set, the SSL/TLS module uses ZLIB to support compression and 01381 * decompression of packet data. 01382 * 01383 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the 01384 * CRIME attack. Before enabling this option, you should examine with care if 01385 * CRIME or similar exploits may be a applicable to your use case. 01386 * 01387 * \note Currently compression can't be used with DTLS. 01388 * 01389 * Used in: library/ssl_tls.c 01390 * library/ssl_cli.c 01391 * library/ssl_srv.c 01392 * 01393 * This feature requires zlib library and headers to be present. 01394 * 01395 * Uncomment to enable use of ZLIB 01396 */ 01397 //#define MBEDTLS_ZLIB_SUPPORT 01398 /* \} name SECTION: mbed TLS feature support */ 01399 01400 /** 01401 * \name SECTION: mbed TLS modules 01402 * 01403 * This section enables or disables entire modules in mbed TLS 01404 * \{ 01405 */ 01406 01407 /** 01408 * \def MBEDTLS_AESNI_C 01409 * 01410 * Enable AES-NI support on x86-64. 01411 * 01412 * Module: library/aesni.c 01413 * Caller: library/aes.c 01414 * 01415 * Requires: MBEDTLS_HAVE_ASM 01416 * 01417 * This modules adds support for the AES-NI instructions on x86-64 01418 */ 01419 //#define MBEDTLS_AESNI_C 01420 01421 /** 01422 * \def MBEDTLS_AES_C 01423 * 01424 * Enable the AES block cipher. 01425 * 01426 * Module: library/aes.c 01427 * Caller: library/ssl_tls.c 01428 * library/pem.c 01429 * library/ctr_drbg.c 01430 * 01431 * This module enables the following ciphersuites (if other requisites are 01432 * enabled as well): 01433 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA 01434 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA 01435 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA 01436 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA 01437 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 01438 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 01439 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 01440 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 01441 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 01442 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 01443 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 01444 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 01445 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 01446 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 01447 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 01448 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 01449 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 01450 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 01451 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 01452 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA 01453 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA 01454 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 01455 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 01456 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 01457 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 01458 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 01459 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 01460 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 01461 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA 01462 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA 01463 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 01464 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 01465 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 01466 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA 01467 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA 01468 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 01469 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 01470 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 01471 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA 01472 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA 01473 * MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384 01474 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256 01475 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA 01476 * MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256 01477 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256 01478 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA 01479 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 01480 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 01481 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA 01482 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 01483 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 01484 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA 01485 * MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384 01486 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384 01487 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA 01488 * MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256 01489 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256 01490 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA 01491 * 01492 * PEM_PARSE uses AES for decrypting encrypted keys. 01493 */ 01494 #define MBEDTLS_AES_C 01495 01496 /** 01497 * \def MBEDTLS_ARC4_C 01498 * 01499 * Enable the ARCFOUR stream cipher. 01500 * 01501 * Module: library/arc4.c 01502 * Caller: library/ssl_tls.c 01503 * 01504 * This module enables the following ciphersuites (if other requisites are 01505 * enabled as well): 01506 * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA 01507 * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA 01508 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA 01509 * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA 01510 * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA 01511 * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA 01512 * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA 01513 * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5 01514 * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA 01515 * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA 01516 */ 01517 //#define MBEDTLS_ARC4_C 01518 01519 /** 01520 * \def MBEDTLS_ASN1_PARSE_C 01521 * 01522 * Enable the generic ASN1 parser. 01523 * 01524 * Module: library/asn1.c 01525 * Caller: library/x509.c 01526 * library/dhm.c 01527 * library/pkcs12.c 01528 * library/pkcs5.c 01529 * library/pkparse.c 01530 */ 01531 #define MBEDTLS_ASN1_PARSE_C 01532 01533 /** 01534 * \def MBEDTLS_ASN1_WRITE_C 01535 * 01536 * Enable the generic ASN1 writer. 01537 * 01538 * Module: library/asn1write.c 01539 * Caller: library/ecdsa.c 01540 * library/pkwrite.c 01541 * library/x509_create.c 01542 * library/x509write_crt.c 01543 * library/mbedtls_x509write_csr.c 01544 */ 01545 #define MBEDTLS_ASN1_WRITE_C 01546 01547 /** 01548 * \def MBEDTLS_BASE64_C 01549 * 01550 * Enable the Base64 module. 01551 * 01552 * Module: library/base64.c 01553 * Caller: library/pem.c 01554 * 01555 * This module is required for PEM support (required by X.509). 01556 */ 01557 #define MBEDTLS_BASE64_C 01558 01559 /** 01560 * \def MBEDTLS_BIGNUM_C 01561 * 01562 * Enable the multi-precision integer library. 01563 * 01564 * Module: library/bignum.c 01565 * Caller: library/dhm.c 01566 * library/ecp.c 01567 * library/ecdsa.c 01568 * library/rsa.c 01569 * library/ssl_tls.c 01570 * 01571 * This module is required for RSA, DHM and ECC (ECDH, ECDSA) support. 01572 */ 01573 #define MBEDTLS_BIGNUM_C 01574 01575 /** 01576 * \def MBEDTLS_BLOWFISH_C 01577 * 01578 * Enable the Blowfish block cipher. 01579 * 01580 * Module: library/blowfish.c 01581 */ 01582 //#define MBEDTLS_BLOWFISH_C 01583 01584 /** 01585 * \def MBEDTLS_CAMELLIA_C 01586 * 01587 * Enable the Camellia block cipher. 01588 * 01589 * Module: library/camellia.c 01590 * Caller: library/ssl_tls.c 01591 * 01592 * This module enables the following ciphersuites (if other requisites are 01593 * enabled as well): 01594 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 01595 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 01596 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 01597 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 01598 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 01599 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 01600 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 01601 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 01602 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 01603 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 01604 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 01605 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 01606 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 01607 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 01608 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 01609 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 01610 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 01611 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 01612 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 01613 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 01614 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 01615 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 01616 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 01617 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 01618 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 01619 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 01620 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 01621 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 01622 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 01623 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 01624 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA 01625 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 01626 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 01627 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA 01628 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 01629 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 01630 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 01631 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 01632 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 01633 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 01634 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 01635 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 01636 */ 01637 //#define MBEDTLS_CAMELLIA_C 01638 01639 /** 01640 * \def MBEDTLS_CCM_C 01641 * 01642 * Enable the Counter with CBC-MAC (CCM) mode for 128-bit block cipher. 01643 * 01644 * Module: library/ccm.c 01645 * 01646 * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C 01647 * 01648 * This module enables the AES-CCM ciphersuites, if other requisites are 01649 * enabled as well. 01650 */ 01651 #define MBEDTLS_CCM_C 01652 01653 /** 01654 * \def MBEDTLS_CERTS_C 01655 * 01656 * Enable the test certificates. 01657 * 01658 * Module: library/certs.c 01659 * Caller: 01660 * 01661 * This module is used for testing (ssl_client/server). 01662 */ 01663 #define MBEDTLS_CERTS_C 01664 01665 /** 01666 * \def MBEDTLS_CIPHER_C 01667 * 01668 * Enable the generic cipher layer. 01669 * 01670 * Module: library/cipher.c 01671 * Caller: library/ssl_tls.c 01672 * 01673 * Uncomment to enable generic cipher wrappers. 01674 */ 01675 #define MBEDTLS_CIPHER_C 01676 01677 /** 01678 * \def MBEDTLS_CMAC_C 01679 * 01680 * Enable the CMAC (Cipher-based Message Authentication Code) mode for block 01681 * ciphers. 01682 * 01683 * Module: library/cmac.c 01684 * 01685 * Requires: MBEDTLS_AES_C or MBEDTLS_DES_C 01686 * 01687 */ 01688 //#define MBEDTLS_CMAC_C 01689 01690 /** 01691 * \def MBEDTLS_CTR_DRBG_C 01692 * 01693 * Enable the CTR_DRBG AES-256-based random generator. 01694 * 01695 * Module: library/ctr_drbg.c 01696 * Caller: 01697 * 01698 * Requires: MBEDTLS_AES_C 01699 * 01700 * This module provides the CTR_DRBG AES-256 random number generator. 01701 */ 01702 #define MBEDTLS_CTR_DRBG_C 01703 01704 /** 01705 * \def MBEDTLS_DEBUG_C 01706 * 01707 * Enable the debug functions. 01708 * 01709 * Module: library/debug.c 01710 * Caller: library/ssl_cli.c 01711 * library/ssl_srv.c 01712 * library/ssl_tls.c 01713 * 01714 * This module provides debugging functions. 01715 */ 01716 #define MBEDTLS_DEBUG_C 01717 01718 /** 01719 * \def MBEDTLS_DES_C 01720 * 01721 * Enable the DES block cipher. 01722 * 01723 * Module: library/des.c 01724 * Caller: library/pem.c 01725 * library/ssl_tls.c 01726 * 01727 * This module enables the following ciphersuites (if other requisites are 01728 * enabled as well): 01729 * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA 01730 * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA 01731 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA 01732 * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA 01733 * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA 01734 * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 01735 * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA 01736 * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA 01737 * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA 01738 * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA 01739 * 01740 * PEM_PARSE uses DES/3DES for decrypting encrypted keys. 01741 */ 01742 //#define MBEDTLS_DES_C 01743 01744 /** 01745 * \def MBEDTLS_DHM_C 01746 * 01747 * Enable the Diffie-Hellman-Merkle module. 01748 * 01749 * Module: library/dhm.c 01750 * Caller: library/ssl_cli.c 01751 * library/ssl_srv.c 01752 * 01753 * This module is used by the following key exchanges: 01754 * DHE-RSA, DHE-PSK 01755 */ 01756 //#define MBEDTLS_DHM_C 01757 01758 /** 01759 * \def MBEDTLS_ECDH_C 01760 * 01761 * Enable the elliptic curve Diffie-Hellman library. 01762 * 01763 * Module: library/ecdh.c 01764 * Caller: library/ssl_cli.c 01765 * library/ssl_srv.c 01766 * 01767 * This module is used by the following key exchanges: 01768 * ECDHE-ECDSA, ECDHE-RSA, DHE-PSK 01769 * 01770 * Requires: MBEDTLS_ECP_C 01771 */ 01772 #define MBEDTLS_ECDH_C 01773 01774 /** 01775 * \def MBEDTLS_ECDSA_C 01776 * 01777 * Enable the elliptic curve DSA library. 01778 * 01779 * Module: library/ecdsa.c 01780 * Caller: 01781 * 01782 * This module is used by the following key exchanges: 01783 * ECDHE-ECDSA 01784 * 01785 * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C 01786 */ 01787 #define MBEDTLS_ECDSA_C 01788 01789 /** 01790 * \def MBEDTLS_ECJPAKE_C 01791 * 01792 * Enable the elliptic curve J-PAKE library. 01793 * 01794 * \warning This is currently experimental. EC J-PAKE support is based on the 01795 * Thread v1.0.0 specification; incompatible changes to the specification 01796 * might still happen. For this reason, this is disabled by default. 01797 * 01798 * Module: library/ecjpake.c 01799 * Caller: 01800 * 01801 * This module is used by the following key exchanges: 01802 * ECJPAKE 01803 * 01804 * Requires: MBEDTLS_ECP_C, MBEDTLS_MD_C 01805 */ 01806 //#define MBEDTLS_ECJPAKE_C 01807 01808 /** 01809 * \def MBEDTLS_ECP_C 01810 * 01811 * Enable the elliptic curve over GF(p) library. 01812 * 01813 * Module: library/ecp.c 01814 * Caller: library/ecdh.c 01815 * library/ecdsa.c 01816 * library/ecjpake.c 01817 * 01818 * Requires: MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED 01819 */ 01820 #define MBEDTLS_ECP_C 01821 01822 /** 01823 * \def MBEDTLS_ENTROPY_C 01824 * 01825 * Enable the platform-specific entropy code. 01826 * 01827 * Module: library/entropy.c 01828 * Caller: 01829 * 01830 * Requires: MBEDTLS_SHA512_C or MBEDTLS_SHA256_C 01831 * 01832 * This module provides a generic entropy pool 01833 */ 01834 #define MBEDTLS_ENTROPY_C 01835 01836 /** 01837 * \def MBEDTLS_ERROR_C 01838 * 01839 * Enable error code to error string conversion. 01840 * 01841 * Module: library/error.c 01842 * Caller: 01843 * 01844 * This module enables mbedtls_strerror(). 01845 */ 01846 #define MBEDTLS_ERROR_C 01847 01848 /** 01849 * \def MBEDTLS_GCM_C 01850 * 01851 * Enable the Galois/Counter Mode (GCM) for AES. 01852 * 01853 * Module: library/gcm.c 01854 * 01855 * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C 01856 * 01857 * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other 01858 * requisites are enabled as well. 01859 */ 01860 #define MBEDTLS_GCM_C 01861 01862 /** 01863 * \def MBEDTLS_HAVEGE_C 01864 * 01865 * Enable the HAVEGE random generator. 01866 * 01867 * Warning: the HAVEGE random generator is not suitable for virtualized 01868 * environments 01869 * 01870 * Warning: the HAVEGE random generator is dependent on timing and specific 01871 * processor traits. It is therefore not advised to use HAVEGE as 01872 * your applications primary random generator or primary entropy pool 01873 * input. As a secondary input to your entropy pool, it IS able add 01874 * the (limited) extra entropy it provides. 01875 * 01876 * Module: library/havege.c 01877 * Caller: 01878 * 01879 * Requires: MBEDTLS_TIMING_C 01880 * 01881 * Uncomment to enable the HAVEGE random generator. 01882 */ 01883 //#define MBEDTLS_HAVEGE_C 01884 01885 /** 01886 * \def MBEDTLS_HMAC_DRBG_C 01887 * 01888 * Enable the HMAC_DRBG random generator. 01889 * 01890 * Module: library/hmac_drbg.c 01891 * Caller: 01892 * 01893 * Requires: MBEDTLS_MD_C 01894 * 01895 * Uncomment to enable the HMAC_DRBG random number geerator. 01896 */ 01897 #define MBEDTLS_HMAC_DRBG_C 01898 01899 /** 01900 * \def MBEDTLS_MD_C 01901 * 01902 * Enable the generic message digest layer. 01903 * 01904 * Module: library/mbedtls_md.c 01905 * Caller: 01906 * 01907 * Uncomment to enable generic message digest wrappers. 01908 */ 01909 #define MBEDTLS_MD_C 01910 01911 /** 01912 * \def MBEDTLS_MD2_C 01913 * 01914 * Enable the MD2 hash algorithm. 01915 * 01916 * Module: library/mbedtls_md2.c 01917 * Caller: 01918 * 01919 * Uncomment to enable support for (rare) MD2-signed X.509 certs. 01920 */ 01921 //#define MBEDTLS_MD2_C 01922 01923 /** 01924 * \def MBEDTLS_MD4_C 01925 * 01926 * Enable the MD4 hash algorithm. 01927 * 01928 * Module: library/mbedtls_md4.c 01929 * Caller: 01930 * 01931 * Uncomment to enable support for (rare) MD4-signed X.509 certs. 01932 */ 01933 //#define MBEDTLS_MD4_C 01934 01935 /** 01936 * \def MBEDTLS_MD5_C 01937 * 01938 * Enable the MD5 hash algorithm. 01939 * 01940 * Module: library/mbedtls_md5.c 01941 * Caller: library/mbedtls_md.c 01942 * library/pem.c 01943 * library/ssl_tls.c 01944 * 01945 * This module is required for SSL/TLS and X.509. 01946 * PEM_PARSE uses MD5 for decrypting encrypted keys. 01947 */ 01948 //#define MBEDTLS_MD5_C 01949 01950 /** 01951 * \def MBEDTLS_MEMORY_BUFFER_ALLOC_C 01952 * 01953 * Enable the buffer allocator implementation that makes use of a (stack) 01954 * based buffer to 'allocate' dynamic memory. (replaces calloc() and free() 01955 * calls) 01956 * 01957 * Module: library/memory_buffer_alloc.c 01958 * 01959 * Requires: MBEDTLS_PLATFORM_C 01960 * MBEDTLS_PLATFORM_MEMORY (to use it within mbed TLS) 01961 * 01962 * Enable this module to enable the buffer memory allocator. 01963 */ 01964 //#define MBEDTLS_MEMORY_BUFFER_ALLOC_C 01965 01966 /** 01967 * \def MBEDTLS_NET_C 01968 * 01969 * Enable the TCP and UDP over IPv6/IPv4 networking routines. 01970 * 01971 * \note This module only works on POSIX/Unix (including Linux, BSD and OS X) 01972 * and Windows. For other platforms, you'll want to disable it, and write your 01973 * own networking callbacks to be passed to \c mbedtls_ssl_set_bio(). 01974 * 01975 * \note See also our Knowledge Base article about porting to a new 01976 * environment: 01977 * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS 01978 * 01979 * Module: library/net_sockets.c 01980 * 01981 * This module provides networking routines. 01982 */ 01983 //#define MBEDTLS_NET_C 01984 01985 /** 01986 * \def MBEDTLS_OID_C 01987 * 01988 * Enable the OID database. 01989 * 01990 * Module: library/oid.c 01991 * Caller: library/asn1write.c 01992 * library/pkcs5.c 01993 * library/pkparse.c 01994 * library/pkwrite.c 01995 * library/rsa.c 01996 * library/x509.c 01997 * library/x509_create.c 01998 * library/mbedtls_x509_crl.c 01999 * library/mbedtls_x509_crt.c 02000 * library/mbedtls_x509_csr.c 02001 * library/x509write_crt.c 02002 * library/mbedtls_x509write_csr.c 02003 * 02004 * This modules translates between OIDs and internal values. 02005 */ 02006 #define MBEDTLS_OID_C 02007 02008 /** 02009 * \def MBEDTLS_PADLOCK_C 02010 * 02011 * Enable VIA Padlock support on x86. 02012 * 02013 * Module: library/padlock.c 02014 * Caller: library/aes.c 02015 * 02016 * Requires: MBEDTLS_HAVE_ASM 02017 * 02018 * This modules adds support for the VIA PadLock on x86. 02019 */ 02020 //#define MBEDTLS_PADLOCK_C 02021 02022 /** 02023 * \def MBEDTLS_PEM_PARSE_C 02024 * 02025 * Enable PEM decoding / parsing. 02026 * 02027 * Module: library/pem.c 02028 * Caller: library/dhm.c 02029 * library/pkparse.c 02030 * library/mbedtls_x509_crl.c 02031 * library/mbedtls_x509_crt.c 02032 * library/mbedtls_x509_csr.c 02033 * 02034 * Requires: MBEDTLS_BASE64_C 02035 * 02036 * This modules adds support for decoding / parsing PEM files. 02037 */ 02038 #define MBEDTLS_PEM_PARSE_C 02039 02040 /** 02041 * \def MBEDTLS_PEM_WRITE_C 02042 * 02043 * Enable PEM encoding / writing. 02044 * 02045 * Module: library/pem.c 02046 * Caller: library/pkwrite.c 02047 * library/x509write_crt.c 02048 * library/mbedtls_x509write_csr.c 02049 * 02050 * Requires: MBEDTLS_BASE64_C 02051 * 02052 * This modules adds support for encoding / writing PEM files. 02053 */ 02054 //#define MBEDTLS_PEM_WRITE_C 02055 02056 /** 02057 * \def MBEDTLS_PK_C 02058 * 02059 * Enable the generic public (asymetric) key layer. 02060 * 02061 * Module: library/pk.c 02062 * Caller: library/ssl_tls.c 02063 * library/ssl_cli.c 02064 * library/ssl_srv.c 02065 * 02066 * Requires: MBEDTLS_RSA_C or MBEDTLS_ECP_C 02067 * 02068 * Uncomment to enable generic public key wrappers. 02069 */ 02070 #define MBEDTLS_PK_C 02071 02072 /** 02073 * \def MBEDTLS_PK_PARSE_C 02074 * 02075 * Enable the generic public (asymetric) key parser. 02076 * 02077 * Module: library/pkparse.c 02078 * Caller: library/mbedtls_x509_crt.c 02079 * library/mbedtls_x509_csr.c 02080 * 02081 * Requires: MBEDTLS_PK_C 02082 * 02083 * Uncomment to enable generic public key parse functions. 02084 */ 02085 #define MBEDTLS_PK_PARSE_C 02086 02087 /** 02088 * \def MBEDTLS_PK_WRITE_C 02089 * 02090 * Enable the generic public (asymetric) key writer. 02091 * 02092 * Module: library/pkwrite.c 02093 * Caller: library/x509write.c 02094 * 02095 * Requires: MBEDTLS_PK_C 02096 * 02097 * Uncomment to enable generic public key write functions. 02098 */ 02099 #define MBEDTLS_PK_WRITE_C 02100 02101 /** 02102 * \def MBEDTLS_PKCS5_C 02103 * 02104 * Enable PKCS#5 functions. 02105 * 02106 * Module: library/pkcs5.c 02107 * 02108 * Requires: MBEDTLS_MD_C 02109 * 02110 * This module adds support for the PKCS#5 functions. 02111 */ 02112 //#define MBEDTLS_PKCS5_C 02113 02114 /** 02115 * \def MBEDTLS_PKCS11_C 02116 * 02117 * Enable wrapper for PKCS#11 smartcard support. 02118 * 02119 * Module: library/pkcs11.c 02120 * Caller: library/pk.c 02121 * 02122 * Requires: MBEDTLS_PK_C 02123 * 02124 * This module enables SSL/TLS PKCS #11 smartcard support. 02125 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper) 02126 */ 02127 //#define MBEDTLS_PKCS11_C 02128 02129 /** 02130 * \def MBEDTLS_PKCS12_C 02131 * 02132 * Enable PKCS#12 PBE functions. 02133 * Adds algorithms for parsing PKCS#8 encrypted private keys 02134 * 02135 * Module: library/pkcs12.c 02136 * Caller: library/pkparse.c 02137 * 02138 * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_CIPHER_C, MBEDTLS_MD_C 02139 * Can use: MBEDTLS_ARC4_C 02140 * 02141 * This module enables PKCS#12 functions. 02142 */ 02143 //#define MBEDTLS_PKCS12_C 02144 02145 /** 02146 * \def MBEDTLS_PLATFORM_C 02147 * 02148 * Enable the platform abstraction layer that allows you to re-assign 02149 * functions like calloc(), free(), snprintf(), printf(), fprintf(), exit(). 02150 * 02151 * Enabling MBEDTLS_PLATFORM_C enables to use of MBEDTLS_PLATFORM_XXX_ALT 02152 * or MBEDTLS_PLATFORM_XXX_MACRO directives, allowing the functions mentioned 02153 * above to be specified at runtime or compile time respectively. 02154 * 02155 * \note This abstraction layer must be enabled on Windows (including MSYS2) 02156 * as other module rely on it for a fixed snprintf implementation. 02157 * 02158 * Module: library/platform.c 02159 * Caller: Most other .c files 02160 * 02161 * This module enables abstraction of common (libc) functions. 02162 */ 02163 #define MBEDTLS_PLATFORM_C 02164 02165 /** 02166 * \def MBEDTLS_RIPEMD160_C 02167 * 02168 * Enable the RIPEMD-160 hash algorithm. 02169 * 02170 * Module: library/mbedtls_ripemd160.c 02171 * Caller: library/mbedtls_md.c 02172 * 02173 */ 02174 //#define MBEDTLS_RIPEMD160_C 02175 02176 /** 02177 * \def MBEDTLS_RSA_C 02178 * 02179 * Enable the RSA public-key cryptosystem. 02180 * 02181 * Module: library/rsa.c 02182 * Caller: library/ssl_cli.c 02183 * library/ssl_srv.c 02184 * library/ssl_tls.c 02185 * library/x509.c 02186 * 02187 * This module is used by the following key exchanges: 02188 * RSA, DHE-RSA, ECDHE-RSA, RSA-PSK 02189 * 02190 * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C 02191 */ 02192 #define MBEDTLS_RSA_C 02193 02194 /** 02195 * \def MBEDTLS_SHA1_C 02196 * 02197 * Enable the SHA1 cryptographic hash algorithm. 02198 * 02199 * Module: library/mbedtls_sha1.c 02200 * Caller: library/mbedtls_md.c 02201 * library/ssl_cli.c 02202 * library/ssl_srv.c 02203 * library/ssl_tls.c 02204 * library/x509write_crt.c 02205 * 02206 * This module is required for SSL/TLS and SHA1-signed certificates. 02207 */ 02208 //#define MBEDTLS_SHA1_C 02209 02210 /** 02211 * \def MBEDTLS_SHA256_C 02212 * 02213 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms. 02214 * 02215 * Module: library/mbedtls_sha256.c 02216 * Caller: library/entropy.c 02217 * library/mbedtls_md.c 02218 * library/ssl_cli.c 02219 * library/ssl_srv.c 02220 * library/ssl_tls.c 02221 * 02222 * This module adds support for SHA-224 and SHA-256. 02223 * This module is required for the SSL/TLS 1.2 PRF function. 02224 */ 02225 #define MBEDTLS_SHA256_C 02226 02227 /** 02228 * \def MBEDTLS_SHA512_C 02229 * 02230 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms. 02231 * 02232 * Module: library/mbedtls_sha512.c 02233 * Caller: library/entropy.c 02234 * library/mbedtls_md.c 02235 * library/ssl_cli.c 02236 * library/ssl_srv.c 02237 * 02238 * This module adds support for SHA-384 and SHA-512. 02239 */ 02240 #define MBEDTLS_SHA512_C 02241 02242 /** 02243 * \def MBEDTLS_SSL_CACHE_C 02244 * 02245 * Enable simple SSL cache implementation. 02246 * 02247 * Module: library/ssl_cache.c 02248 * Caller: 02249 * 02250 * Requires: MBEDTLS_SSL_CACHE_C 02251 */ 02252 #define MBEDTLS_SSL_CACHE_C 02253 02254 /** 02255 * \def MBEDTLS_SSL_COOKIE_C 02256 * 02257 * Enable basic implementation of DTLS cookies for hello verification. 02258 * 02259 * Module: library/ssl_cookie.c 02260 * Caller: 02261 */ 02262 #define MBEDTLS_SSL_COOKIE_C 02263 02264 /** 02265 * \def MBEDTLS_SSL_TICKET_C 02266 * 02267 * Enable an implementation of TLS server-side callbacks for session tickets. 02268 * 02269 * Module: library/ssl_ticket.c 02270 * Caller: 02271 * 02272 * Requires: MBEDTLS_CIPHER_C 02273 */ 02274 #define MBEDTLS_SSL_TICKET_C 02275 02276 /** 02277 * \def MBEDTLS_SSL_CLI_C 02278 * 02279 * Enable the SSL/TLS client code. 02280 * 02281 * Module: library/ssl_cli.c 02282 * Caller: 02283 * 02284 * Requires: MBEDTLS_SSL_TLS_C 02285 * 02286 * This module is required for SSL/TLS client support. 02287 */ 02288 #define MBEDTLS_SSL_CLI_C 02289 02290 /** 02291 * \def MBEDTLS_SSL_SRV_C 02292 * 02293 * Enable the SSL/TLS server code. 02294 * 02295 * Module: library/ssl_srv.c 02296 * Caller: 02297 * 02298 * Requires: MBEDTLS_SSL_TLS_C 02299 * 02300 * This module is required for SSL/TLS server support. 02301 */ 02302 #define MBEDTLS_SSL_SRV_C 02303 02304 /** 02305 * \def MBEDTLS_SSL_TLS_C 02306 * 02307 * Enable the generic SSL/TLS code. 02308 * 02309 * Module: library/ssl_tls.c 02310 * Caller: library/ssl_cli.c 02311 * library/ssl_srv.c 02312 * 02313 * Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C 02314 * and at least one of the MBEDTLS_SSL_PROTO_XXX defines 02315 * 02316 * This module is required for SSL/TLS. 02317 */ 02318 #define MBEDTLS_SSL_TLS_C 02319 02320 /** 02321 * \def MBEDTLS_THREADING_C 02322 * 02323 * Enable the threading abstraction layer. 02324 * By default mbed TLS assumes it is used in a non-threaded environment or that 02325 * contexts are not shared between threads. If you do intend to use contexts 02326 * between threads, you will need to enable this layer to prevent race 02327 * conditions. See also our Knowledge Base article about threading: 02328 * https://tls.mbed.org/kb/development/thread-safety-and-multi-threading 02329 * 02330 * Module: library/threading.c 02331 * 02332 * This allows different threading implementations (self-implemented or 02333 * provided). 02334 * 02335 * You will have to enable either MBEDTLS_THREADING_ALT or 02336 * MBEDTLS_THREADING_PTHREAD. 02337 * 02338 * Enable this layer to allow use of mutexes within mbed TLS 02339 */ 02340 //#define MBEDTLS_THREADING_C 02341 02342 /** 02343 * \def MBEDTLS_TIMING_C 02344 * 02345 * Enable the semi-portable timing interface. 02346 * 02347 * \note The provided implementation only works on POSIX/Unix (including Linux, 02348 * BSD and OS X) and Windows. On other platforms, you can either disable that 02349 * module and provide your own implementations of the callbacks needed by 02350 * \c mbedtls_ssl_set_timer_cb() for DTLS, or leave it enabled and provide 02351 * your own implementation of the whole module by setting 02352 * \c MBEDTLS_TIMING_ALT in the current file. 02353 * 02354 * \note See also our Knowledge Base article about porting to a new 02355 * environment: 02356 * https://tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS 02357 * 02358 * Module: library/timing.c 02359 * Caller: library/havege.c 02360 * 02361 * This module is used by the HAVEGE random number generator. 02362 */ 02363 //#define MBEDTLS_TIMING_C 02364 02365 /** 02366 * \def MBEDTLS_VERSION_C 02367 * 02368 * Enable run-time version information. 02369 * 02370 * Module: library/version.c 02371 * 02372 * This module provides run-time version information. 02373 */ 02374 #define MBEDTLS_VERSION_C 02375 02376 /** 02377 * \def MBEDTLS_X509_USE_C 02378 * 02379 * Enable X.509 core for using certificates. 02380 * 02381 * Module: library/x509.c 02382 * Caller: library/mbedtls_x509_crl.c 02383 * library/mbedtls_x509_crt.c 02384 * library/mbedtls_x509_csr.c 02385 * 02386 * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, 02387 * MBEDTLS_PK_PARSE_C 02388 * 02389 * This module is required for the X.509 parsing modules. 02390 */ 02391 #define MBEDTLS_X509_USE_C 02392 02393 /** 02394 * \def MBEDTLS_X509_CRT_PARSE_C 02395 * 02396 * Enable X.509 certificate parsing. 02397 * 02398 * Module: library/mbedtls_x509_crt.c 02399 * Caller: library/ssl_cli.c 02400 * library/ssl_srv.c 02401 * library/ssl_tls.c 02402 * 02403 * Requires: MBEDTLS_X509_USE_C 02404 * 02405 * This module is required for X.509 certificate parsing. 02406 */ 02407 #define MBEDTLS_X509_CRT_PARSE_C 02408 02409 /** 02410 * \def MBEDTLS_X509_CRL_PARSE_C 02411 * 02412 * Enable X.509 CRL parsing. 02413 * 02414 * Module: library/mbedtls_x509_crl.c 02415 * Caller: library/mbedtls_x509_crt.c 02416 * 02417 * Requires: MBEDTLS_X509_USE_C 02418 * 02419 * This module is required for X.509 CRL parsing. 02420 */ 02421 #define MBEDTLS_X509_CRL_PARSE_C 02422 02423 /** 02424 * \def MBEDTLS_X509_CSR_PARSE_C 02425 * 02426 * Enable X.509 Certificate Signing Request (CSR) parsing. 02427 * 02428 * Module: library/mbedtls_x509_csr.c 02429 * Caller: library/x509_crt_write.c 02430 * 02431 * Requires: MBEDTLS_X509_USE_C 02432 * 02433 * This module is used for reading X.509 certificate request. 02434 */ 02435 //#define MBEDTLS_X509_CSR_PARSE_C 02436 02437 /** 02438 * \def MBEDTLS_X509_CREATE_C 02439 * 02440 * Enable X.509 core for creating certificates. 02441 * 02442 * Module: library/x509_create.c 02443 * 02444 * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_WRITE_C 02445 * 02446 * This module is the basis for creating X.509 certificates and CSRs. 02447 */ 02448 //#define MBEDTLS_X509_CREATE_C 02449 02450 /** 02451 * \def MBEDTLS_X509_CRT_WRITE_C 02452 * 02453 * Enable creating X.509 certificates. 02454 * 02455 * Module: library/x509_crt_write.c 02456 * 02457 * Requires: MBEDTLS_X509_CREATE_C 02458 * 02459 * This module is required for X.509 certificate creation. 02460 */ 02461 //#define MBEDTLS_X509_CRT_WRITE_C 02462 02463 /** 02464 * \def MBEDTLS_X509_CSR_WRITE_C 02465 * 02466 * Enable creating X.509 Certificate Signing Requests (CSR). 02467 * 02468 * Module: library/x509_csr_write.c 02469 * 02470 * Requires: MBEDTLS_X509_CREATE_C 02471 * 02472 * This module is required for X.509 certificate request writing. 02473 */ 02474 //#define MBEDTLS_X509_CSR_WRITE_C 02475 02476 /** 02477 * \def MBEDTLS_XTEA_C 02478 * 02479 * Enable the XTEA block cipher. 02480 * 02481 * Module: library/xtea.c 02482 * Caller: 02483 */ 02484 //#define MBEDTLS_XTEA_C 02485 02486 /* \} name SECTION: mbed TLS modules */ 02487 02488 /** 02489 * \name SECTION: Module configuration options 02490 * 02491 * This section allows for the setting of module specific sizes and 02492 * configuration options. The default values are already present in the 02493 * relevant header files and should suffice for the regular use cases. 02494 * 02495 * Our advice is to enable options and change their values here 02496 * only if you have a good reason and know the consequences. 02497 * 02498 * Please check the respective header file for documentation on these 02499 * parameters (to prevent duplicate documentation). 02500 * \{ 02501 */ 02502 02503 /* MPI / BIGNUM options */ 02504 //#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */ 02505 //#define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */ 02506 02507 /* CTR_DRBG options */ 02508 //#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */ 02509 //#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */ 02510 //#define MBEDTLS_CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */ 02511 //#define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */ 02512 //#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */ 02513 02514 /* HMAC_DRBG options */ 02515 //#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */ 02516 //#define MBEDTLS_HMAC_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */ 02517 //#define MBEDTLS_HMAC_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */ 02518 //#define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */ 02519 02520 /* ECP options */ 02521 //#define MBEDTLS_ECP_MAX_BITS 521 /**< Maximum bit size of groups */ 02522 //#define MBEDTLS_ECP_WINDOW_SIZE 6 /**< Maximum window size used */ 02523 //#define MBEDTLS_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */ 02524 02525 /* Entropy options */ 02526 //#define MBEDTLS_ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */ 02527 //#define MBEDTLS_ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */ 02528 //#define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Default minimum number of bytes required for the hardware entropy source mbedtls_hardware_poll() before entropy is released */ 02529 02530 /* Memory buffer allocator options */ 02531 //#define MBEDTLS_MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */ 02532 02533 /* Platform options */ 02534 //#define MBEDTLS_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */ 02535 //#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */ 02536 //#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */ 02537 //#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */ 02538 //#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ 02539 //#define MBEDTLS_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */ 02540 //#define MBEDTLS_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */ 02541 /* Note: your snprintf must correclty zero-terminate the buffer! */ 02542 //#define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */ 02543 //#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 0 /**< Default exit value to use, can be undefined */ 02544 //#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE 1 /**< Default exit value to use, can be undefined */ 02545 //#define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */ 02546 //#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */ 02547 //#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" /**< Seed file to read/write with default implementation */ 02548 02549 /* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */ 02550 /* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */ 02551 //#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */ 02552 //#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */ 02553 //#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */ 02554 //#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ 02555 //#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */ 02556 //#define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */ 02557 //#define MBEDTLS_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */ 02558 /* Note: your snprintf must correclty zero-terminate the buffer! */ 02559 //#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */ 02560 //#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */ 02561 //#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */ 02562 02563 /* SSL Cache options */ 02564 //#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */ 02565 //#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */ 02566 02567 /* SSL options */ 02568 //#define MBEDTLS_SSL_MAX_CONTENT_LEN 16384 /**< Maxium fragment length in bytes, determines the size of each of the two internal I/O buffers */ 02569 //#define MBEDTLS_SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */ 02570 //#define MBEDTLS_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */ 02571 //#define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */ 02572 02573 /** 02574 * Complete list of ciphersuites to use, in order of preference. 02575 * 02576 * \warning No dependency checking is done on that field! This option can only 02577 * be used to restrict the set of available ciphersuites. It is your 02578 * responsibility to make sure the needed modules are active. 02579 * 02580 * Use this to save a few hundred bytes of ROM (default ordering of all 02581 * available ciphersuites) and a few to a few hundred bytes of RAM. 02582 * 02583 * The value below is only an example, not the default. 02584 */ 02585 //#define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 02586 02587 /* X509 options */ 02588 //#define MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */ 02589 //#define MBEDTLS_X509_MAX_FILE_PATH_LEN 512 /**< Maximum length of a path/filename string in bytes including the null terminator character ('\0'). */ 02590 02591 /* \} name SECTION: Customisation configuration options */ 02592 02593 /* Target and application specific configurations */ 02594 //#define YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE "mbedtls/target_config.h" 02595 02596 #if defined(TARGET_LIKE_MBED) && defined(YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE) 02597 #include YOTTA_CFG_MBEDTLS_TARGET_CONFIG_FILE 02598 #endif 02599 02600 /* 02601 * Allow user to override any previous default. 02602 * 02603 * Use two macro names for that, as: 02604 * - with yotta the prefix YOTTA_CFG_ is forced 02605 * - without yotta is looks weird to have a YOTTA prefix. 02606 */ 02607 #if defined(YOTTA_CFG_MBEDTLS_USER_CONFIG_FILE) 02608 #include YOTTA_CFG_MBEDTLS_USER_CONFIG_FILE 02609 #elif defined(MBEDTLS_USER_CONFIG_FILE) 02610 #include MBEDTLS_USER_CONFIG_FILE 02611 #endif 02612 02613 #include "check_config.h" 02614 02615 #endif /* !MBEDTLS_ENTROPY_HARDWARE_ALT && !MBEDTLS_TEST_NULL_ENTROPY */ 02616 02617 #if defined(MBEDTLS_TEST_NULL_ENTROPY) 02618 #warning "MBEDTLS_TEST_NULL_ENTROPY has been enabled. This " \ 02619 "configuration is not secure and is not suitable for production use" 02620 #endif 02621 02622 #if defined(MBEDTLS_SSL_TLS_C) && !defined(MBEDTLS_TEST_NULL_ENTROPY) && \ 02623 !defined(MBEDTLS_ENTROPY_HARDWARE_ALT) 02624 #error "No entropy source was found at build time, so TLS " \ 02625 "functionality is not available" 02626 #endif 02627 02628 #endif /* MBEDTLS_CONFIG_H */
Generated on Tue Jul 12 2022 17:34:39 by
1.7.2