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