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