Port of TI's CC3100 Websock camera demo. Using FreeRTOS, mbedTLS, also parts of Arducam for cams ov5642 and 0v2640. Can also use MT9D111. Work in progress. Be warned some parts maybe a bit flacky. This is for Seeed Arch max only, for an M3, see the demo for CM3 using the 0v5642 aducam mini.

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers config.h Source File

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