2009-01-03 22:22:43 +01:00
/**
2018-06-19 11:56:47 +02:00
* \ file config . h
2009-01-03 22:22:43 +01:00
*
2018-06-19 11:56:47 +02:00
* \ brief Configuration options ( set of defines )
2011-01-06 13:28:03 +01:00
*
2018-06-19 11:56:47 +02:00
* This set of compile - time options may be used to enable
* or disable features selectively , and reduce the global
* memory footprint .
2018-01-05 16:33:17 +01:00
*/
/*
2016-07-17 09:51:22 +02:00
* Copyright ( C ) 2006 - 2018 , ARM Limited , All Rights Reserved
2015-09-04 14:21:07 +02:00
* SPDX - License - Identifier : Apache - 2.0
2010-07-18 22:36:00 +02:00
*
2015-09-04 14:21:07 +02:00
* Licensed under the Apache License , Version 2.0 ( the " License " ) ; you may
* not use this file except in compliance with the License .
* You may obtain a copy of the License at
2009-01-04 17:27:10 +01:00
*
2015-09-04 14:21:07 +02:00
* http : //www.apache.org/licenses/LICENSE-2.0
2009-01-04 17:27:10 +01:00
*
2015-09-04 14:21:07 +02:00
* Unless required by applicable law or agreed to in writing , software
* distributed under the License is distributed on an " AS IS " BASIS , WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND , either express or implied .
* See the License for the specific language governing permissions and
* limitations under the License .
2009-01-04 17:27:10 +01:00
*
2015-09-04 14:21:07 +02:00
* This file is part of mbed TLS ( https : //tls.mbed.org)
2015-08-11 10:38:37 +02:00
*/
2015-04-08 12:49:31 +02:00
# ifndef MBEDTLS_CONFIG_H
# define MBEDTLS_CONFIG_H
2009-01-03 22:22:43 +01:00
2011-11-18 15:26:47 +01:00
# if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
2009-01-03 22:22:43 +01:00
# define _CRT_SECURE_NO_DEPRECATE 1
# endif
2011-01-27 16:24:17 +01:00
/**
2011-01-21 12:00:08 +01:00
* \ name SECTION : System support
*
* This section sets system specific settings .
* \ {
*/
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_HAVE_ASM
2011-01-27 16:24:17 +01:00
*
2013-09-20 13:45:36 +02:00
* The compiler has support for asm ( ) .
2009-04-19 23:17:55 +02:00
*
* Requires support for asm ( ) in compiler .
*
* Used in :
2018-02-27 12:20:20 +01:00
* library / aria . c
2009-04-19 23:17:55 +02:00
* library / timing . c
2015-03-09 18:05:11 +01:00
* include / mbedtls / bn_mul . h
2009-04-19 23:17:55 +02:00
*
2018-02-27 12:20:20 +01:00
* Required by :
* MBEDTLS_AESNI_C
* MBEDTLS_PADLOCK_C
*
2013-09-20 13:45:36 +02:00
* Comment to disable the use of assembly code .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_HAVE_ASM
2009-01-03 22:22:43 +01:00
2017-06-08 15:19:20 +02:00
/**
* \ def MBEDTLS_NO_UDBL_DIVISION
*
* The platform lacks support for double - width integer division ( 64 - bit
* division on a 32 - bit platform , 128 - bit division on a 64 - bit platform ) .
*
* Used in :
* include / mbedtls / bignum . h
* library / bignum . c
*
* The bignum code uses double - width division to speed up some operations .
* Double - width division is often implemented in software that needs to
* be linked with the program . The presence of a double - width integer
* type is usually detected automatically through preprocessor macros ,
* but the automatic detection cannot know whether the code needs to
* and can be linked with an implementation of division for that type .
* By default division is assumed to be usable if the type is present .
* Uncomment this option to prevent the use of double - width division .
*
* Note that division for the native integer type is always required .
* Furthermore , a 64 - bit type is always required even on a 32 - bit
2017-07-21 11:56:22 +02:00
* platform , but it need not support multiplication or division . In some
* cases it is also desirable to disable some double - width operations . For
* example , if double - width division is implemented in software , disabling
* it can reduce code size in some embedded targets .
2017-06-08 15:19:20 +02:00
*/
//#define MBEDTLS_NO_UDBL_DIVISION
2018-06-07 10:51:44 +02:00
/**
* \ def MBEDTLS_NO_64BIT_MULTIPLICATION
*
* The platform lacks support for 32 x32 - > 64 - bit multiplication .
*
* Used in :
* library / poly1305 . c
*
* Some parts of the library may use multiplication of two unsigned 32 - bit
* operands with a 64 - bit result in order to speed up computations . On some
* platforms , this is not available in hardware and has to be implemented in
* software , usually in a library provided by the toolchain .
*
* Sometimes it is not desirable to have to link to that library . This option
* removes the dependency of that library on platforms that lack a hardware
* 64 - bit multiplier by embedding a software implementation in Mbed TLS .
*
* Note that depending on the compiler , this may decrease performance compared
* to using the library function provided by the toolchain .
*/
//#define MBEDTLS_NO_64BIT_MULTIPLICATION
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_HAVE_SSE2
2011-01-27 16:24:17 +01:00
*
2012-10-01 16:42:47 +02:00
* CPU supports SSE2 instruction set .
2011-01-27 16:24:17 +01:00
*
2009-01-03 22:22:43 +01:00
* Uncomment if the CPU supports SSE2 ( IA - 32 specific ) .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_HAVE_SSE2
2013-07-03 15:31:03 +02:00
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_HAVE_TIME
*
* System has time . h and time ( ) .
* The time does not need to be correct , only time differences are used ,
* by contrast with MBEDTLS_HAVE_TIME_DATE
*
* Defining MBEDTLS_HAVE_TIME allows you to specify MBEDTLS_PLATFORM_TIME_ALT ,
* MBEDTLS_PLATFORM_TIME_MACRO , MBEDTLS_PLATFORM_TIME_TYPE_MACRO and
* MBEDTLS_PLATFORM_STD_TIME .
*
* Comment if your system does not support time functions
*/
# define MBEDTLS_HAVE_TIME
/**
* \ def MBEDTLS_HAVE_TIME_DATE
*
2018-09-05 17:18:38 +02:00
* System has time . h , time ( ) , and an implementation for
* mbedtls_platform_gmtime_r ( ) ( see below ) .
2019-01-23 15:24:37 +01:00
* The time needs to be correct ( not necessarily very accurate , but at least
2018-06-19 11:56:47 +02:00
* the date should be correct ) . This is used to verify the validity period of
* X .509 certificates .
*
* Comment if your system does not have a correct clock .
2018-08-07 21:39:27 +02:00
*
2018-09-05 16:06:19 +02:00
* \ note mbedtls_platform_gmtime_r ( ) is an abstraction in platform_util . h that
2018-09-05 17:28:59 +02:00
* behaves similarly to the gmtime_r ( ) function from the C standard . Refer to
* the documentation for mbedtls_platform_gmtime_r ( ) for more information .
2018-08-21 20:32:44 +02:00
*
* \ note It is possible to configure an implementation for
2018-09-05 16:06:19 +02:00
* mbedtls_platform_gmtime_r ( ) at compile - time by using the macro
* MBEDTLS_PLATFORM_GMTIME_R_ALT .
2018-06-19 11:56:47 +02:00
*/
# define MBEDTLS_HAVE_TIME_DATE
2014-02-04 17:30:24 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PLATFORM_MEMORY
2014-02-04 17:30:24 +01:00
*
* Enable the memory allocation layer .
*
2015-05-26 16:15:20 +02:00
* By default mbed TLS uses the system - provided calloc ( ) and free ( ) .
2014-02-04 17:30:24 +01:00
* This allows different allocators ( self - implemented or provided ) to be
* provided to the platform abstraction layer .
*
2015-04-08 12:49:31 +02:00
* Enabling MBEDTLS_PLATFORM_MEMORY without the
2015-05-26 16:15:20 +02:00
* MBEDTLS_PLATFORM_ { FREE , CALLOC } _MACROs will provide
* " mbedtls_platform_set_calloc_free() " allowing you to set an alternative calloc ( ) and
2015-02-06 17:14:34 +01:00
* free ( ) function pointer at runtime .
*
2015-04-08 12:49:31 +02:00
* Enabling MBEDTLS_PLATFORM_MEMORY and specifying
2015-05-26 16:15:20 +02:00
* MBEDTLS_PLATFORM_ { CALLOC , FREE } _MACROs will allow you to specify the
2015-02-06 17:14:34 +01:00
* alternate function at compile time .
2014-02-04 17:30:24 +01:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_PLATFORM_C
2014-02-04 17:30:24 +01:00
*
* Enable this layer to allow use of alternative memory allocators .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_MEMORY
2014-02-04 17:30:24 +01:00
2014-04-25 11:11:10 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
2014-04-25 11:11:10 +02:00
*
2015-05-26 16:15:20 +02:00
* Do not assign standard functions in the platform layer ( e . g . calloc ( ) to
* MBEDTLS_PLATFORM_STD_CALLOC and printf ( ) to MBEDTLS_PLATFORM_STD_PRINTF )
2014-04-25 11:11:10 +02:00
*
* This makes sure there are no linking errors on platforms that do not support
* these functions . You will HAVE to provide alternatives , either at runtime
* via the platform_set_xxx ( ) functions or at compile time by setting
2015-04-08 12:49:31 +02:00
* the MBEDTLS_PLATFORM_STD_XXX defines , or enabling a
* MBEDTLS_PLATFORM_XXX_MACRO .
2014-04-25 11:11:10 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_PLATFORM_C
2014-04-25 11:11:10 +02:00
*
* Uncomment to prevent default assignment of standard functions in the
* platform layer .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
2014-04-25 11:11:10 +02:00
2014-02-01 22:50:07 +01:00
/**
2016-03-21 09:43:59 +01:00
* \ def MBEDTLS_PLATFORM_EXIT_ALT
2014-02-01 22:50:07 +01:00
*
2016-01-04 13:51:01 +01:00
* MBEDTLS_PLATFORM_XXX_ALT : Uncomment a macro to let mbed TLS support the
* function in the platform abstraction layer .
2014-02-01 22:50:07 +01:00
*
2015-04-08 12:49:31 +02:00
* Example : In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT , mbed TLS will
* provide a function " mbedtls_platform_set_printf() " that allows you to set an
2014-02-01 22:50:07 +01:00
* alternative printf function pointer .
*
2015-04-08 12:49:31 +02:00
* All these define require MBEDTLS_PLATFORM_C to be defined !
2014-02-01 22:50:07 +01:00
*
2015-06-26 10:52:01 +02:00
* \ note MBEDTLS_PLATFORM_SNPRINTF_ALT is required on Windows ;
* it will be enabled automatically by check_config . h
*
2015-06-22 10:23:34 +02:00
* \ warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as
2015-04-08 12:49:31 +02:00
* MBEDTLS_PLATFORM_XXX_MACRO !
2015-02-06 17:14:34 +01:00
*
2018-06-19 11:56:47 +02:00
* Requires : MBEDTLS_PLATFORM_TIME_ALT requires MBEDTLS_HAVE_TIME
*
2014-02-01 22:50:07 +01:00
* Uncomment a macro to enable alternate implementation of specific base
* platform function
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_EXIT_ALT
2018-06-19 11:56:47 +02:00
//#define MBEDTLS_PLATFORM_TIME_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_FPRINTF_ALT
//#define MBEDTLS_PLATFORM_PRINTF_ALT
//#define MBEDTLS_PLATFORM_SNPRINTF_ALT
2018-07-16 14:27:07 +02:00
//#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
2016-06-01 12:25:44 +02:00
//#define MBEDTLS_PLATFORM_NV_SEED_ALT
2017-07-18 11:23:04 +02:00
//#define MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
2015-03-23 13:58:27 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_DEPRECATED_WARNING
2015-03-23 13:58:27 +01:00
*
* Mark deprecated functions so that they generate a warning if used .
* Functions deprecated in one version will usually be removed in the next
* version . You can enable this to help you prepare the transition to a new
* major version by making sure your code is not using these functions .
*
* This only works with GCC and Clang . With other compilers , you may want to
2015-04-08 12:49:31 +02:00
* use MBEDTLS_DEPRECATED_REMOVED
2015-03-23 13:58:27 +01:00
*
* Uncomment to get warnings on using deprecated functions .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_DEPRECATED_WARNING
2015-03-23 13:58:27 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_DEPRECATED_REMOVED
2015-03-23 13:58:27 +01:00
*
* Remove deprecated functions so that they generate an error if used .
* Functions deprecated in one version will usually be removed in the next
* version . You can enable this to help you prepare the transition to a new
* major version by making sure your code is not using these functions .
*
* Uncomment to get errors on using deprecated functions .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_DEPRECATED_REMOVED
2015-03-23 13:58:27 +01:00
2019-01-31 14:20:20 +01:00
/**
* \ def MBEDTLS_CHECK_PARAMS
*
* This configuration option controls whether the library validates more of
* the parameters passed to it .
*
* When this flag is not defined , the library only attempts to validate an
* input parameter if : ( 1 ) they may come from the outside world ( such as the
* network , the filesystem , etc . ) or ( 2 ) not validating them could result in
* internal memory errors such as overflowing a buffer controlled by the
* library . On the other hand , it doesn ' t attempt to validate parameters whose
* values are fully controlled by the application ( such as pointers ) .
*
* When this flag is defined , the library additionally attempts to validate
* parameters that are fully controlled by the application , and should always
* be valid if the application code is fully correct and trusted .
*
* For example , when a function accepts as input a pointer to a buffer that may
* contain untrusted data , and its documentation mentions that this pointer
* must not be NULL :
* - the pointer is checked to be non - NULL only if this option is enabled
* - the content of the buffer is always validated
*
* When this flag is defined , if a library function receives a parameter that
* is invalid , it will :
* - invoke the macro MBEDTLS_PARAM_FAILED ( ) which by default expands to a
* call to the function mbedtls_param_failed ( )
* - immediately return ( with a specific error code unless the function
* returns void and can ' t communicate an error ) .
*
* When defining this flag , you also need to :
* - either provide a definition of the function mbedtls_param_failed ( ) in
* your application ( see platform_util . h for its prototype ) as the library
* calls that function , but does not provide a default definition for it ,
* - or provide a different definition of the macro MBEDTLS_PARAM_FAILED ( )
* below if the above mechanism is not flexible enough to suit your needs .
* See the documentation of this macro later in this file .
*
* Uncomment to enable validation of application - controlled parameters .
*/
//#define MBEDTLS_CHECK_PARAMS
2013-09-20 13:45:36 +02:00
/* \} name SECTION: System support */
2011-01-21 12:00:08 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-01-22 17:11:05 +01:00
* \ name SECTION : mbed TLS feature support
2011-01-21 12:00:08 +01:00
*
* This section sets support for features that are or are not needed
* within the modules that are enabled .
* \ {
*/
2009-01-03 22:22:43 +01:00
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_TIMING_ALT
*
* Uncomment to provide your own alternate implementation for mbedtls_timing_hardclock ( ) ,
* mbedtls_timing_get_timer ( ) , mbedtls_set_alarm ( ) , mbedtls_set / get_delay ( )
*
* Only works if you have MBEDTLS_TIMING_C enabled .
*
* You will need to provide a header " timing_alt.h " and an implementation at
* compile time .
*/
//#define MBEDTLS_TIMING_ALT
2013-06-24 19:20:35 +02:00
/**
2016-01-04 13:51:01 +01:00
* \ def MBEDTLS_AES_ALT
2013-06-24 19:20:35 +02:00
*
2016-01-04 13:51:01 +01:00
* MBEDTLS__MODULE_NAME__ALT : Uncomment a macro to let mbed TLS use your
2016-08-18 13:38:46 +02:00
* alternate core implementation of a symmetric crypto , an arithmetic or hash
* module ( e . g . platform specific assembly optimized implementations ) . Keep
* in mind that the function prototypes should remain the same .
2013-06-24 19:20:35 +02:00
*
2015-03-31 18:32:50 +02:00
* This replaces the whole module . If you only want to replace one of the
2015-04-08 12:49:31 +02:00
* functions , use one of the MBEDTLS__FUNCTION_NAME__ALT flags .
2015-03-31 18:32:50 +02:00
*
2015-04-08 12:49:31 +02:00
* Example : In case you uncomment MBEDTLS_AES_ALT , mbed TLS will no longer
2016-11-07 16:41:26 +01:00
* provide the " struct mbedtls_aes_context " definition and omit the base
* function declarations and implementations . " aes_alt.h " will be included from
2013-06-24 19:20:35 +02:00
* " aes.h " to include the new function definitions .
*
2015-03-31 18:32:50 +02:00
* Uncomment a macro to enable alternate implementation of the corresponding
* module .
2017-09-25 15:53:51 +02:00
*
* \ warning MD2 , MD4 , MD5 , ARC4 , DES and SHA - 1 are considered weak and their
* use constitutes a security risk . If possible , we recommend
* avoiding dependencies on them , and considering stronger message
* digests and ciphers instead .
*
2013-06-24 19:20:35 +02:00
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_AES_ALT
//#define MBEDTLS_ARC4_ALT
2017-12-01 16:41:38 +01:00
//#define MBEDTLS_ARIA_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_BLOWFISH_ALT
//#define MBEDTLS_CAMELLIA_ALT
2017-04-04 11:37:15 +02:00
//#define MBEDTLS_CCM_ALT
2016-05-15 22:28:08 +02:00
//#define MBEDTLS_CHACHA20_ALT
2018-06-04 12:23:19 +02:00
//#define MBEDTLS_CHACHAPOLY_ALT
2017-04-04 11:47:16 +02:00
//#define MBEDTLS_CMAC_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_DES_ALT
2018-01-09 17:43:21 +01:00
//#define MBEDTLS_DHM_ALT
2018-01-24 11:25:05 +01:00
//#define MBEDTLS_ECJPAKE_ALT
2017-09-21 13:53:48 +02:00
//#define MBEDTLS_GCM_ALT
2018-05-03 15:54:28 +02:00
//#define MBEDTLS_NIST_KW_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_MD2_ALT
//#define MBEDTLS_MD4_ALT
//#define MBEDTLS_MD5_ALT
2016-05-16 23:25:45 +02:00
//#define MBEDTLS_POLY1305_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_RIPEMD160_ALT
2018-01-04 19:26:54 +01:00
//#define MBEDTLS_RSA_ALT
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_SHA1_ALT
//#define MBEDTLS_SHA256_ALT
//#define MBEDTLS_SHA512_ALT
2018-01-04 19:26:54 +01:00
//#define MBEDTLS_XTEA_ALT
2017-12-01 16:41:38 +01:00
2016-08-18 13:38:46 +02:00
/*
* When replacing the elliptic curve module , pleace consider , that it is
* implemented with two . c files :
* - ecp . c
* - ecp_curves . c
2016-11-07 16:41:26 +01:00
* You can replace them very much like all the other MBEDTLS__MODULE_NAME__ALT
* macros as described above . The only difference is that you have to make sure
* that you provide functionality for both . c files .
2016-08-18 13:38:46 +02:00
*/
//#define MBEDTLS_ECP_ALT
2013-06-24 19:20:35 +02:00
2015-03-31 18:32:50 +02:00
/**
2016-01-04 13:51:01 +01:00
* \ def MBEDTLS_MD2_PROCESS_ALT
2015-03-31 18:32:50 +02:00
*
2016-01-04 13:51:01 +01:00
* MBEDTLS__FUNCTION_NAME__ALT : Uncomment a macro to let mbed TLS use you
* alternate core implementation of symmetric crypto or hash function . Keep in
* mind that function prototypes should remain the same .
2015-03-31 18:32:50 +02:00
*
* This replaces only one function . The header file from mbed TLS is still
2015-04-08 12:49:31 +02:00
* used , in contrast to the MBEDTLS__MODULE_NAME__ALT flags .
2015-03-31 18:32:50 +02:00
*
2015-04-08 12:49:31 +02:00
* Example : In case you uncomment MBEDTLS_SHA256_PROCESS_ALT , mbed TLS will
* no longer provide the mbedtls_sha1_process ( ) function , but it will still provide
* the other function ( using your mbedtls_sha1_process ( ) function ) and the definition
* of mbedtls_sha1_context , so your implementation of mbedtls_sha1_process must be compatible
2015-03-31 18:32:50 +02:00
* with this definition .
*
2017-06-26 13:46:19 +02:00
* \ note Because of a signature change , the core AES encryption and decryption routines are
* currently named mbedtls_aes_internal_encrypt and mbedtls_aes_internal_decrypt ,
* respectively . When setting up alternative implementations , these functions should
2019-01-23 15:24:37 +01:00
* be overridden , but the wrapper functions mbedtls_aes_decrypt and mbedtls_aes_encrypt
2017-07-20 10:50:59 +02:00
* must stay untouched .
2017-06-26 13:46:19 +02:00
*
* \ note If you use the AES_xxx_ALT macros , then is is recommended to also set
* MBEDTLS_AES_ROM_TABLES in order to help the linker garbage - collect the AES
* tables .
2015-05-12 15:41:08 +02:00
*
2015-03-31 18:32:50 +02:00
* Uncomment a macro to enable alternate implementation of the corresponding
* function .
2017-09-25 15:53:51 +02:00
*
* \ warning MD2 , MD4 , MD5 , DES and SHA - 1 are considered weak and their use
* constitutes a security risk . If possible , we recommend avoiding
* dependencies on them , and considering stronger message digests
* and ciphers instead .
*
2015-03-31 18:32:50 +02:00
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_MD2_PROCESS_ALT
//#define MBEDTLS_MD4_PROCESS_ALT
//#define MBEDTLS_MD5_PROCESS_ALT
//#define MBEDTLS_RIPEMD160_PROCESS_ALT
//#define MBEDTLS_SHA1_PROCESS_ALT
//#define MBEDTLS_SHA256_PROCESS_ALT
//#define MBEDTLS_SHA512_PROCESS_ALT
2015-05-12 15:02:45 +02:00
//#define MBEDTLS_DES_SETKEY_ALT
//#define MBEDTLS_DES_CRYPT_ECB_ALT
//#define MBEDTLS_DES3_CRYPT_ECB_ALT
2015-05-12 15:41:08 +02:00
//#define MBEDTLS_AES_SETKEY_ENC_ALT
//#define MBEDTLS_AES_SETKEY_DEC_ALT
//#define MBEDTLS_AES_ENCRYPT_ALT
//#define MBEDTLS_AES_DECRYPT_ALT
2017-10-10 18:04:27 +02:00
//#define MBEDTLS_ECDH_GEN_PUBLIC_ALT
2017-10-12 13:17:48 +02:00
//#define MBEDTLS_ECDH_COMPUTE_SHARED_ALT
2017-10-10 17:28:25 +02:00
//#define MBEDTLS_ECDSA_VERIFY_ALT
//#define MBEDTLS_ECDSA_SIGN_ALT
//#define MBEDTLS_ECDSA_GENKEY_ALT
2015-03-31 18:32:50 +02:00
2016-08-18 13:38:46 +02:00
/**
2016-11-18 17:38:23 +01:00
* \ def MBEDTLS_ECP_INTERNAL_ALT
*
* Expose a part of the internal interface of the Elliptic Curve Point module .
2016-08-18 13:38:46 +02:00
*
* MBEDTLS_ECP__FUNCTION_NAME__ALT : Uncomment a macro to let mbed TLS use your
2016-10-28 17:53:11 +02:00
* alternative core implementation of elliptic curve arithmetic . Keep in mind
* that function prototypes should remain the same .
2016-08-18 13:38:46 +02:00
*
* This partially replaces one function . The header file from mbed TLS is still
* used , in contrast to the MBEDTLS_ECP_ALT flag . The original implementation
* is still present and it is used for group structures not supported by the
* alternative .
*
2016-11-18 17:38:23 +01:00
* Any of these options become available by defining MBEDTLS_ECP_INTERNAL_ALT
* and implementing the following functions :
* unsigned char mbedtls_internal_ecp_grp_capable (
* const mbedtls_ecp_group * grp )
* int mbedtls_internal_ecp_init ( const mbedtls_ecp_group * grp )
2018-12-07 11:39:00 +01:00
* void mbedtls_internal_ecp_free ( const mbedtls_ecp_group * grp )
2016-11-18 17:38:23 +01:00
* The mbedtls_internal_ecp_grp_capable function should return 1 if the
* replacement functions implement arithmetic for the given group and 0
* otherwise .
2018-12-07 11:39:00 +01:00
* The functions mbedtls_internal_ecp_init and mbedtls_internal_ecp_free are
2016-11-18 17:38:23 +01:00
* called before and after each point operation and provide an opportunity to
* implement optimized set up and tear down instructions .
*
* Example : In case you uncomment MBEDTLS_ECP_INTERNAL_ALT and
2016-11-01 14:27:03 +01:00
* MBEDTLS_ECP_DOUBLE_JAC_ALT , mbed TLS will still provide the ecp_double_jac
2016-11-18 17:38:23 +01:00
* function , but will use your mbedtls_internal_ecp_double_jac if the group is
* supported ( your mbedtls_internal_ecp_grp_capable function returns 1 when
* receives it as an argument ) . If the group is not supported then the original
2016-11-07 16:41:26 +01:00
* implementation is used . The other functions and the definition of
* mbedtls_ecp_group and mbedtls_ecp_point will not change , so your
2016-11-18 17:38:23 +01:00
* implementation of mbedtls_internal_ecp_double_jac and
* mbedtls_internal_ecp_grp_capable must be compatible with this definition .
2016-08-18 13:38:46 +02:00
*
* Uncomment a macro to enable alternate implementation of the corresponding
* function .
*/
/* Required for all the functions in this section */
2016-11-18 17:38:23 +01:00
//#define MBEDTLS_ECP_INTERNAL_ALT
2016-08-18 13:38:46 +02:00
/* Support for Weierstrass curves with Jacobi representation */
//#define MBEDTLS_ECP_RANDOMIZE_JAC_ALT
//#define MBEDTLS_ECP_ADD_MIXED_ALT
//#define MBEDTLS_ECP_DOUBLE_JAC_ALT
//#define MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT
//#define MBEDTLS_ECP_NORMALIZE_JAC_ALT
/* Support for curves with Montgomery arithmetic */
//#define MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT
//#define MBEDTLS_ECP_RANDOMIZE_MXZ_ALT
//#define MBEDTLS_ECP_NORMALIZE_MXZ_ALT
2016-06-08 16:29:18 +02:00
/**
2016-06-11 03:31:21 +02:00
* \ def MBEDTLS_TEST_NULL_ENTROPY
2016-06-08 16:29:18 +02:00
*
2016-06-11 03:31:21 +02:00
* Enables testing and use of mbed TLS without any configured entropy sources .
* This permits use of the library on platforms before an entropy source has
* been integrated ( see for example the MBEDTLS_ENTROPY_HARDWARE_ALT or the
* MBEDTLS_ENTROPY_NV_SEED switches ) .
2016-06-08 16:29:18 +02:00
*
2016-06-11 03:31:21 +02:00
* WARNING ! This switch MUST be disabled in production builds , and is suitable
* only for development .
* Enabling the switch negates any security provided by the library .
2016-06-09 14:54:15 +02:00
*
2016-06-11 03:31:21 +02:00
* Requires MBEDTLS_ENTROPY_C , MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
2016-06-08 16:29:18 +02:00
*
*/
2016-06-11 03:31:21 +02:00
//#define MBEDTLS_TEST_NULL_ENTROPY
2016-06-08 16:29:18 +02:00
2015-06-19 10:06:21 +02:00
/**
2015-06-22 12:14:20 +02:00
* \ def MBEDTLS_ENTROPY_HARDWARE_ALT
2015-06-19 10:06:21 +02:00
*
* Uncomment this macro to let mbed TLS use your own implementation of a
* hardware entropy collector .
*
* Your function must be called \ c mbedtls_hardware_poll ( ) , have the same
* prototype as declared in entropy_poll . h , and accept NULL as first argument .
*
* Uncomment to use your own hardware entropy collector .
*/
//#define MBEDTLS_ENTROPY_HARDWARE_ALT
2011-04-24 23:19:15 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_AES_ROM_TABLES
2011-04-24 23:19:15 +02:00
*
2017-06-07 16:52:48 +02:00
* Use precomputed AES tables stored in ROM .
*
* Uncomment this macro to use precomputed AES tables stored in ROM .
* Comment this macro to generate AES tables in RAM at runtime .
*
2018-03-27 17:52:03 +02:00
* Tradeoff : Using precomputed ROM tables reduces RAM usage by ~ 8 kb
* ( or ~ 2 kb if \ c MBEDTLS_AES_FEWER_TABLES is used ) and reduces the
2018-03-28 12:42:05 +02:00
* initialization time before the first AES operation can be performed .
* It comes at the cost of additional ~ 8 kb ROM use ( resp . ~ 2 kb if \ c
* MBEDTLS_AES_FEWER_TABLES below is used ) , and potentially degraded
* performance if ROM access is slower than RAM access .
2017-06-07 16:52:48 +02:00
*
* This option is independent of \ c MBEDTLS_AES_FEWER_TABLES .
2011-04-24 23:19:15 +02:00
*
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_AES_ROM_TABLES
2011-04-24 23:19:15 +02:00
Add option to use smaller AES tables (table sizes reduced by 6144 bytes)
This patch adds MBEDTLS_AES_SMALL_TABLES option to reduce number of AES
look-up tables and thus save 6 KiB of memory. Enabling this option
cause performance hit MBEDTLS_AES_SMALL_TABLES of ~7% on ARM and ~15%
on x86-64.
Benchmark on Cortex-A7 (armhf):
Before:
AES-CBC-128 : 14394 Kb/s, 0 cycles/byte
AES-CBC-192 : 12442 Kb/s, 0 cycles/byte
AES-CBC-256 : 10958 Kb/s, 0 cycles/byte
After:
AES-CBC-128 : 13342 Kb/s, 0 cycles/byte
AES-CBC-192 : 11469 Kb/s, 0 cycles/byte
AES-CBC-256 : 10058 Kb/s, 0 cycles/byte
Benchmark on Intel Core i5-4570 (x86_64, 3.2 Ghz, no turbo):
Before:
AES-CBC-128 : 215759 Kb/s, 14 cycles/byte
AES-CBC-192 : 190884 Kb/s, 16 cycles/byte
AES-CBC-256 : 171536 Kb/s, 18 cycles/byte
After:
AES-CBC-128 : 185108 Kb/s, 16 cycles/byte
AES-CBC-192 : 162839 Kb/s, 19 cycles/byte
AES-CBC-256 : 144700 Kb/s, 21 cycles/byte
2015-11-12 15:38:31 +01:00
/**
2017-06-07 16:52:48 +02:00
* \ def MBEDTLS_AES_FEWER_TABLES
*
* Use less ROM / RAM for AES tables .
*
* Uncommenting this macro omits 75 % of the AES tables from
* ROM / RAM ( depending on the value of \ c MBEDTLS_AES_ROM_TABLES )
* by computing their values on the fly during operations
* ( the tables are entry - wise rotations of one another ) .
*
* Tradeoff : Uncommenting this reduces the RAM / ROM footprint
2017-06-19 17:33:58 +02:00
* by ~ 6 kb but at the cost of more arithmetic operations during
2017-06-07 16:52:48 +02:00
* runtime . Specifically , one has to compare 4 accesses within
* different tables to 4 accesses with additional arithmetic
* operations within the same table . The performance gain / loss
* depends on the system and memory details .
Add option to use smaller AES tables (table sizes reduced by 6144 bytes)
This patch adds MBEDTLS_AES_SMALL_TABLES option to reduce number of AES
look-up tables and thus save 6 KiB of memory. Enabling this option
cause performance hit MBEDTLS_AES_SMALL_TABLES of ~7% on ARM and ~15%
on x86-64.
Benchmark on Cortex-A7 (armhf):
Before:
AES-CBC-128 : 14394 Kb/s, 0 cycles/byte
AES-CBC-192 : 12442 Kb/s, 0 cycles/byte
AES-CBC-256 : 10958 Kb/s, 0 cycles/byte
After:
AES-CBC-128 : 13342 Kb/s, 0 cycles/byte
AES-CBC-192 : 11469 Kb/s, 0 cycles/byte
AES-CBC-256 : 10058 Kb/s, 0 cycles/byte
Benchmark on Intel Core i5-4570 (x86_64, 3.2 Ghz, no turbo):
Before:
AES-CBC-128 : 215759 Kb/s, 14 cycles/byte
AES-CBC-192 : 190884 Kb/s, 16 cycles/byte
AES-CBC-256 : 171536 Kb/s, 18 cycles/byte
After:
AES-CBC-128 : 185108 Kb/s, 16 cycles/byte
AES-CBC-192 : 162839 Kb/s, 19 cycles/byte
AES-CBC-256 : 144700 Kb/s, 21 cycles/byte
2015-11-12 15:38:31 +01:00
*
2017-06-07 16:52:48 +02:00
* This option is independent of \ c MBEDTLS_AES_ROM_TABLES .
Add option to use smaller AES tables (table sizes reduced by 6144 bytes)
This patch adds MBEDTLS_AES_SMALL_TABLES option to reduce number of AES
look-up tables and thus save 6 KiB of memory. Enabling this option
cause performance hit MBEDTLS_AES_SMALL_TABLES of ~7% on ARM and ~15%
on x86-64.
Benchmark on Cortex-A7 (armhf):
Before:
AES-CBC-128 : 14394 Kb/s, 0 cycles/byte
AES-CBC-192 : 12442 Kb/s, 0 cycles/byte
AES-CBC-256 : 10958 Kb/s, 0 cycles/byte
After:
AES-CBC-128 : 13342 Kb/s, 0 cycles/byte
AES-CBC-192 : 11469 Kb/s, 0 cycles/byte
AES-CBC-256 : 10058 Kb/s, 0 cycles/byte
Benchmark on Intel Core i5-4570 (x86_64, 3.2 Ghz, no turbo):
Before:
AES-CBC-128 : 215759 Kb/s, 14 cycles/byte
AES-CBC-192 : 190884 Kb/s, 16 cycles/byte
AES-CBC-256 : 171536 Kb/s, 18 cycles/byte
After:
AES-CBC-128 : 185108 Kb/s, 16 cycles/byte
AES-CBC-192 : 162839 Kb/s, 19 cycles/byte
AES-CBC-256 : 144700 Kb/s, 21 cycles/byte
2015-11-12 15:38:31 +01:00
*
*/
2017-06-07 16:52:48 +02:00
//#define MBEDTLS_AES_FEWER_TABLES
Add option to use smaller AES tables (table sizes reduced by 6144 bytes)
This patch adds MBEDTLS_AES_SMALL_TABLES option to reduce number of AES
look-up tables and thus save 6 KiB of memory. Enabling this option
cause performance hit MBEDTLS_AES_SMALL_TABLES of ~7% on ARM and ~15%
on x86-64.
Benchmark on Cortex-A7 (armhf):
Before:
AES-CBC-128 : 14394 Kb/s, 0 cycles/byte
AES-CBC-192 : 12442 Kb/s, 0 cycles/byte
AES-CBC-256 : 10958 Kb/s, 0 cycles/byte
After:
AES-CBC-128 : 13342 Kb/s, 0 cycles/byte
AES-CBC-192 : 11469 Kb/s, 0 cycles/byte
AES-CBC-256 : 10058 Kb/s, 0 cycles/byte
Benchmark on Intel Core i5-4570 (x86_64, 3.2 Ghz, no turbo):
Before:
AES-CBC-128 : 215759 Kb/s, 14 cycles/byte
AES-CBC-192 : 190884 Kb/s, 16 cycles/byte
AES-CBC-256 : 171536 Kb/s, 18 cycles/byte
After:
AES-CBC-128 : 185108 Kb/s, 16 cycles/byte
AES-CBC-192 : 162839 Kb/s, 19 cycles/byte
AES-CBC-256 : 144700 Kb/s, 21 cycles/byte
2015-11-12 15:38:31 +01:00
2015-04-03 16:28:19 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CAMELLIA_SMALL_MEMORY
2015-04-03 16:28:19 +02:00
*
* Use less ROM for the Camellia implementation ( saves about 768 bytes ) .
*
* Uncomment this macro to use less memory for Camellia .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_CAMELLIA_SMALL_MEMORY
2015-04-03 16:28:19 +02:00
2013-09-13 14:10:44 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CIPHER_MODE_CBC
2013-09-13 14:10:44 +02:00
*
* Enable Cipher Block Chaining mode ( CBC ) for symmetric ciphers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CIPHER_MODE_CBC
2013-09-13 14:10:44 +02:00
2011-04-19 16:29:23 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CIPHER_MODE_CFB
2011-04-19 16:29:23 +02:00
*
* Enable Cipher Feedback mode ( CFB ) for symmetric ciphers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CIPHER_MODE_CFB
2011-04-19 16:29:23 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CIPHER_MODE_CTR
2011-04-19 16:29:23 +02:00
*
* Enable Counter Block Cipher mode ( CTR ) for symmetric ciphers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CIPHER_MODE_CTR
2011-04-19 16:29:23 +02:00
/**
2018-06-14 12:38:50 +02:00
* \ def MBEDTLS_CIPHER_MODE_OFB
2011-04-19 16:29:23 +02:00
*
2018-06-14 12:38:50 +02:00
* Enable Output Feedback mode ( OFB ) for symmetric ciphers .
2011-04-19 16:29:23 +02:00
*/
2018-06-14 12:38:50 +02:00
# define MBEDTLS_CIPHER_MODE_OFB
2011-04-19 16:29:23 +02:00
/**
2018-06-14 12:38:50 +02:00
* \ def MBEDTLS_CIPHER_MODE_XTS
2011-04-19 16:29:23 +02:00
*
2018-06-14 12:38:50 +02:00
* Enable Xor - encrypt - xor with ciphertext stealing mode ( XTS ) for AES .
2011-04-19 16:29:23 +02:00
*/
2018-06-14 12:38:50 +02:00
# define MBEDTLS_CIPHER_MODE_XTS
2011-04-19 16:29:23 +02:00
2012-02-06 17:45:10 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CIPHER_NULL_CIPHER
2012-02-06 17:45:10 +01:00
*
* Enable NULL cipher .
* Warning : Only do so when you know what you are doing . This allows for
* encryption or channels without any security !
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_ECDH_ECDSA_WITH_NULL_SHA
* TLS_ECDH_RSA_WITH_NULL_SHA
* TLS_ECDHE_ECDSA_WITH_NULL_SHA
* TLS_ECDHE_RSA_WITH_NULL_SHA
* TLS_ECDHE_PSK_WITH_NULL_SHA384
* TLS_ECDHE_PSK_WITH_NULL_SHA256
* TLS_ECDHE_PSK_WITH_NULL_SHA
* TLS_DHE_PSK_WITH_NULL_SHA384
* TLS_DHE_PSK_WITH_NULL_SHA256
* TLS_DHE_PSK_WITH_NULL_SHA
* TLS_RSA_WITH_NULL_SHA256
* TLS_RSA_WITH_NULL_SHA
* TLS_RSA_WITH_NULL_MD5
* TLS_RSA_PSK_WITH_NULL_SHA384
* TLS_RSA_PSK_WITH_NULL_SHA256
* TLS_RSA_PSK_WITH_NULL_SHA
* TLS_PSK_WITH_NULL_SHA384
* TLS_PSK_WITH_NULL_SHA256
* TLS_PSK_WITH_NULL_SHA
*
* Uncomment this macro to enable the NULL cipher
2012-02-06 17:45:10 +01:00
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_CIPHER_NULL_CIPHER
2012-02-06 17:45:10 +01:00
2013-08-14 12:21:18 +02:00
/**
2016-01-04 13:51:01 +01:00
* \ def MBEDTLS_CIPHER_PADDING_PKCS7
2013-08-14 12:21:18 +02:00
*
2016-01-04 13:51:01 +01:00
* MBEDTLS_CIPHER_PADDING_XXX : Uncomment or comment macros to add support for
* specific padding modes in the cipher layer with cipher modes that support
* padding ( e . g . CBC )
2013-08-14 12:21:18 +02:00
*
* If you disable all padding modes , only full blocks can be used with CBC .
*
* Enable padding modes in the cipher layer .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CIPHER_PADDING_PKCS7
# define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
# define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
# define MBEDTLS_CIPHER_PADDING_ZEROS
2013-08-14 12:21:18 +02:00
2013-06-29 23:26:34 +02:00
/**
2016-01-04 13:51:01 +01:00
* \ def MBEDTLS_ECP_DP_SECP192R1_ENABLED
2013-06-29 23:26:34 +02:00
*
2016-01-04 13:51:01 +01:00
* MBEDTLS_ECP_XXXX_ENABLED : Enables specific curves within the Elliptic Curve
* module . By default all supported curves are enabled .
2013-06-29 23:26:34 +02:00
*
* Comment macros to disable the curve and functions for it
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECP_DP_SECP192R1_ENABLED
# define MBEDTLS_ECP_DP_SECP224R1_ENABLED
# define MBEDTLS_ECP_DP_SECP256R1_ENABLED
# define MBEDTLS_ECP_DP_SECP384R1_ENABLED
# define MBEDTLS_ECP_DP_SECP521R1_ENABLED
# define MBEDTLS_ECP_DP_SECP192K1_ENABLED
# define MBEDTLS_ECP_DP_SECP224K1_ENABLED
# define MBEDTLS_ECP_DP_SECP256K1_ENABLED
# define MBEDTLS_ECP_DP_BP256R1_ENABLED
# define MBEDTLS_ECP_DP_BP384R1_ENABLED
# define MBEDTLS_ECP_DP_BP512R1_ENABLED
2015-06-23 00:18:41 +02:00
# define MBEDTLS_ECP_DP_CURVE25519_ENABLED
2015-11-10 14:10:01 +01:00
# define MBEDTLS_ECP_DP_CURVE448_ENABLED
2015-04-08 12:49:31 +02:00
/**
* \ def MBEDTLS_ECP_NIST_OPTIM
2013-10-23 16:11:52 +02:00
*
* Enable specific ' modulo p ' routines for each NIST prime .
* Depending on the prime and architecture , makes operations 4 to 8 times
* faster on the corresponding curve .
*
* Comment this macro to disable NIST curves optimisation .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECP_NIST_OPTIM
2013-10-23 16:11:52 +02:00
2017-03-22 11:17:51 +01:00
/**
2017-04-20 15:50:26 +02:00
* \ def MBEDTLS_ECP_RESTARTABLE
2017-03-22 11:17:51 +01:00
*
* Enable " non-blocking " ECC operations that can return early and be resumed .
*
2018-10-15 13:22:41 +02:00
* This allows various functions to pause by returning
2018-11-02 19:40:14 +01:00
* # MBEDTLS_ERR_ECP_IN_PROGRESS ( or , for functions in Mbed TLS ' s SSL module ,
* MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS ) and then be called later again in order
* to further progress and eventually complete their operation . This is
* controlled through mbedtls_ecp_set_max_ops ( ) which limits the maximum number
* of ECC operations a function may perform before pausing ; see
2018-10-15 13:22:41 +02:00
* mbedtls_ecp_set_max_ops ( ) for more information .
2017-03-22 11:17:51 +01:00
*
2017-08-23 10:02:51 +02:00
* This is useful in non - threaded environments if you want to avoid blocking
2018-10-15 13:22:41 +02:00
* for too long on ECC ( and , hence , X .509 or SSL / TLS ) operations .
2017-03-22 11:17:51 +01:00
*
2017-08-15 14:30:59 +02:00
* Uncomment this macro to enable restartable ECC computations .
2018-11-05 13:04:26 +01:00
*
2018-11-05 15:58:13 +01:00
* \ note This option only works with the default software implementation of
* elliptic curve functionality . It is incompatible with
2019-02-22 12:14:02 +01:00
* MBEDTLS_ECP_ALT , MBEDTLS_ECDH_XXX_ALT , MBEDTLS_ECDSA_XXX_ALT
* and MBEDTLS_ECDH_LEGACY_CONTEXT .
2017-03-22 11:17:51 +01:00
*/
2017-08-15 14:30:59 +02:00
//#define MBEDTLS_ECP_RESTARTABLE
2017-03-22 11:17:51 +01:00
2019-02-22 12:14:02 +01:00
/**
* \ def MBEDTLS_ECDH_LEGACY_CONTEXT
*
* Use a backward compatible ECDH context .
*
* Mbed TLS supports two formats for ECDH contexts ( # mbedtls_ecdh_context
* defined in ` ecdh . h ` ) . For most applications , the choice of format makes
* no difference , since all library functions can work with either format ,
* except that the new format is incompatible with MBEDTLS_ECP_RESTARTABLE .
* The new format used when this option is disabled is smaller
* ( 56 bytes on a 32 - bit platform ) . In future versions of the library , it
* will support alternative implementations of ECDH operations .
* The new format is incompatible with applications that access
* context fields directly and with restartable ECP operations .
*
* Define this macro if you enable MBEDTLS_ECP_RESTARTABLE or if you
* want to access ECDH context fields directly . Otherwise you should
* comment out this macro definition .
*
* This option has no effect if # MBEDTLS_ECDH_C is not enabled .
*
* \ note This configuration option is experimental . Future versions of the
* library may modify the way the ECDH context layout is configured
* and may modify the layout of the new context type .
*/
# define MBEDTLS_ECDH_LEGACY_CONTEXT
2014-01-06 10:16:28 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ECDSA_DETERMINISTIC
2014-01-06 10:16:28 +01:00
*
* Enable deterministic ECDSA ( RFC 6979 ) .
* Standard ECDSA is " fragile " in the sense that lack of entropy when signing
* may result in a compromise of the long - term signing key . This is avoided by
* the deterministic variant .
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_HMAC_DRBG_C
2014-01-07 16:46:17 +01:00
*
2014-01-06 10:16:28 +01:00
* Comment this macro to disable deterministic ECDSA .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECDSA_DETERMINISTIC
2014-01-06 10:16:28 +01:00
2014-03-19 16:39:52 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PK_PARSE_EC_EXTENDED
2014-03-19 16:39:52 +01:00
*
* Enhance support for reading EC keys using variants of SEC1 not allowed by
* RFC 5915 and RFC 5480.
*
* Currently this means parsing the SpecifiedECDomain choice of EC
* parameters ( only known groups are supported , not arbitrary domains , to
* avoid validation issues ) .
*
* Disable if you only need to support RFC 5915 + 5480 key formats .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PK_PARSE_EC_EXTENDED
2014-03-19 16:39:52 +01:00
2013-02-02 12:43:08 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ERROR_STRERROR_DUMMY
2013-02-02 12:43:08 +01:00
*
2015-04-08 12:49:31 +02:00
* Enable a dummy error function to make use of mbedtls_strerror ( ) in
* third party libraries easier when MBEDTLS_ERROR_C is disabled
* ( no effect when MBEDTLS_ERROR_C is enabled ) .
2014-06-25 12:55:12 +02:00
*
2015-04-08 12:49:31 +02:00
* You can safely disable this if MBEDTLS_ERROR_C is enabled , or if you ' re
* not using mbedtls_strerror ( ) or error_strerror ( ) in your application .
2013-02-02 12:43:08 +01:00
*
* Disable if you run into name conflicts and want to really remove the
2015-04-08 12:49:31 +02:00
* mbedtls_strerror ( )
2013-02-02 12:43:08 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ERROR_STRERROR_DUMMY
2013-02-02 12:43:08 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_GENPRIME
2011-01-27 16:24:17 +01:00
*
2013-09-20 14:10:14 +02:00
* Enable the prime - number generation code .
2013-09-20 13:45:36 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_BIGNUM_C
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_GENPRIME
2009-01-03 22:22:43 +01:00
2011-04-25 17:28:35 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_FS_IO
2011-04-25 17:28:35 +02:00
*
* Enable functions that use the filesystem .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_FS_IO
2011-04-25 17:28:35 +02:00
2011-12-15 21:11:16 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
2011-12-15 21:11:16 +01:00
*
* Do not add default entropy sources . These are the platform specific ,
2015-04-08 12:49:31 +02:00
* mbedtls_timing_hardclock and HAVEGE based poll functions .
2011-12-15 21:11:16 +01:00
*
2014-04-05 06:04:40 +02:00
* This is useful to have more control over the added entropy sources in an
2011-12-15 21:11:16 +01:00
* application .
*
* Uncomment this macro to prevent loading of default entropy functions .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
2011-12-15 21:11:16 +01:00
2011-12-03 22:45:14 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_NO_PLATFORM_ENTROPY
2011-12-03 22:45:14 +01:00
*
* Do not use built - in platform entropy functions .
* This is useful if your platform does not support
* standards like the / dev / urandom or Windows CryptoAPI .
*
* Uncomment this macro to disable the built - in platform entropy functions .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_NO_PLATFORM_ENTROPY
2011-12-03 22:45:14 +01:00
2014-02-06 15:55:25 +01:00
/**
2018-03-03 21:49:49 +01:00
* \ def MBEDTLS_ENTROPY_FORCE_SHA256
2014-02-06 13:04:16 +01:00
*
2018-03-03 21:49:49 +01:00
* Force the entropy accumulator to use a SHA - 256 accumulator instead of the
* default SHA - 512 based one ( if both are available ) .
2014-02-06 13:04:16 +01:00
*
2018-03-03 21:49:49 +01:00
* Requires : MBEDTLS_SHA256_C
2014-02-06 13:04:16 +01:00
*
2018-03-03 21:49:49 +01:00
* On 32 - bit systems SHA - 256 can be much faster than SHA - 512. Use this option
* if you have performance concerns .
2014-02-06 13:04:16 +01:00
*
2018-03-03 21:49:49 +01:00
* This option is only useful if both MBEDTLS_SHA256_C and
* MBEDTLS_SHA512_C are defined . Otherwise the available hash module is used .
2014-02-06 13:04:16 +01:00
*/
2018-03-03 21:49:49 +01:00
//#define MBEDTLS_ENTROPY_FORCE_SHA256
2014-02-06 13:04:16 +01:00
2014-04-04 16:08:41 +02:00
/**
2018-03-03 21:49:49 +01:00
* \ def MBEDTLS_ENTROPY_NV_SEED
2014-04-04 16:08:41 +02:00
*
2018-03-03 21:49:49 +01:00
* Enable the non - volatile ( NV ) seed file - based entropy source .
* ( Also enables the NV seed read / write functions in the platform layer )
2014-04-04 16:08:41 +02:00
*
2018-03-03 21:49:49 +01:00
* This is crucial ( if not required ) on systems that do not have a
* cryptographic entropy source ( in hardware or kernel ) available .
2014-09-24 14:05:32 +02:00
*
2018-06-19 11:56:47 +02:00
* Requires : MBEDTLS_ENTROPY_C , MBEDTLS_PLATFORM_C
*
* \ note The read / write functions that are used by the entropy source are
* determined in the platform layer , and can be modified at runtime and / or
* compile - time depending on the flags ( MBEDTLS_PLATFORM_NV_SEED_ * ) used .
*
* \ note If you use the default implementation functions that read a seedfile
* with regular fopen ( ) , please make sure you make a seedfile with the
* proper name ( defined in MBEDTLS_PLATFORM_STD_NV_SEED_FILE ) and at
* least MBEDTLS_ENTROPY_BLOCK_SIZE bytes in size that can be read from
* and written to or you will get an entropy source error ! The default
* implementation will only use the first MBEDTLS_ENTROPY_BLOCK_SIZE
* bytes from the file .
*
* \ note The entropy collector will write to the seed file before entropy is
* given to an external source , to update it .
*/
//#define MBEDTLS_ENTROPY_NV_SEED
2019-02-19 14:00:31 +01:00
/* MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER
*
* In PSA key storage , encode the owner of the key .
*
* This is only meaningful when building the library as part of a
* multi - client service . When you activate this option , you must provide
* an implementation of the type psa_key_owner_id_t and a translation
* from psa_key_file_id_t to file name in all the storage backends that
* you wish to support .
*
* Note that this option is meant for internal use only and may be removed
* without notice .
*/
//#define MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_MEMORY_DEBUG
*
* Enable debugging of buffer allocator memory issues . Automatically prints
* ( to stderr ) all ( fatal ) messages on memory allocation issues . Enables
* function for ' debug output ' of allocated memory .
*
* Requires : MBEDTLS_MEMORY_BUFFER_ALLOC_C
*
* Uncomment this macro to let the buffer allocator print out error messages .
*/
//#define MBEDTLS_MEMORY_DEBUG
/**
* \ def MBEDTLS_MEMORY_BACKTRACE
*
* Include backtrace information with each allocated block .
*
* Requires : MBEDTLS_MEMORY_BUFFER_ALLOC_C
* GLIBC - compatible backtrace ( ) an backtrace_symbols ( ) support
*
* Uncomment this macro to include backtrace information
*/
//#define MBEDTLS_MEMORY_BACKTRACE
/**
* \ def MBEDTLS_PK_RSA_ALT_SUPPORT
*
* Support external private RSA keys ( eg from a HSM ) in the PK layer .
*
* Comment this macro to disable support for external private RSA keys .
*/
# define MBEDTLS_PK_RSA_ALT_SUPPORT
/**
* \ def MBEDTLS_PKCS1_V15
*
* Enable support for PKCS # 1 v1 .5 encoding .
*
* Requires : MBEDTLS_RSA_C
*
* This enables support for PKCS # 1 v1 .5 operations .
*/
# define MBEDTLS_PKCS1_V15
/**
* \ def MBEDTLS_PKCS1_V21
*
* Enable support for PKCS # 1 v2 .1 encoding .
*
* Requires : MBEDTLS_MD_C , MBEDTLS_RSA_C
*
* This enables support for RSAES - OAEP and RSASSA - PSS operations .
*/
# define MBEDTLS_PKCS1_V21
2018-07-11 17:07:40 +02:00
/**
* \ def MBEDTLS_PSA_CRYPTO_SPM
*
* When MBEDTLS_PSA_CRYPTO_SPM is defined , the code is built for SPM ( Secure
* Partition Manager ) integration which separates the code into two parts : a
* NSPE ( Non - Secure Process Environment ) and an SPE ( Secure Process
* Environment ) .
*
* Module : library / psa_crypto . c
* Requires : MBEDTLS_PSA_CRYPTO_C
*
*/
//#define MBEDTLS_PSA_CRYPTO_SPM
2019-02-25 11:04:06 +01:00
/**
* \ def MBEDTLS_PSA_INJECT_ENTROPY
*
* Enable support for entropy injection at first boot . This feature is
* required on systems that do not have a built - in entropy source ( TRNG ) .
* This feature is currently not supported on systems that have a built - in
* entropy source .
*
* Requires : MBEDTLS_PSA_CRYPTO_STORAGE_C , MBEDTLS_ENTROPY_NV_SEED
*
*/
//#define MBEDTLS_PSA_INJECT_ENTROPY
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_RSA_NO_CRT
*
* Do not use the Chinese Remainder Theorem
* for the RSA private operation .
*
* Uncomment this macro to disable the use of CRT in RSA .
*
*/
//#define MBEDTLS_RSA_NO_CRT
/**
* \ def MBEDTLS_SELF_TEST
*
* Enable the checkup functions ( * _self_test ) .
*/
# define MBEDTLS_SELF_TEST
/**
* \ def MBEDTLS_SHA256_SMALLER
*
* Enable an implementation of SHA - 256 that has lower ROM footprint but also
* lower performance .
*
* The default implementation is meant to be a reasonnable compromise between
* performance and size . This version optimizes more aggressively for size at
* the expense of performance . Eg on Cortex - M4 it reduces the size of
* mbedtls_sha256_process ( ) from ~ 2 KB to ~ 0.5 KB for a performance hit of about
* 30 % .
*
* Uncomment to enable the smaller implementation of SHA256 .
*/
//#define MBEDTLS_SHA256_SMALLER
2013-09-28 14:40:38 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_THREADING_ALT
2013-09-28 14:40:38 +02:00
*
* Provide your own alternate threading implementation .
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_THREADING_C
2013-09-28 14:40:38 +02:00
*
* Uncomment this to allow your own alternate threading implementation .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_THREADING_ALT
2013-09-28 14:40:38 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_THREADING_PTHREAD
2013-09-28 14:40:38 +02:00
*
* Enable the pthread wrapper layer for the threading layer .
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_THREADING_C
2013-09-28 14:40:38 +02:00
*
* Uncomment this to enable pthread mutexes .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_THREADING_PTHREAD
2013-09-28 14:40:38 +02:00
2018-10-22 12:14:52 +02:00
/**
* \ def MBEDTLS_USE_PSA_CRYPTO
*
* Make the X .509 and TLS library use PSA for cryptographic operations , see
* # MBEDTLS_PSA_CRYPTO_C .
*
* Note : this option is still in progress , the full X .509 and TLS modules are
* not covered yet , but parts that are not ported to PSA yet will still work
* as usual , so enabling this option should not break backwards compatibility .
*
2018-11-19 10:46:26 +01:00
* \ warning Support for PSA is still an experimental feature .
* Any public API that depends on this option may change
* at any time until this warning is removed .
*
2018-10-22 12:14:52 +02:00
* Requires : MBEDTLS_PSA_CRYPTO_C .
*/
//#define MBEDTLS_USE_PSA_CRYPTO
2014-04-30 11:49:44 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_VERSION_FEATURES
2014-04-30 11:49:44 +02:00
*
* Allow run - time checking of compile - time enabled features . Thus allowing users
* to check at run - time if the library is for instance compiled with threading
2015-04-08 12:49:31 +02:00
* support via mbedtls_version_check_feature ( ) .
2014-04-30 11:49:44 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_VERSION_C
2014-04-30 11:49:44 +02:00
*
* Comment this to disable run - time checking and save ROM space
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_VERSION_FEATURES
2014-04-30 11:49:44 +02:00
2015-01-22 17:11:05 +01:00
/* \} name SECTION: mbed TLS feature support */
2011-01-21 12:00:08 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-01-22 17:11:05 +01:00
* \ name SECTION : mbed TLS modules
2011-01-21 12:00:08 +01:00
*
2015-01-22 17:11:05 +01:00
* This section enables or disables entire modules in mbed TLS
2011-01-21 12:00:08 +01:00
* \ {
*/
2009-01-03 22:22:43 +01:00
2013-12-16 17:12:53 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_AESNI_C
2013-12-16 17:12:53 +01:00
*
* Enable AES - NI support on x86 - 64.
*
* Module : library / aesni . c
* Caller : library / aes . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_HAVE_ASM
2013-12-16 17:12:53 +01:00
*
* This modules adds support for the AES - NI instructions on x86 - 64
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_AESNI_C
2013-12-16 17:12:53 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_AES_C
2011-01-27 16:24:17 +01:00
*
* Enable the AES block cipher .
*
2009-01-03 22:22:43 +01:00
* Module : library / aes . c
2018-02-28 10:49:02 +01:00
* Caller : library / cipher . c
2011-02-12 15:30:57 +01:00
* library / pem . c
2011-12-03 22:45:14 +01:00
* library / ctr_drbg . c
2009-01-03 22:22:43 +01:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
* TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
* TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
* TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
* TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
* TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
* TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
* TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
* TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
* TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
* TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
* TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
* TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
* TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
* TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
* TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
* TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
* TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
* TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
* TLS_DHE_RSA_WITH_AES_256_CBC_SHA
* TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
* TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
* TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
* TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
* TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
* TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
* TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
* TLS_DHE_RSA_WITH_AES_128_CBC_SHA
* TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
* TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
* TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
* TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
* TLS_DHE_PSK_WITH_AES_256_CBC_SHA
* TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
* TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
* TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
* TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
* TLS_DHE_PSK_WITH_AES_128_CBC_SHA
* TLS_RSA_WITH_AES_256_GCM_SHA384
* TLS_RSA_WITH_AES_256_CBC_SHA256
* TLS_RSA_WITH_AES_256_CBC_SHA
* TLS_RSA_WITH_AES_128_GCM_SHA256
* TLS_RSA_WITH_AES_128_CBC_SHA256
* TLS_RSA_WITH_AES_128_CBC_SHA
* TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
* TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
* TLS_RSA_PSK_WITH_AES_256_CBC_SHA
* TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
* TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
* TLS_RSA_PSK_WITH_AES_128_CBC_SHA
* TLS_PSK_WITH_AES_256_GCM_SHA384
* TLS_PSK_WITH_AES_256_CBC_SHA384
* TLS_PSK_WITH_AES_256_CBC_SHA
* TLS_PSK_WITH_AES_128_GCM_SHA256
* TLS_PSK_WITH_AES_128_CBC_SHA256
* TLS_PSK_WITH_AES_128_CBC_SHA
2013-02-19 13:17:08 +01:00
*
2013-09-15 20:43:33 +02:00
* PEM_PARSE uses AES for decrypting encrypted keys .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_AES_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ARC4_C
2011-01-27 16:24:17 +01:00
*
* Enable the ARCFOUR stream cipher .
*
2009-01-03 22:22:43 +01:00
* Module : library / arc4 . c
2018-02-28 10:49:02 +01:00
* Caller : library / cipher . c
2009-01-03 22:22:43 +01:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_ECDH_ECDSA_WITH_RC4_128_SHA
* TLS_ECDH_RSA_WITH_RC4_128_SHA
* TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
* TLS_ECDHE_RSA_WITH_RC4_128_SHA
* TLS_ECDHE_PSK_WITH_RC4_128_SHA
* TLS_DHE_PSK_WITH_RC4_128_SHA
* TLS_RSA_WITH_RC4_128_SHA
* TLS_RSA_WITH_RC4_128_MD5
* TLS_RSA_PSK_WITH_RC4_128_SHA
* TLS_PSK_WITH_RC4_128_SHA
2017-09-25 15:53:51 +02:00
*
* \ warning ARC4 is considered a weak cipher and its use constitutes a
* security risk . If possible , we recommend avoidng dependencies on
* it , and considering stronger ciphers instead .
*
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ARC4_C
2009-01-03 22:22:43 +01:00
2011-11-10 15:43:23 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ASN1_PARSE_C
2011-11-10 15:43:23 +01:00
*
* Enable the generic ASN1 parser .
*
* Module : library / asn1 . c
2018-11-02 19:15:18 +01:00
* Caller : library / dhm . c
2013-09-20 14:10:14 +02:00
* library / pkcs12 . c
* library / pkcs5 . c
* library / pkparse . c
2011-11-10 15:43:23 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ASN1_PARSE_C
2011-11-10 15:43:23 +01:00
2012-02-14 00:11:30 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ASN1_WRITE_C
2012-02-14 00:11:30 +01:00
*
* Enable the generic ASN1 writer .
*
* Module : library / asn1write . c
2013-09-20 14:10:14 +02:00
* Caller : library / ecdsa . c
* library / pkwrite . c
2012-02-14 00:11:30 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ASN1_WRITE_C
2012-02-14 00:11:30 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_BASE64_C
2011-01-27 16:24:17 +01:00
*
* Enable the Base64 module .
*
2009-01-03 22:22:43 +01:00
* Module : library / base64 . c
2011-05-26 15:16:06 +02:00
* Caller : library / pem . c
2009-01-03 22:22:43 +01:00
*
2011-05-26 15:16:06 +02:00
* This module is required for PEM support ( required by X .509 ) .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_BASE64_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_BIGNUM_C
2011-01-27 16:24:17 +01:00
*
2012-11-14 13:39:52 +01:00
* Enable the multi - precision integer library .
2011-01-27 16:24:17 +01:00
*
2009-01-03 22:22:43 +01:00
* Module : library / bignum . c
* Caller : library / dhm . c
2013-09-20 14:10:14 +02:00
* library / ecp . c
2014-06-25 13:00:17 +02:00
* library / ecdsa . c
2009-01-03 22:22:43 +01:00
* library / rsa . c
2017-10-11 12:00:19 +02:00
* library / rsa_internal . c
2009-01-03 22:22:43 +01:00
*
2014-06-25 13:00:17 +02:00
* This module is required for RSA , DHM and ECC ( ECDH , ECDSA ) support .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_BIGNUM_C
2009-01-03 22:22:43 +01:00
2012-07-04 13:02:11 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_BLOWFISH_C
2012-07-04 13:02:11 +02:00
*
* Enable the Blowfish block cipher .
*
* Module : library / blowfish . c
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_BLOWFISH_C
2012-07-04 13:02:11 +02:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CAMELLIA_C
2011-01-27 16:24:17 +01:00
*
* Enable the Camellia block cipher .
*
2009-01-11 00:31:23 +01:00
* Module : library / camellia . c
2018-02-28 10:49:02 +01:00
* Caller : library / cipher . c
2009-01-11 00:31:23 +01:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
* TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
* TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
* TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
* TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
* TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
* TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
* TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
* TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
* TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
* TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
* TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
* TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
* TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
* TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
* TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
* TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
* TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
* TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
* TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
* TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
* TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
* TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
* TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
* TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
* TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
* TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
2015-04-08 12:49:31 +02:00
*/
# define MBEDTLS_CAMELLIA_C
2017-11-30 17:00:34 +01:00
/**
* \ def MBEDTLS_ARIA_C
*
2018-02-28 10:47:02 +01:00
* Enable the ARIA block cipher .
2017-11-30 17:00:34 +01:00
*
* Module : library / aria . c
2018-02-28 10:47:02 +01:00
* Caller : library / cipher . c
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_RSA_WITH_ARIA_128_CBC_SHA256
* TLS_RSA_WITH_ARIA_256_CBC_SHA384
* TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256
* TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384
* TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256
* TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384
* TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256
* TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384
* TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256
* TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384
* TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256
* TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384
* TLS_RSA_WITH_ARIA_128_GCM_SHA256
* TLS_RSA_WITH_ARIA_256_GCM_SHA384
* TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256
* TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384
* TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256
* TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384
* TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256
* TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384
* TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256
* TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384
* TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256
* TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384
* TLS_PSK_WITH_ARIA_128_CBC_SHA256
* TLS_PSK_WITH_ARIA_256_CBC_SHA384
* TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256
* TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384
* TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256
* TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384
* TLS_PSK_WITH_ARIA_128_GCM_SHA256
* TLS_PSK_WITH_ARIA_256_GCM_SHA384
* TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256
* TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384
* TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256
* TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384
* TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256
* TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384
2017-11-30 17:00:34 +01:00
*/
2018-02-27 12:22:36 +01:00
//#define MBEDTLS_ARIA_C
2017-11-30 17:00:34 +01:00
2015-04-08 12:49:31 +02:00
/**
* \ def MBEDTLS_CCM_C
2014-05-02 15:17:29 +02:00
*
* Enable the Counter with CBC - MAC ( CCM ) mode for 128 - bit block cipher .
*
* Module : library / ccm . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
2014-05-02 15:17:29 +02:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support AES - CCM ciphersuites in TLS .
2014-05-02 15:17:29 +02:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CCM_C
2014-05-02 15:17:29 +02:00
2016-05-15 22:28:08 +02:00
/**
* \ def MBEDTLS_CHACHA20_C
*
* Enable the ChaCha20 stream cipher .
*
* Module : library / chacha20 . c
*/
# define MBEDTLS_CHACHA20_C
2018-06-04 12:23:19 +02:00
/**
* \ def MBEDTLS_CHACHAPOLY_C
*
* Enable the ChaCha20 - Poly1305 AEAD algorithm .
*
* Module : library / chachapoly . c
*
* This module requires : MBEDTLS_CHACHA20_C , MBEDTLS_POLY1305_C
*/
# define MBEDTLS_CHACHAPOLY_C
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CIPHER_C
2011-01-27 16:24:17 +01:00
*
* Enable the generic cipher layer .
*
2011-01-06 16:37:30 +01:00
* Module : library / cipher . c
*
* Uncomment to enable generic cipher wrappers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CIPHER_C
2011-01-06 16:37:30 +01:00
2015-12-11 16:49:45 +01:00
/**
* \ def MBEDTLS_CMAC_C
*
2016-10-05 15:09:11 +02:00
* Enable the CMAC ( Cipher - based Message Authentication Code ) mode for block
* ciphers .
2015-12-11 16:49:45 +01:00
*
* Module : library / cmac . c
*
2016-10-06 13:49:58 +02:00
* Requires : MBEDTLS_AES_C or MBEDTLS_DES_C
2015-12-11 16:49:45 +01:00
*
*/
2018-01-27 23:32:46 +01:00
# define MBEDTLS_CMAC_C
2015-12-11 16:49:45 +01:00
2011-11-27 15:46:59 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_CTR_DRBG_C
2011-11-27 15:46:59 +01:00
*
2018-08-29 09:11:46 +02:00
* Enable the CTR_DRBG AES - based random generator .
* The CTR_DRBG generator uses AES - 256 by default .
* To use AES - 128 instead , enable MBEDTLS_CTR_DRBG_USE_128_BIT_KEY below .
2011-11-27 15:46:59 +01:00
*
* Module : library / ctr_drbg . c
* Caller :
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_AES_C
2011-12-03 22:45:14 +01:00
*
2018-09-03 13:10:52 +02:00
* This module provides the CTR_DRBG AES random number generator .
2011-11-27 15:46:59 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_CTR_DRBG_C
2011-11-27 15:46:59 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_DES_C
2011-01-27 16:24:17 +01:00
*
* Enable the DES block cipher .
*
2009-01-03 22:22:43 +01:00
* Module : library / des . c
2013-02-19 13:17:08 +01:00
* Caller : library / pem . c
2018-02-28 10:49:02 +01:00
* library / cipher . c
2009-01-03 22:22:43 +01:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support the following ciphersuites in TLS :
* TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
* TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
* TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
* TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
* TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
* TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
* TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
* TLS_RSA_WITH_3DES_EDE_CBC_SHA
* TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
* TLS_PSK_WITH_3DES_EDE_CBC_SHA
2013-02-19 13:17:08 +01:00
*
2013-09-15 20:43:33 +02:00
* PEM_PARSE uses DES / 3 DES for decrypting encrypted keys .
2017-09-25 15:53:51 +02:00
*
* \ warning DES is considered a weak cipher and its use constitutes a
* security risk . We recommend considering stronger ciphers instead .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_DES_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_DHM_C
2011-01-27 16:24:17 +01:00
*
2013-10-25 18:01:50 +02:00
* Enable the Diffie - Hellman - Merkle module .
2011-01-27 16:24:17 +01:00
*
2009-01-03 22:22:43 +01:00
* Module : library / dhm . c
*
2013-10-25 18:01:50 +02:00
* This module is used by the following key exchanges :
* DHE - RSA , DHE - PSK
2017-09-28 11:33:29 +02:00
*
2017-10-03 13:09:22 +02:00
* \ warning Using DHE constitutes a security risk as it
* is not possible to validate custom DH parameters .
* If possible , it is recommended users should consider
* preferring other methods of key exchange .
* See dhm . h for more details .
2017-09-28 11:33:29 +02:00
*
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_DHM_C
2009-01-03 22:22:43 +01:00
2013-03-13 16:30:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ECDH_C
2013-03-13 16:30:17 +01:00
*
* Enable the elliptic curve Diffie - Hellman library .
*
* Module : library / ecdh . c
2013-03-20 14:39:14 +01:00
*
2013-10-25 18:01:50 +02:00
* This module is used by the following key exchanges :
* ECDHE - ECDSA , ECDHE - RSA , DHE - PSK
2013-03-13 16:30:17 +01:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_ECP_C
2013-03-13 16:30:17 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECDH_C
2013-03-13 16:30:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ECDSA_C
2013-03-13 16:30:17 +01:00
*
* Enable the elliptic curve DSA library .
*
* Module : library / ecdsa . c
* Caller :
*
2013-10-25 18:01:50 +02:00
* This module is used by the following key exchanges :
* ECDHE - ECDSA
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_ECP_C , MBEDTLS_ASN1_WRITE_C , MBEDTLS_ASN1_PARSE_C
2013-03-13 16:30:17 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECDSA_C
2013-03-13 16:30:17 +01:00
2015-08-05 15:44:42 +02:00
/**
* \ def MBEDTLS_ECJPAKE_C
*
* Enable the elliptic curve J - PAKE library .
*
2015-09-16 23:21:01 +02:00
* \ warning This is currently experimental . EC J - PAKE support is based on the
* Thread v1 .0 .0 specification ; incompatible changes to the specification
* might still happen . For this reason , this is disabled by default .
*
2015-08-05 15:44:42 +02:00
* Module : library / ecjpake . c
* Caller :
*
* This module is used by the following key exchanges :
* ECJPAKE
*
* Requires : MBEDTLS_ECP_C , MBEDTLS_MD_C
*/
2018-06-19 11:56:47 +02:00
//#define MBEDTLS_ECJPAKE_C
2015-08-05 15:44:42 +02:00
2013-03-13 16:30:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ECP_C
2013-03-13 16:30:17 +01:00
*
* Enable the elliptic curve over GF ( p ) library .
*
* Module : library / ecp . c
* Caller : library / ecdh . c
* library / ecdsa . c
2015-08-05 15:44:42 +02:00
* library / ecjpake . c
2013-03-13 16:30:17 +01:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED
2013-03-13 16:30:17 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ECP_C
2013-03-13 16:30:17 +01:00
2011-12-03 22:45:14 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ENTROPY_C
2011-12-03 22:45:14 +01:00
*
* Enable the platform - specific entropy code .
*
* Module : library / entropy . c
* Caller :
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_SHA512_C or MBEDTLS_SHA256_C
2011-12-03 22:45:14 +01:00
*
* This module provides a generic entropy pool
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ENTROPY_C
2011-12-03 22:45:14 +01:00
2011-05-09 18:17:09 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_ERROR_C
2011-05-09 18:17:09 +02:00
*
* Enable error code to error string conversion .
*
* Module : library / error . c
* Caller :
*
2015-04-08 12:49:31 +02:00
* This module enables mbedtls_strerror ( ) .
2011-05-09 18:17:09 +02:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_ERROR_C
2011-05-09 18:17:09 +02:00
2012-03-20 14:50:09 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_GCM_C
2012-03-20 14:50:09 +01:00
*
2013-09-20 13:45:36 +02:00
* Enable the Galois / Counter Mode ( GCM ) for AES .
2012-03-20 14:50:09 +01:00
*
* Module : library / gcm . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
2012-10-31 13:32:41 +01:00
*
2018-11-02 19:15:18 +01:00
* This module is required to support AES - GCM and CAMELLIA - GCM ciphersuites in
* TLS .
2012-03-20 14:50:09 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_GCM_C
2012-03-20 14:50:09 +01:00
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_HAVEGE_C
*
* Enable the HAVEGE random generator .
*
* Warning : the HAVEGE random generator is not suitable for virtualized
* environments
*
* Warning : the HAVEGE random generator is dependent on timing and specific
* processor traits . It is therefore not advised to use HAVEGE as
* your applications primary random generator or primary entropy pool
* input . As a secondary input to your entropy pool , it IS able add
* the ( limited ) extra entropy it provides .
*
* Module : library / havege . c
* Caller :
*
* Requires : MBEDTLS_TIMING_C
*
* Uncomment to enable the HAVEGE random generator .
*/
//#define MBEDTLS_HAVEGE_C
2016-07-17 09:51:22 +02:00
/**
* \ def MBEDTLS_HKDF_C
*
* Enable the HKDF algorithm ( RFC 5869 ) .
*
* Module : library / hkdf . c
* Caller :
*
* Requires : MBEDTLS_MD_C
*
* This module adds support for the Hashed Message Authentication Code
* ( HMAC ) - based key derivation function ( HKDF ) .
*/
# define MBEDTLS_HKDF_C
2014-01-27 14:03:10 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_HMAC_DRBG_C
2014-01-27 14:03:10 +01:00
*
* Enable the HMAC_DRBG random generator .
*
* Module : library / hmac_drbg . c
* Caller :
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_MD_C
2014-01-27 14:03:10 +01:00
*
* Uncomment to enable the HMAC_DRBG random number geerator .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_HMAC_DRBG_C
2014-01-27 14:03:10 +01:00
2018-05-03 15:54:28 +02:00
/**
* \ def MBEDTLS_NIST_KW_C
*
* Enable the Key Wrapping mode for 128 - bit block ciphers ,
* as defined in NIST SP 800 - 38F . Only KW and KWP modes
* are supported . At the moment , only AES is approved by NIST .
*
* Module : library / nist_kw . c
*
* Requires : MBEDTLS_AES_C and MBEDTLS_CIPHER_C
*/
//#define MBEDTLS_NIST_KW_C
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_MD_C
2011-01-27 16:24:17 +01:00
*
* Enable the generic message digest layer .
*
2016-11-04 13:23:11 +01:00
* Module : library / md . c
2011-01-06 15:20:01 +01:00
* Caller :
*
* Uncomment to enable generic message digest wrappers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_MD_C
2011-01-06 15:20:01 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_MD2_C
2011-01-27 16:24:17 +01:00
*
2013-09-20 13:45:36 +02:00
* Enable the MD2 hash algorithm .
2011-01-27 16:24:17 +01:00
*
2016-11-04 13:23:11 +01:00
* Module : library / md2 . c
2013-09-20 14:10:14 +02:00
* Caller :
2009-01-03 22:22:43 +01:00
*
* Uncomment to enable support for ( rare ) MD2 - signed X .509 certs .
2017-09-25 15:53:51 +02:00
*
* \ warning MD2 is considered a weak message digest and its use constitutes a
* security risk . If possible , we recommend avoiding dependencies on
* it , and considering stronger message digests instead .
*
2009-07-28 22:52:02 +02:00
*/
2018-06-19 11:56:47 +02:00
//#define MBEDTLS_MD2_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_MD4_C
2011-01-27 16:24:17 +01:00
*
2013-09-20 13:45:36 +02:00
* Enable the MD4 hash algorithm .
2011-01-27 16:24:17 +01:00
*
2016-11-04 13:23:11 +01:00
* Module : library / md4 . c
2013-09-20 14:10:14 +02:00
* Caller :
2009-01-03 22:22:43 +01:00
*
* Uncomment to enable support for ( rare ) MD4 - signed X .509 certs .
2017-09-25 15:53:51 +02:00
*
* \ warning MD4 is considered a weak message digest and its use constitutes a
* security risk . If possible , we recommend avoiding dependencies on
* it , and considering stronger message digests instead .
*
2009-07-28 22:52:02 +02:00
*/
2018-06-19 11:56:47 +02:00
//#define MBEDTLS_MD4_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_MD5_C
2011-01-27 16:24:17 +01:00
*
2013-09-20 13:45:36 +02:00
* Enable the MD5 hash algorithm .
2011-01-27 16:24:17 +01:00
*
2016-11-04 13:23:11 +01:00
* Module : library / md5 . c
* Caller : library / md . c
2013-09-20 14:10:14 +02:00
* library / pem . c
2009-01-03 22:22:43 +01:00
*
2017-09-25 15:53:51 +02:00
* This module is required for SSL / TLS up to version 1.1 , and for TLS 1.2
* depending on the handshake parameters . Further , it is used for checking
* MD5 - signed certificates , and for PBKDF1 when decrypting PEM - encoded
* encrypted keys .
*
* \ warning MD5 is considered a weak message digest and its use constitutes a
* security risk . If possible , we recommend avoiding dependencies on
* it , and considering stronger message digests instead .
*
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_MD5_C
2009-01-03 22:22:43 +01:00
2013-07-03 13:37:05 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_MEMORY_BUFFER_ALLOC_C
2013-09-20 13:45:36 +02:00
*
* Enable the buffer allocator implementation that makes use of a ( stack )
2015-05-26 16:15:20 +02:00
* based buffer to ' allocate ' dynamic memory . ( replaces calloc ( ) and free ( )
2013-09-20 13:45:36 +02:00
* calls )
2013-07-03 13:37:05 +02:00
*
* Module : library / memory_buffer_alloc . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_PLATFORM_C
* MBEDTLS_PLATFORM_MEMORY ( to use it within mbed TLS )
2013-07-03 13:37:05 +02:00
*
* Enable this module to enable the buffer memory allocator .
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
2013-07-03 13:37:05 +02:00
2013-04-07 22:00:46 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_OID_C
2013-04-07 22:00:46 +02:00
*
2013-09-20 13:45:36 +02:00
* Enable the OID database .
2013-04-07 22:00:46 +02:00
*
* Module : library / oid . c
2013-09-20 14:10:14 +02:00
* Caller : library / asn1write . c
* library / pkcs5 . c
* library / pkparse . c
* library / pkwrite . c
* library / rsa . c
2013-04-07 22:00:46 +02:00
*
* This modules translates between OIDs and internal values .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_OID_C
2013-04-07 22:00:46 +02:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PADLOCK_C
2011-01-27 16:24:17 +01:00
*
* Enable VIA Padlock support on x86 .
*
2009-01-03 22:22:43 +01:00
* Module : library / padlock . c
* Caller : library / aes . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_HAVE_ASM
2013-12-16 17:12:53 +01:00
*
2009-01-03 22:22:43 +01:00
* This modules adds support for the VIA PadLock on x86 .
*/
2018-06-19 11:56:47 +02:00
# define MBEDTLS_PADLOCK_C
2009-01-03 22:22:43 +01:00
2011-02-12 15:30:57 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PEM_PARSE_C
2011-02-12 15:30:57 +01:00
*
2013-09-20 13:45:36 +02:00
* Enable PEM decoding / parsing .
2011-02-12 15:30:57 +01:00
*
* Module : library / pem . c
2013-09-20 14:10:14 +02:00
* Caller : library / dhm . c
2013-09-15 20:43:33 +02:00
* library / pkparse . c
2011-02-12 15:30:57 +01:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_BASE64_C
2011-05-26 15:16:06 +02:00
*
2013-09-15 20:43:33 +02:00
* This modules adds support for decoding / parsing PEM files .
2011-02-12 15:30:57 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PEM_PARSE_C
2013-09-15 20:43:33 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PEM_WRITE_C
2013-09-15 20:43:33 +02:00
*
2013-09-20 13:45:36 +02:00
* Enable PEM encoding / writing .
2013-09-15 20:43:33 +02:00
*
* Module : library / pem . c
2013-09-20 14:10:14 +02:00
* Caller : library / pkwrite . c
2013-09-15 20:43:33 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_BASE64_C
2013-09-15 20:43:33 +02:00
*
* This modules adds support for encoding / writing PEM files .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PEM_WRITE_C
2011-02-12 15:30:57 +01:00
2013-08-22 13:29:31 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PK_C
2013-08-22 13:29:31 +02:00
*
* Enable the generic public ( asymetric ) key layer .
*
* Module : library / pk . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_RSA_C or MBEDTLS_ECP_C
2013-09-20 12:29:15 +02:00
*
2013-08-22 13:29:31 +02:00
* Uncomment to enable generic public key wrappers .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PK_C
2013-08-22 13:29:31 +02:00
2013-09-15 17:04:23 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PK_PARSE_C
2013-09-15 17:04:23 +02:00
*
* Enable the generic public ( asymetric ) key parser .
*
* Module : library / pkparse . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_PK_C
2013-09-15 17:04:23 +02:00
*
* Uncomment to enable generic public key parse functions .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PK_PARSE_C
2013-09-15 17:04:23 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PK_WRITE_C
2013-09-15 17:04:23 +02:00
*
2013-09-16 22:46:20 +02:00
* Enable the generic public ( asymetric ) key writer .
2013-09-15 17:04:23 +02:00
*
* Module : library / pkwrite . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_PK_C
2013-09-15 17:04:23 +02:00
*
* Uncomment to enable generic public key write functions .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PK_WRITE_C
2013-09-15 17:04:23 +02:00
2013-06-24 19:26:38 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PKCS5_C
2013-06-24 19:26:38 +02:00
*
2013-09-20 13:45:36 +02:00
* Enable PKCS # 5 functions .
2013-06-24 19:26:38 +02:00
*
* Module : library / pkcs5 . c
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_MD_C
2013-06-24 19:26:38 +02:00
*
* This module adds support for the PKCS # 5 functions .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PKCS5_C
2013-06-24 19:26:38 +02:00
2013-06-24 19:17:19 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PKCS12_C
2013-06-24 19:17:19 +02:00
*
2013-09-20 13:45:36 +02:00
* Enable PKCS # 12 PBE functions .
2013-06-24 19:17:19 +02:00
* Adds algorithms for parsing PKCS # 8 encrypted private keys
*
* Module : library / pkcs12 . c
2013-09-20 14:10:14 +02:00
* Caller : library / pkparse . c
2013-06-24 19:17:19 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_ASN1_PARSE_C , MBEDTLS_CIPHER_C , MBEDTLS_MD_C
* Can use : MBEDTLS_ARC4_C
2013-06-24 19:17:19 +02:00
*
* This module enables PKCS # 12 functions .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_PKCS12_C
2013-06-24 19:17:19 +02:00
2014-02-01 22:50:07 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_PLATFORM_C
2014-02-01 22:50:07 +01:00
*
* Enable the platform abstraction layer that allows you to re - assign
2015-06-22 10:23:34 +02:00
* functions like calloc ( ) , free ( ) , snprintf ( ) , printf ( ) , fprintf ( ) , exit ( ) .
2014-02-01 22:50:07 +01:00
*
2015-04-08 12:49:31 +02:00
* Enabling MBEDTLS_PLATFORM_C enables to use of MBEDTLS_PLATFORM_XXX_ALT
* or MBEDTLS_PLATFORM_XXX_MACRO directives , allowing the functions mentioned
2015-02-06 17:14:34 +01:00
* above to be specified at runtime or compile time respectively .
2014-02-01 22:50:07 +01:00
*
2015-06-22 10:23:34 +02:00
* \ note This abstraction layer must be enabled on Windows ( including MSYS2 )
* as other module rely on it for a fixed snprintf implementation .
*
2014-02-01 22:50:07 +01:00
* Module : library / platform . c
* Caller : Most other . c files
*
* This module enables abstraction of common ( libc ) functions .
*/
2015-05-26 16:15:20 +02:00
# define MBEDTLS_PLATFORM_C
2014-02-01 22:50:07 +01:00
2016-05-16 23:25:45 +02:00
/**
* \ def MBEDTLS_POLY1305_C
*
* Enable the Poly1305 MAC algorithm .
*
* Module : library / poly1305 . c
2018-05-07 10:43:27 +02:00
* Caller : library / chachapoly . c
2016-05-16 23:25:45 +02:00
*/
# define MBEDTLS_POLY1305_C
2018-01-27 23:32:46 +01:00
/**
2018-09-14 13:00:46 +02:00
* \ def MBEDTLS_PSA_CRYPTO_C
2018-01-27 23:32:46 +01:00
*
* Enable the Platform Security Architecture cryptography API .
*
* Module : library / psa_crypto . c
*
* Requires : MBEDTLS_CTR_DRBG_C , MBEDTLS_ENTROPY_C
*
*/
# define MBEDTLS_PSA_CRYPTO_C
2018-06-15 14:06:04 +02:00
/**
* \ def MBEDTLS_PSA_CRYPTO_STORAGE_C
*
* Enable the Platform Security Architecture persistent key storage .
*
* Module : library / psa_crypto_storage . c
*
2019-02-24 12:32:16 +01:00
* Requires : MBEDTLS_PSA_CRYPTO_C ,
2019-02-24 17:00:27 +01:00
* either MBEDTLS_PSA_ITS_FILE_C or a native implementation of
* the PSA ITS interface
2018-11-20 17:30:34 +01:00
*/
2019-02-24 17:00:27 +01:00
# define MBEDTLS_PSA_CRYPTO_STORAGE_C
2018-11-20 17:30:34 +01:00
2018-11-16 22:24:15 +01:00
/**
* \ def MBEDTLS_PSA_ITS_FILE_C
*
* Enable the emulation of the Platform Security Architecture
* Internal Trusted Storage ( PSA ITS ) over files .
*
* Module : library / psa_its_file . c
*
* Requires : MBEDTLS_FS_IO
*/
# define MBEDTLS_PSA_ITS_FILE_C
2014-01-17 12:42:35 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_RIPEMD160_C
2014-01-17 12:42:35 +01:00
*
* Enable the RIPEMD - 160 hash algorithm .
*
2016-11-04 13:23:11 +01:00
* Module : library / ripemd160 . c
* Caller : library / md . c
2014-01-17 12:42:35 +01:00
*
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_RIPEMD160_C
2014-01-17 12:42:35 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_RSA_C
2011-01-27 16:24:17 +01:00
*
* Enable the RSA public - key cryptosystem .
*
2009-01-03 22:22:43 +01:00
* Module : library / rsa . c
2017-10-11 12:00:19 +02:00
* library / rsa_internal . c
2009-01-03 22:22:43 +01:00
*
2013-10-25 18:01:50 +02:00
* This module is used by the following key exchanges :
* RSA , DHE - RSA , ECDHE - RSA , RSA - PSK
2011-05-26 15:16:06 +02:00
*
2015-04-08 12:49:31 +02:00
* Requires : MBEDTLS_BIGNUM_C , MBEDTLS_OID_C
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_RSA_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_SHA1_C
2011-01-27 16:24:17 +01:00
*
* Enable the SHA1 cryptographic hash algorithm .
*
2016-11-04 13:23:11 +01:00
* Module : library / sha1 . c
* Caller : library / md . c
2009-01-03 22:22:43 +01:00
*
2017-05-04 16:17:21 +02:00
* This module is required for SSL / TLS up to version 1.1 , for TLS 1.2
* depending on the handshake parameters , and for SHA1 - signed certificates .
2017-09-25 15:53:51 +02:00
*
* \ warning SHA - 1 is considered a weak message digest and its use constitutes
* a security risk . If possible , we recommend avoiding dependencies
* on it , and considering stronger message digests instead .
*
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_SHA1_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_SHA256_C
2011-01-27 16:24:17 +01:00
*
* Enable the SHA - 224 and SHA - 256 cryptographic hash algorithms .
*
2016-11-04 13:23:11 +01:00
* Module : library / sha256 . c
2013-09-20 14:10:14 +02:00
* Caller : library / entropy . c
2016-11-04 13:23:11 +01:00
* library / md . c
2009-01-03 22:22:43 +01:00
*
* This module adds support for SHA - 224 and SHA - 256.
2012-11-24 11:26:46 +01:00
* This module is required for the SSL / TLS 1.2 PRF function .
2009-01-03 22:22:43 +01:00
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_SHA256_C
2009-01-03 22:22:43 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_SHA512_C
2011-01-27 16:24:17 +01:00
*
* Enable the SHA - 384 and SHA - 512 cryptographic hash algorithms .
*
2016-11-04 13:23:11 +01:00
* Module : library / sha512 . c
2013-09-20 14:10:14 +02:00
* Caller : library / entropy . c
2016-11-04 13:23:11 +01:00
* library / md . c
2009-01-03 22:22:43 +01:00
*
* This module adds support for SHA - 384 and SHA - 512.
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_SHA512_C
2009-01-03 22:22:43 +01:00
2013-09-28 14:40:38 +02:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_THREADING_C
2013-09-28 14:40:38 +02:00
*
* Enable the threading abstraction layer .
2015-01-22 17:11:05 +01:00
* By default mbed TLS assumes it is used in a non - threaded environment or that
2013-09-28 14:40:38 +02:00
* contexts are not shared between threads . If you do intend to use contexts
* between threads , you will need to enable this layer to prevent race
2016-02-22 17:42:51 +01:00
* conditions . See also our Knowledge Base article about threading :
* https : //tls.mbed.org/kb/development/thread-safety-and-multi-threading
2013-09-28 14:40:38 +02:00
*
* Module : library / threading . c
*
* This allows different threading implementations ( self - implemented or
* provided ) .
*
2015-04-08 12:49:31 +02:00
* You will have to enable either MBEDTLS_THREADING_ALT or
* MBEDTLS_THREADING_PTHREAD .
2013-09-28 14:40:38 +02:00
*
2015-01-22 17:11:05 +01:00
* Enable this layer to allow use of mutexes within mbed TLS
2013-09-28 14:40:38 +02:00
*/
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_THREADING_C
2013-09-28 14:40:38 +02:00
2018-06-19 11:56:47 +02:00
/**
* \ def MBEDTLS_TIMING_C
*
* Enable the semi - portable timing interface .
*
* \ note The provided implementation only works on POSIX / Unix ( including Linux ,
* BSD and OS X ) and Windows . On other platforms , you can either disable that
2018-11-02 19:15:18 +01:00
* module and provide your own implementations of the callbacks needed by Mbed
* TLS ' s \ c mbedtls_ssl_set_timer_cb ( ) for DTLS , or leave it enabled and
* provide your own implementation of the whole module by setting
2018-06-19 11:56:47 +02:00
* \ c MBEDTLS_TIMING_ALT in the current file .
*
* \ note See also our Knowledge Base article about porting to a new
* environment :
* https : //tls.mbed.org/kb/how-to/how-do-i-port-mbed-tls-to-a-new-environment-OS
*
* Module : library / timing . c
* Caller : library / havege . c
*
* This module is used by the HAVEGE random number generator .
*/
# define MBEDTLS_TIMING_C
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_VERSION_C
2011-01-27 16:24:17 +01:00
*
* Enable run - time version information .
*
2011-01-21 12:00:08 +01:00
* Module : library / version . c
*
* This module provides run - time version information .
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_VERSION_C
2011-01-21 12:00:08 +01:00
2011-01-27 16:24:17 +01:00
/**
2015-04-08 12:49:31 +02:00
* \ def MBEDTLS_XTEA_C
2011-01-27 16:24:17 +01:00
*
* Enable the XTEA block cipher .
2009-01-03 22:22:43 +01:00
*
2009-01-04 19:15:48 +01:00
* Module : library / xtea . c
* Caller :
*/
2015-04-08 12:49:31 +02:00
# define MBEDTLS_XTEA_C
2012-10-31 09:26:55 +01:00
2015-01-22 17:11:05 +01:00
/* \} name SECTION: mbed TLS modules */
2009-01-04 19:15:48 +01:00
2013-06-24 19:31:17 +02:00
/**
* \ name SECTION : Module configuration options
*
* This section allows for the setting of module specific sizes and
* configuration options . The default values are already present in the
* relevant header files and should suffice for the regular use cases .
*
2014-04-25 11:11:10 +02:00
* Our advice is to enable options and change their values here
* only if you have a good reason and know the consequences .
2013-06-24 19:31:17 +02:00
*
* Please check the respective header file for documentation on these
* parameters ( to prevent duplicate documentation ) .
* \ {
*/
2014-04-25 11:11:10 +02:00
/* MPI / BIGNUM options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */
//#define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */
2014-04-25 11:11:10 +02:00
/* CTR_DRBG options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */
//#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
//#define MBEDTLS_CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
//#define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
//#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
2018-08-29 09:11:46 +02:00
//#define MBEDTLS_CTR_DRBG_USE_128_BIT_KEY /**< Use 128-bit key for CTR_DRBG - may reduce security (see ctr_drbg.h) */
2014-04-25 11:11:10 +02:00
/* HMAC_DRBG options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
//#define MBEDTLS_HMAC_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
//#define MBEDTLS_HMAC_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
//#define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
2014-04-25 11:11:10 +02:00
/* ECP options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_ECP_MAX_BITS 521 /**< Maximum bit size of groups */
//#define MBEDTLS_ECP_WINDOW_SIZE 6 /**< Maximum window size used */
//#define MBEDTLS_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */
2014-04-25 11:11:10 +02:00
/* Entropy options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */
//#define MBEDTLS_ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */
2016-09-23 18:58:49 +02:00
//#define MBEDTLS_ENTROPY_MIN_HARDWARE 32 /**< Default minimum number of bytes required for the hardware entropy source mbedtls_hardware_poll() before entropy is released */
2014-04-25 11:11:10 +02:00
/* Memory buffer allocator options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */
2014-04-25 11:11:10 +02:00
/* Platform options */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_STD_MEM_HDR <stdlib.h> /**< Header to include if MBEDTLS_PLATFORM_NO_STD_FUNCTIONS is defined. Don't define if no header is needed. */
2015-05-26 16:15:20 +02:00
//#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */
2016-07-20 11:16:25 +02:00
//#define MBEDTLS_PLATFORM_STD_TIME time /**< Default time to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */
2019-01-23 15:24:37 +01:00
/* Note: your snprintf must correctly zero-terminate the buffer! */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */
2016-03-18 14:49:27 +01:00
//#define MBEDTLS_PLATFORM_STD_EXIT_SUCCESS 0 /**< Default exit value to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_EXIT_FAILURE 1 /**< Default exit value to use, can be undefined */
2016-06-01 12:25:44 +02:00
//#define MBEDTLS_PLATFORM_STD_NV_SEED_READ mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_NV_SEED_WRITE mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
//#define MBEDTLS_PLATFORM_STD_NV_SEED_FILE "seedfile" /**< Seed file to read/write with default implementation */
2015-04-08 12:49:31 +02:00
/* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */
/* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
2015-05-26 16:15:20 +02:00
//#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */
2016-07-20 11:16:25 +02:00
//#define MBEDTLS_PLATFORM_TIME_MACRO time /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
//#define MBEDTLS_PLATFORM_TIME_TYPE_MACRO time_t /**< Default time macro to use, can be undefined. MBEDTLS_HAVE_TIME must be enabled */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */
//#define MBEDTLS_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */
2019-01-23 15:24:37 +01:00
/* Note: your snprintf must correctly zero-terminate the buffer! */
2015-04-08 12:49:31 +02:00
//#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */
2018-07-16 14:27:07 +02:00
//#define MBEDTLS_PLATFORM_VSNPRINTF_MACRO vsnprintf /**< Default vsnprintf macro to use, can be undefined */
2016-06-01 12:25:44 +02:00
//#define MBEDTLS_PLATFORM_NV_SEED_READ_MACRO mbedtls_platform_std_nv_seed_read /**< Default nv_seed_read function to use, can be undefined */
//#define MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO mbedtls_platform_std_nv_seed_write /**< Default nv_seed_write function to use, can be undefined */
2014-04-25 11:11:10 +02:00
2017-10-25 10:51:14 +02:00
/**
* Uncomment the macro to let mbed TLS use your alternate implementation of
2018-04-17 17:21:45 +02:00
* mbedtls_platform_zeroize ( ) . This replaces the default implementation in
* platform_util . c .
*
* mbedtls_platform_zeroize ( ) is a widely used function across the library to
* zero a block of memory . The implementation is expected to be secure in the
* sense that it has been written to prevent the compiler from removing calls
* to mbedtls_platform_zeroize ( ) as part of redundant code elimination
* optimizations . However , it is difficult to guarantee that calls to
* mbedtls_platform_zeroize ( ) will not be optimized by the compiler as older
* versions of the C language standards do not provide a secure implementation
* of memset ( ) . Therefore , MBEDTLS_PLATFORM_ZEROIZE_ALT enables users to
* configure their own implementation of mbedtls_platform_zeroize ( ) , for
2018-04-24 15:31:34 +02:00
* example by using directives specific to their compiler , features from newer
* C standards ( e . g using memset_s ( ) in C11 ) or calling a secure memset ( ) from
2018-04-17 17:21:45 +02:00
* their system ( e . g explicit_bzero ( ) in BSD ) .
*/
//#define MBEDTLS_PLATFORM_ZEROIZE_ALT
2017-10-25 10:51:14 +02:00
2018-08-16 22:42:09 +02:00
/**
* Uncomment the macro to let Mbed TLS use your alternate implementation of
2018-09-05 16:06:19 +02:00
* mbedtls_platform_gmtime_r ( ) . This replaces the default implementation in
2018-08-16 22:42:09 +02:00
* platform_util . c .
*
2018-09-05 17:21:36 +02:00
* gmtime ( ) is not a thread - safe function as defined in the C standard . The
2018-08-16 22:42:09 +02:00
* library will try to use safer implementations of this function , such as
* gmtime_r ( ) when available . However , if Mbed TLS cannot identify the target
2018-09-05 16:06:19 +02:00
* system , the implementation of mbedtls_platform_gmtime_r ( ) will default to
2018-08-16 22:42:09 +02:00
* using the standard gmtime ( ) . In this case , calls from the library to
* gmtime ( ) will be guarded by the global mutex mbedtls_threading_gmtime_mutex
2018-09-05 17:23:02 +02:00
* if MBEDTLS_THREADING_C is enabled . We recommend that calls from outside the
2018-08-16 22:42:09 +02:00
* library are also guarded with this mutex to avoid race conditions . However ,
2018-09-05 16:06:19 +02:00
* if the macro MBEDTLS_PLATFORM_GMTIME_R_ALT is defined , Mbed TLS will
* unconditionally use the implementation for mbedtls_platform_gmtime_r ( )
* supplied at compile time .
2018-08-16 22:42:09 +02:00
*/
2018-09-05 16:06:19 +02:00
//#define MBEDTLS_PLATFORM_GMTIME_R_ALT
2016-07-11 11:17:03 +02:00
2016-06-08 20:00:23 +02:00
/* \} name SECTION: Customisation configuration options */
2016-06-23 14:56:06 +02:00
2018-05-02 15:49:38 +02:00
/* Target and application specific configurations
*
2015-07-31 15:52:30 +02:00
* Allow user to override any previous default .
*
*/
2018-05-02 15:49:38 +02:00
# if defined(MBEDTLS_USER_CONFIG_FILE)
2015-07-31 15:52:30 +02:00
# include MBEDTLS_USER_CONFIG_FILE
# endif
2018-06-19 11:56:47 +02:00
# include "check_config.h"
2014-04-30 11:49:44 +02:00
2015-04-08 12:49:31 +02:00
# endif /* MBEDTLS_CONFIG_H */