leo hendrickson / Mbed OS example-Ethernet-mbed-Cloud-connect
Committer:
leothedragon
Date:
Tue May 04 08:55:12 2021 +0000
Revision:
0:8f0bb79ddd48
nmn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leothedragon 0:8f0bb79ddd48 1 // ----------------------------------------------------------------------------
leothedragon 0:8f0bb79ddd48 2 // Copyright 2018-2019 ARM Ltd.
leothedragon 0:8f0bb79ddd48 3 //
leothedragon 0:8f0bb79ddd48 4 // SPDX-License-Identifier: Apache-2.0
leothedragon 0:8f0bb79ddd48 5 //
leothedragon 0:8f0bb79ddd48 6 // Licensed under the Apache License, Version 2.0 (the "License");
leothedragon 0:8f0bb79ddd48 7 // you may not use this file except in compliance with the License.
leothedragon 0:8f0bb79ddd48 8 // You may obtain a copy of the License at
leothedragon 0:8f0bb79ddd48 9 //
leothedragon 0:8f0bb79ddd48 10 // http://www.apache.org/licenses/LICENSE-2.0
leothedragon 0:8f0bb79ddd48 11 //
leothedragon 0:8f0bb79ddd48 12 // Unless required by applicable law or agreed to in writing, software
leothedragon 0:8f0bb79ddd48 13 // distributed under the License is distributed on an "AS IS" BASIS,
leothedragon 0:8f0bb79ddd48 14 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
leothedragon 0:8f0bb79ddd48 15 // See the License for the specific language governing permissions and
leothedragon 0:8f0bb79ddd48 16 // limitations under the License.
leothedragon 0:8f0bb79ddd48 17 // ----------------------------------------------------------------------------
leothedragon 0:8f0bb79ddd48 18
leothedragon 0:8f0bb79ddd48 19 /*
leothedragon 0:8f0bb79ddd48 20 * This set of compile-time options may be used to enable
leothedragon 0:8f0bb79ddd48 21 * or disable features selectively, and reduce the global
leothedragon 0:8f0bb79ddd48 22 * memory footprint.
leothedragon 0:8f0bb79ddd48 23 */
leothedragon 0:8f0bb79ddd48 24 #ifndef KSDK_MBEDTLS_CONFIG_H
leothedragon 0:8f0bb79ddd48 25 #define KSDK_MBEDTLS_CONFIG_H
leothedragon 0:8f0bb79ddd48 26
leothedragon 0:8f0bb79ddd48 27
leothedragon 0:8f0bb79ddd48 28 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
leothedragon 0:8f0bb79ddd48 29 #define _CRT_SECURE_NO_DEPRECATE 1
leothedragon 0:8f0bb79ddd48 30 #endif
leothedragon 0:8f0bb79ddd48 31
leothedragon 0:8f0bb79ddd48 32 /**************************** KSDK ********************************************/
leothedragon 0:8f0bb79ddd48 33
leothedragon 0:8f0bb79ddd48 34 #include "fsl_device_registers.h"
leothedragon 0:8f0bb79ddd48 35
leothedragon 0:8f0bb79ddd48 36 /* Enable LTC use in library if there is LTC on chip. */
leothedragon 0:8f0bb79ddd48 37 #if defined(FSL_FEATURE_SOC_LTC_COUNT) && (FSL_FEATURE_SOC_LTC_COUNT > 0)
leothedragon 0:8f0bb79ddd48 38 #include "fsl_ltc.h"
leothedragon 0:8f0bb79ddd48 39
leothedragon 0:8f0bb79ddd48 40 #define LTC_INSTANCE LTC0 /* LTC base register.*/
leothedragon 0:8f0bb79ddd48 41
leothedragon 0:8f0bb79ddd48 42 #if defined(FSL_FEATURE_LTC_HAS_DES) && FSL_FEATURE_LTC_HAS_DES
leothedragon 0:8f0bb79ddd48 43 #define MBEDTLS_FREESCALE_LTC_DES /* Enable use of LTC DES.*/
leothedragon 0:8f0bb79ddd48 44 #endif
leothedragon 0:8f0bb79ddd48 45 #define MBEDTLS_FREESCALE_LTC_AES /* Enable use of LTC AES.*/
leothedragon 0:8f0bb79ddd48 46 #if defined(FSL_FEATURE_LTC_HAS_GCM) && FSL_FEATURE_LTC_HAS_GCM
leothedragon 0:8f0bb79ddd48 47 #define MBEDTLS_FREESCALE_LTC_AES_GCM /* Enable use of LTC AES GCM.*/
leothedragon 0:8f0bb79ddd48 48 #endif
leothedragon 0:8f0bb79ddd48 49 #if defined(FSL_FEATURE_LTC_HAS_PKHA) && FSL_FEATURE_LTC_HAS_PKHA
leothedragon 0:8f0bb79ddd48 50 #define MBEDTLS_FREESCALE_LTC_PKHA /* Enable use of LTC PKHA.*/
leothedragon 0:8f0bb79ddd48 51 #endif
leothedragon 0:8f0bb79ddd48 52 #endif
leothedragon 0:8f0bb79ddd48 53
leothedragon 0:8f0bb79ddd48 54 /* Enable MMCAU use in library if there is MMCAU on chip. */
leothedragon 0:8f0bb79ddd48 55 #if defined(FSL_FEATURE_SOC_MMCAU_COUNT) && (FSL_FEATURE_SOC_MMCAU_COUNT > 0)
leothedragon 0:8f0bb79ddd48 56 #include "fsl_mmcau.h"
leothedragon 0:8f0bb79ddd48 57
leothedragon 0:8f0bb79ddd48 58 #define MBEDTLS_FREESCALE_MMCAU_MD5 /* Enable use of MMCAU MD5.*/
leothedragon 0:8f0bb79ddd48 59 #define MBEDTLS_FREESCALE_MMCAU_SHA1 /* Enable use of MMCAU SHA1.*/
leothedragon 0:8f0bb79ddd48 60 #define MBEDTLS_FREESCALE_MMCAU_SHA256 /* Enable use of MMCAU SHA256.*/
leothedragon 0:8f0bb79ddd48 61 #define MBEDTLS_FREESCALE_MMCAU_DES /* Enable use of MMCAU DES, when LTC is disabled.*/
leothedragon 0:8f0bb79ddd48 62 #define MBEDTLS_FREESCALE_MMCAU_AES /* Enable use of MMCAU AES, when LTC is disabled.*/
leothedragon 0:8f0bb79ddd48 63 #endif
leothedragon 0:8f0bb79ddd48 64
leothedragon 0:8f0bb79ddd48 65 /* Define ALT MMCAU & LTC functions. Do not change it. */
leothedragon 0:8f0bb79ddd48 66 #if defined(MBEDTLS_FREESCALE_MMCAU_DES) || defined(MBEDTLS_FREESCALE_LTC_DES)
leothedragon 0:8f0bb79ddd48 67 #define MBEDTLS_DES_SETKEY_ENC_ALT
leothedragon 0:8f0bb79ddd48 68 #define MBEDTLS_DES_SETKEY_DEC_ALT
leothedragon 0:8f0bb79ddd48 69 #define MBEDTLS_DES_CRYPT_ECB_ALT
leothedragon 0:8f0bb79ddd48 70 #define MBEDTLS_DES3_CRYPT_ECB_ALT
leothedragon 0:8f0bb79ddd48 71 #endif
leothedragon 0:8f0bb79ddd48 72 #if defined(MBEDTLS_FREESCALE_LTC_DES)
leothedragon 0:8f0bb79ddd48 73 #define MBEDTLS_DES_CRYPT_CBC_ALT
leothedragon 0:8f0bb79ddd48 74 #define MBEDTLS_DES3_CRYPT_CBC_ALT
leothedragon 0:8f0bb79ddd48 75 #endif
leothedragon 0:8f0bb79ddd48 76 #if defined(MBEDTLS_FREESCALE_LTC_AES) || defined(MBEDTLS_FREESCALE_MMCAU_AES)
leothedragon 0:8f0bb79ddd48 77 #define MBEDTLS_AES_SETKEY_ENC_ALT
leothedragon 0:8f0bb79ddd48 78 #define MBEDTLS_AES_SETKEY_DEC_ALT
leothedragon 0:8f0bb79ddd48 79 #define MBEDTLS_AES_ENCRYPT_ALT
leothedragon 0:8f0bb79ddd48 80 #define MBEDTLS_AES_DECRYPT_ALT
leothedragon 0:8f0bb79ddd48 81 #endif
leothedragon 0:8f0bb79ddd48 82 #if defined(MBEDTLS_FREESCALE_LTC_AES)
leothedragon 0:8f0bb79ddd48 83 #define MBEDTLS_AES_CRYPT_CBC_ALT
leothedragon 0:8f0bb79ddd48 84 #define MBEDTLS_AES_CRYPT_CTR_ALT
leothedragon 0:8f0bb79ddd48 85 #define MBEDTLS_CCM_CRYPT_ALT
leothedragon 0:8f0bb79ddd48 86 #endif
leothedragon 0:8f0bb79ddd48 87 #if defined(MBEDTLS_FREESCALE_LTC_AES_GCM)
leothedragon 0:8f0bb79ddd48 88 #define MBEDTLS_GCM_CRYPT_ALT
leothedragon 0:8f0bb79ddd48 89 #endif
leothedragon 0:8f0bb79ddd48 90 #if defined(MBEDTLS_FREESCALE_LTC_PKHA)
leothedragon 0:8f0bb79ddd48 91 #define MBEDTLS_MPI_ADD_ABS_ALT
leothedragon 0:8f0bb79ddd48 92 #define MBEDTLS_MPI_SUB_ABS_ALT
leothedragon 0:8f0bb79ddd48 93 #define MBEDTLS_MPI_MUL_MPI_ALT
leothedragon 0:8f0bb79ddd48 94 #define MBEDTLS_MPI_MOD_MPI_ALT
leothedragon 0:8f0bb79ddd48 95 #define MBEDTLS_MPI_EXP_MOD_ALT
leothedragon 0:8f0bb79ddd48 96 #define MBEDTLS_MPI_GCD_ALT
leothedragon 0:8f0bb79ddd48 97 #define MBEDTLS_MPI_INV_MOD_ALT
leothedragon 0:8f0bb79ddd48 98 #define MBEDTLS_MPI_IS_PRIME_ALT
leothedragon 0:8f0bb79ddd48 99 #define MBEDTLS_ECP_MUL_COMB_ALT
leothedragon 0:8f0bb79ddd48 100 #define MBEDTLS_ECP_ADD_ALT
leothedragon 0:8f0bb79ddd48 101 #endif
leothedragon 0:8f0bb79ddd48 102 #if defined(MBEDTLS_FREESCALE_MMCAU_MD5)
leothedragon 0:8f0bb79ddd48 103 #define MBEDTLS_MD5_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 104 #endif
leothedragon 0:8f0bb79ddd48 105 #if defined(MBEDTLS_FREESCALE_MMCAU_SHA1)
leothedragon 0:8f0bb79ddd48 106 #define MBEDTLS_SHA1_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 107 #endif
leothedragon 0:8f0bb79ddd48 108 #if defined(MBEDTLS_FREESCALE_MMCAU_SHA256)
leothedragon 0:8f0bb79ddd48 109 #define MBEDTLS_SHA256_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 110 #endif
leothedragon 0:8f0bb79ddd48 111 /**************************** KSDK end ****************************************/
leothedragon 0:8f0bb79ddd48 112
leothedragon 0:8f0bb79ddd48 113 /**
leothedragon 0:8f0bb79ddd48 114 * \name SECTION: System support
leothedragon 0:8f0bb79ddd48 115 *
leothedragon 0:8f0bb79ddd48 116 * This section sets system specific settings.
leothedragon 0:8f0bb79ddd48 117 * \{
leothedragon 0:8f0bb79ddd48 118 */
leothedragon 0:8f0bb79ddd48 119 #if 1 //Please set to 1 if you are using secure time
leothedragon 0:8f0bb79ddd48 120 /**
leothedragon 0:8f0bb79ddd48 121 * \def MBEDTLS_HAVE_ASM
leothedragon 0:8f0bb79ddd48 122 *
leothedragon 0:8f0bb79ddd48 123 * The compiler has support for asm().
leothedragon 0:8f0bb79ddd48 124 *
leothedragon 0:8f0bb79ddd48 125 * Requires support for asm() in compiler.
leothedragon 0:8f0bb79ddd48 126 *
leothedragon 0:8f0bb79ddd48 127 * Used in:
leothedragon 0:8f0bb79ddd48 128 * library/timing.c
leothedragon 0:8f0bb79ddd48 129 * library/padlock.c
leothedragon 0:8f0bb79ddd48 130 * include/mbedtls/bn_mul.h
leothedragon 0:8f0bb79ddd48 131 *
leothedragon 0:8f0bb79ddd48 132 * Comment to disable the use of assembly code.
leothedragon 0:8f0bb79ddd48 133 */
leothedragon 0:8f0bb79ddd48 134 #define MBEDTLS_HAVE_ASM
leothedragon 0:8f0bb79ddd48 135
leothedragon 0:8f0bb79ddd48 136 /**
leothedragon 0:8f0bb79ddd48 137 * \def MBEDTLS_HAVE_SSE2
leothedragon 0:8f0bb79ddd48 138 *
leothedragon 0:8f0bb79ddd48 139 * CPU supports SSE2 instruction set.
leothedragon 0:8f0bb79ddd48 140 *
leothedragon 0:8f0bb79ddd48 141 * Uncomment if the CPU supports SSE2 (IA-32 specific).
leothedragon 0:8f0bb79ddd48 142 */
leothedragon 0:8f0bb79ddd48 143 //#define MBEDTLS_HAVE_SSE2
leothedragon 0:8f0bb79ddd48 144
leothedragon 0:8f0bb79ddd48 145 /**
leothedragon 0:8f0bb79ddd48 146 * \def MBEDTLS_HAVE_TIME
leothedragon 0:8f0bb79ddd48 147 *
leothedragon 0:8f0bb79ddd48 148 * System has time.h and time().
leothedragon 0:8f0bb79ddd48 149 * The time does not need to be correct, only time differences are used,
leothedragon 0:8f0bb79ddd48 150 * by contrast with MBEDTLS_HAVE_TIME_DATE
leothedragon 0:8f0bb79ddd48 151 *
leothedragon 0:8f0bb79ddd48 152 * Comment if your system does not support time functions
leothedragon 0:8f0bb79ddd48 153 */
leothedragon 0:8f0bb79ddd48 154 #define MBEDTLS_HAVE_TIME
leothedragon 0:8f0bb79ddd48 155
leothedragon 0:8f0bb79ddd48 156 /**
leothedragon 0:8f0bb79ddd48 157 * \def MBEDTLS_HAVE_TIME_DATE
leothedragon 0:8f0bb79ddd48 158 *
leothedragon 0:8f0bb79ddd48 159 * System has time.h and time(), gmtime() and the clock is correct.
leothedragon 0:8f0bb79ddd48 160 * The time needs to be correct (not necesarily very accurate, but at least
leothedragon 0:8f0bb79ddd48 161 * the date should be correct). This is used to verify the validity period of
leothedragon 0:8f0bb79ddd48 162 * X.509 certificates.
leothedragon 0:8f0bb79ddd48 163 *
leothedragon 0:8f0bb79ddd48 164 * Comment if your system does not have a correct clock.
leothedragon 0:8f0bb79ddd48 165 */
leothedragon 0:8f0bb79ddd48 166 #define MBEDTLS_HAVE_TIME_DATE
leothedragon 0:8f0bb79ddd48 167 #define MBEDTLS_PLATFORM_TIME_ALT
leothedragon 0:8f0bb79ddd48 168 #endif //0
leothedragon 0:8f0bb79ddd48 169 /**
leothedragon 0:8f0bb79ddd48 170 * \def MBEDTLS_PLATFORM_MEMORY
leothedragon 0:8f0bb79ddd48 171 *
leothedragon 0:8f0bb79ddd48 172 * Enable the memory allocation layer.
leothedragon 0:8f0bb79ddd48 173 *
leothedragon 0:8f0bb79ddd48 174 * By default mbed TLS uses the system-provided calloc() and free().
leothedragon 0:8f0bb79ddd48 175 * This allows different allocators (self-implemented or provided) to be
leothedragon 0:8f0bb79ddd48 176 * provided to the platform abstraction layer.
leothedragon 0:8f0bb79ddd48 177 *
leothedragon 0:8f0bb79ddd48 178 * Enabling MBEDTLS_PLATFORM_MEMORY without the
leothedragon 0:8f0bb79ddd48 179 * MBEDTLS_PLATFORM_{FREE,CALLOC}_MACROs will provide
leothedragon 0:8f0bb79ddd48 180 * "mbedtls_platform_set_calloc_free()" allowing you to set an alternative calloc() and
leothedragon 0:8f0bb79ddd48 181 * free() function pointer at runtime.
leothedragon 0:8f0bb79ddd48 182 *
leothedragon 0:8f0bb79ddd48 183 * Enabling MBEDTLS_PLATFORM_MEMORY and specifying
leothedragon 0:8f0bb79ddd48 184 * MBEDTLS_PLATFORM_{CALLOC,FREE}_MACROs will allow you to specify the
leothedragon 0:8f0bb79ddd48 185 * alternate function at compile time.
leothedragon 0:8f0bb79ddd48 186 *
leothedragon 0:8f0bb79ddd48 187 * Requires: MBEDTLS_PLATFORM_C
leothedragon 0:8f0bb79ddd48 188 *
leothedragon 0:8f0bb79ddd48 189 * Enable this layer to allow use of alternative memory allocators.
leothedragon 0:8f0bb79ddd48 190 */
leothedragon 0:8f0bb79ddd48 191 //#define MBEDTLS_PLATFORM_MEMORY
leothedragon 0:8f0bb79ddd48 192
leothedragon 0:8f0bb79ddd48 193 /**
leothedragon 0:8f0bb79ddd48 194 * \def MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
leothedragon 0:8f0bb79ddd48 195 *
leothedragon 0:8f0bb79ddd48 196 * Do not assign standard functions in the platform layer (e.g. calloc() to
leothedragon 0:8f0bb79ddd48 197 * MBEDTLS_PLATFORM_STD_CALLOC and printf() to MBEDTLS_PLATFORM_STD_PRINTF)
leothedragon 0:8f0bb79ddd48 198 *
leothedragon 0:8f0bb79ddd48 199 * This makes sure there are no linking errors on platforms that do not support
leothedragon 0:8f0bb79ddd48 200 * these functions. You will HAVE to provide alternatives, either at runtime
leothedragon 0:8f0bb79ddd48 201 * via the platform_set_xxx() functions or at compile time by setting
leothedragon 0:8f0bb79ddd48 202 * the MBEDTLS_PLATFORM_STD_XXX defines, or enabling a
leothedragon 0:8f0bb79ddd48 203 * MBEDTLS_PLATFORM_XXX_MACRO.
leothedragon 0:8f0bb79ddd48 204 *
leothedragon 0:8f0bb79ddd48 205 * Requires: MBEDTLS_PLATFORM_C
leothedragon 0:8f0bb79ddd48 206 *
leothedragon 0:8f0bb79ddd48 207 * Uncomment to prevent default assignment of standard functions in the
leothedragon 0:8f0bb79ddd48 208 * platform layer.
leothedragon 0:8f0bb79ddd48 209 */
leothedragon 0:8f0bb79ddd48 210 //#define MBEDTLS_PLATFORM_NO_STD_FUNCTIONS
leothedragon 0:8f0bb79ddd48 211
leothedragon 0:8f0bb79ddd48 212 /**
leothedragon 0:8f0bb79ddd48 213 * \def MBEDTLS_PLATFORM_XXX_ALT
leothedragon 0:8f0bb79ddd48 214 *
leothedragon 0:8f0bb79ddd48 215 * Uncomment a macro to let mbed TLS support the function in the platform
leothedragon 0:8f0bb79ddd48 216 * abstraction layer.
leothedragon 0:8f0bb79ddd48 217 *
leothedragon 0:8f0bb79ddd48 218 * Example: In case you uncomment MBEDTLS_PLATFORM_PRINTF_ALT, mbed TLS will
leothedragon 0:8f0bb79ddd48 219 * provide a function "mbedtls_platform_set_printf()" that allows you to set an
leothedragon 0:8f0bb79ddd48 220 * alternative printf function pointer.
leothedragon 0:8f0bb79ddd48 221 *
leothedragon 0:8f0bb79ddd48 222 * All these define require MBEDTLS_PLATFORM_C to be defined!
leothedragon 0:8f0bb79ddd48 223 *
leothedragon 0:8f0bb79ddd48 224 * \note MBEDTLS_PLATFORM_SNPRINTF_ALT is required on Windows;
leothedragon 0:8f0bb79ddd48 225 * it will be enabled automatically by check_config.h
leothedragon 0:8f0bb79ddd48 226 *
leothedragon 0:8f0bb79ddd48 227 * \warning MBEDTLS_PLATFORM_XXX_ALT cannot be defined at the same time as
leothedragon 0:8f0bb79ddd48 228 * MBEDTLS_PLATFORM_XXX_MACRO!
leothedragon 0:8f0bb79ddd48 229 *
leothedragon 0:8f0bb79ddd48 230 * Uncomment a macro to enable alternate implementation of specific base
leothedragon 0:8f0bb79ddd48 231 * platform function
leothedragon 0:8f0bb79ddd48 232 */
leothedragon 0:8f0bb79ddd48 233 //#define MBEDTLS_PLATFORM_EXIT_ALT
leothedragon 0:8f0bb79ddd48 234 //#define MBEDTLS_PLATFORM_FPRINTF_ALT
leothedragon 0:8f0bb79ddd48 235 //#define MBEDTLS_PLATFORM_PRINTF_ALT
leothedragon 0:8f0bb79ddd48 236 //#define MBEDTLS_PLATFORM_SNPRINTF_ALT
leothedragon 0:8f0bb79ddd48 237
leothedragon 0:8f0bb79ddd48 238 /**
leothedragon 0:8f0bb79ddd48 239 * \def MBEDTLS_DEPRECATED_WARNING
leothedragon 0:8f0bb79ddd48 240 *
leothedragon 0:8f0bb79ddd48 241 * Mark deprecated functions so that they generate a warning if used.
leothedragon 0:8f0bb79ddd48 242 * Functions deprecated in one version will usually be removed in the next
leothedragon 0:8f0bb79ddd48 243 * version. You can enable this to help you prepare the transition to a new
leothedragon 0:8f0bb79ddd48 244 * major version by making sure your code is not using these functions.
leothedragon 0:8f0bb79ddd48 245 *
leothedragon 0:8f0bb79ddd48 246 * This only works with GCC and Clang. With other compilers, you may want to
leothedragon 0:8f0bb79ddd48 247 * use MBEDTLS_DEPRECATED_REMOVED
leothedragon 0:8f0bb79ddd48 248 *
leothedragon 0:8f0bb79ddd48 249 * Uncomment to get warnings on using deprecated functions.
leothedragon 0:8f0bb79ddd48 250 */
leothedragon 0:8f0bb79ddd48 251 //#define MBEDTLS_DEPRECATED_WARNING
leothedragon 0:8f0bb79ddd48 252
leothedragon 0:8f0bb79ddd48 253 /**
leothedragon 0:8f0bb79ddd48 254 * \def MBEDTLS_DEPRECATED_REMOVED
leothedragon 0:8f0bb79ddd48 255 *
leothedragon 0:8f0bb79ddd48 256 * Remove deprecated functions so that they generate an error if used.
leothedragon 0:8f0bb79ddd48 257 * Functions deprecated in one version will usually be removed in the next
leothedragon 0:8f0bb79ddd48 258 * version. You can enable this to help you prepare the transition to a new
leothedragon 0:8f0bb79ddd48 259 * major version by making sure your code is not using these functions.
leothedragon 0:8f0bb79ddd48 260 *
leothedragon 0:8f0bb79ddd48 261 * Uncomment to get errors on using deprecated functions.
leothedragon 0:8f0bb79ddd48 262 */
leothedragon 0:8f0bb79ddd48 263 //#define MBEDTLS_DEPRECATED_REMOVED
leothedragon 0:8f0bb79ddd48 264
leothedragon 0:8f0bb79ddd48 265 /* \} name SECTION: System support */
leothedragon 0:8f0bb79ddd48 266
leothedragon 0:8f0bb79ddd48 267 /**
leothedragon 0:8f0bb79ddd48 268 * \name SECTION: mbed TLS feature support
leothedragon 0:8f0bb79ddd48 269 *
leothedragon 0:8f0bb79ddd48 270 * This section sets support for features that are or are not needed
leothedragon 0:8f0bb79ddd48 271 * within the modules that are enabled.
leothedragon 0:8f0bb79ddd48 272 * \{
leothedragon 0:8f0bb79ddd48 273 */
leothedragon 0:8f0bb79ddd48 274
leothedragon 0:8f0bb79ddd48 275 /**
leothedragon 0:8f0bb79ddd48 276 * \def MBEDTLS_TIMING_ALT
leothedragon 0:8f0bb79ddd48 277 *
leothedragon 0:8f0bb79ddd48 278 * Uncomment to provide your own alternate implementation for mbedtls_timing_hardclock(),
leothedragon 0:8f0bb79ddd48 279 * mbedtls_timing_get_timer(), mbedtls_set_alarm(), mbedtls_set/get_delay()
leothedragon 0:8f0bb79ddd48 280 *
leothedragon 0:8f0bb79ddd48 281 * Only works if you have MBEDTLS_TIMING_C enabled.
leothedragon 0:8f0bb79ddd48 282 *
leothedragon 0:8f0bb79ddd48 283 * You will need to provide a header "timing_alt.h" and an implementation at
leothedragon 0:8f0bb79ddd48 284 * compile time.
leothedragon 0:8f0bb79ddd48 285 */
leothedragon 0:8f0bb79ddd48 286 //#define MBEDTLS_TIMING_ALT
leothedragon 0:8f0bb79ddd48 287
leothedragon 0:8f0bb79ddd48 288 /**
leothedragon 0:8f0bb79ddd48 289 * \def MBEDTLS__MODULE_NAME__ALT
leothedragon 0:8f0bb79ddd48 290 *
leothedragon 0:8f0bb79ddd48 291 * Uncomment a macro to let mbed TLS use your alternate core implementation of
leothedragon 0:8f0bb79ddd48 292 * a symmetric crypto or hash module (e.g. platform specific assembly
leothedragon 0:8f0bb79ddd48 293 * optimized implementations). Keep in mind that the function prototypes
leothedragon 0:8f0bb79ddd48 294 * should remain the same.
leothedragon 0:8f0bb79ddd48 295 *
leothedragon 0:8f0bb79ddd48 296 * This replaces the whole module. If you only want to replace one of the
leothedragon 0:8f0bb79ddd48 297 * functions, use one of the MBEDTLS__FUNCTION_NAME__ALT flags.
leothedragon 0:8f0bb79ddd48 298 *
leothedragon 0:8f0bb79ddd48 299 * Example: In case you uncomment MBEDTLS_AES_ALT, mbed TLS will no longer
leothedragon 0:8f0bb79ddd48 300 * provide the "struct mbedtls_aes_context" definition and omit the base function
leothedragon 0:8f0bb79ddd48 301 * declarations and implementations. "aes_alt.h" will be included from
leothedragon 0:8f0bb79ddd48 302 * "aes.h" to include the new function definitions.
leothedragon 0:8f0bb79ddd48 303 *
leothedragon 0:8f0bb79ddd48 304 * Uncomment a macro to enable alternate implementation of the corresponding
leothedragon 0:8f0bb79ddd48 305 * module.
leothedragon 0:8f0bb79ddd48 306 */
leothedragon 0:8f0bb79ddd48 307 //#define MBEDTLS_AES_ALT
leothedragon 0:8f0bb79ddd48 308 //#define MBEDTLS_ARC4_ALT
leothedragon 0:8f0bb79ddd48 309 //#define MBEDTLS_BLOWFISH_ALT
leothedragon 0:8f0bb79ddd48 310 //#define MBEDTLS_CAMELLIA_ALT
leothedragon 0:8f0bb79ddd48 311 //#define MBEDTLS_DES_ALT
leothedragon 0:8f0bb79ddd48 312 //#define MBEDTLS_XTEA_ALT
leothedragon 0:8f0bb79ddd48 313 //#define MBEDTLS_MD2_ALT
leothedragon 0:8f0bb79ddd48 314 //#define MBEDTLS_MD4_ALT
leothedragon 0:8f0bb79ddd48 315 //#define MBEDTLS_MD5_ALT
leothedragon 0:8f0bb79ddd48 316 //#define MBEDTLS_RIPEMD160_ALT
leothedragon 0:8f0bb79ddd48 317 //#define MBEDTLS_SHA1_ALT
leothedragon 0:8f0bb79ddd48 318 //#define MBEDTLS_SHA256_ALT
leothedragon 0:8f0bb79ddd48 319 //#define MBEDTLS_SHA512_ALT
leothedragon 0:8f0bb79ddd48 320
leothedragon 0:8f0bb79ddd48 321 /**
leothedragon 0:8f0bb79ddd48 322 * \def MBEDTLS__FUNCTION_NAME__ALT
leothedragon 0:8f0bb79ddd48 323 *
leothedragon 0:8f0bb79ddd48 324 * Uncomment a macro to let mbed TLS use you alternate core implementation of
leothedragon 0:8f0bb79ddd48 325 * symmetric crypto or hash function. Keep in mind that function prototypes
leothedragon 0:8f0bb79ddd48 326 * should remain the same.
leothedragon 0:8f0bb79ddd48 327 *
leothedragon 0:8f0bb79ddd48 328 * This replaces only one function. The header file from mbed TLS is still
leothedragon 0:8f0bb79ddd48 329 * used, in contrast to the MBEDTLS__MODULE_NAME__ALT flags.
leothedragon 0:8f0bb79ddd48 330 *
leothedragon 0:8f0bb79ddd48 331 * Example: In case you uncomment MBEDTLS_SHA256_PROCESS_ALT, mbed TLS will
leothedragon 0:8f0bb79ddd48 332 * no longer provide the mbedtls_sha1_process() function, but it will still provide
leothedragon 0:8f0bb79ddd48 333 * the other function (using your mbedtls_sha1_process() function) and the definition
leothedragon 0:8f0bb79ddd48 334 * of mbedtls_sha1_context, so your implementation of mbedtls_sha1_process must be compatible
leothedragon 0:8f0bb79ddd48 335 * with this definition.
leothedragon 0:8f0bb79ddd48 336 *
leothedragon 0:8f0bb79ddd48 337 * Note: if you use the AES_xxx_ALT macros, then is is recommended to also set
leothedragon 0:8f0bb79ddd48 338 * MBEDTLS_AES_ROM_TABLES in order to help the linker garbage-collect the AES
leothedragon 0:8f0bb79ddd48 339 * tables.
leothedragon 0:8f0bb79ddd48 340 *
leothedragon 0:8f0bb79ddd48 341 * Uncomment a macro to enable alternate implementation of the corresponding
leothedragon 0:8f0bb79ddd48 342 * function.
leothedragon 0:8f0bb79ddd48 343 */
leothedragon 0:8f0bb79ddd48 344 //#define MBEDTLS_MD2_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 345 //#define MBEDTLS_MD4_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 346 //#define MBEDTLS_MD5_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 347 //#define MBEDTLS_RIPEMD160_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 348 //#define MBEDTLS_SHA1_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 349 //#define MBEDTLS_SHA256_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 350 //#define MBEDTLS_SHA512_PROCESS_ALT
leothedragon 0:8f0bb79ddd48 351 //#define MBEDTLS_DES_SETKEY_ALT
leothedragon 0:8f0bb79ddd48 352 //#define MBEDTLS_DES_CRYPT_ECB_ALT
leothedragon 0:8f0bb79ddd48 353 //#define MBEDTLS_DES3_CRYPT_ECB_ALT
leothedragon 0:8f0bb79ddd48 354 //#define MBEDTLS_AES_SETKEY_ENC_ALT
leothedragon 0:8f0bb79ddd48 355 //#define MBEDTLS_AES_SETKEY_DEC_ALT
leothedragon 0:8f0bb79ddd48 356 //#define MBEDTLS_AES_ENCRYPT_ALT
leothedragon 0:8f0bb79ddd48 357 //#define MBEDTLS_AES_DECRYPT_ALT
leothedragon 0:8f0bb79ddd48 358
leothedragon 0:8f0bb79ddd48 359 /**
leothedragon 0:8f0bb79ddd48 360 * \def MBEDTLS_ENTROPY_HARDWARE_ALT
leothedragon 0:8f0bb79ddd48 361 *
leothedragon 0:8f0bb79ddd48 362 * Uncomment this macro to let mbed TLS use your own implementation of a
leothedragon 0:8f0bb79ddd48 363 * hardware entropy collector.
leothedragon 0:8f0bb79ddd48 364 *
leothedragon 0:8f0bb79ddd48 365 * Your function must be called \c mbedtls_hardware_poll(), have the same
leothedragon 0:8f0bb79ddd48 366 * prototype as declared in entropy_poll.h, and accept NULL as first argument.
leothedragon 0:8f0bb79ddd48 367 *
leothedragon 0:8f0bb79ddd48 368 * Uncomment to use your own hardware entropy collector.
leothedragon 0:8f0bb79ddd48 369 */
leothedragon 0:8f0bb79ddd48 370 //#define MBEDTLS_ENTROPY_HARDWARE_ALT
leothedragon 0:8f0bb79ddd48 371
leothedragon 0:8f0bb79ddd48 372 /**
leothedragon 0:8f0bb79ddd48 373 * \def MBEDTLS_AES_ROM_TABLES
leothedragon 0:8f0bb79ddd48 374 *
leothedragon 0:8f0bb79ddd48 375 * Store the AES tables in ROM.
leothedragon 0:8f0bb79ddd48 376 *
leothedragon 0:8f0bb79ddd48 377 * Uncomment this macro to store the AES tables in ROM.
leothedragon 0:8f0bb79ddd48 378 */
leothedragon 0:8f0bb79ddd48 379 //#define MBEDTLS_AES_ROM_TABLES
leothedragon 0:8f0bb79ddd48 380
leothedragon 0:8f0bb79ddd48 381 /**
leothedragon 0:8f0bb79ddd48 382 * \def MBEDTLS_CAMELLIA_SMALL_MEMORY
leothedragon 0:8f0bb79ddd48 383 *
leothedragon 0:8f0bb79ddd48 384 * Use less ROM for the Camellia implementation (saves about 768 bytes).
leothedragon 0:8f0bb79ddd48 385 *
leothedragon 0:8f0bb79ddd48 386 * Uncomment this macro to use less memory for Camellia.
leothedragon 0:8f0bb79ddd48 387 */
leothedragon 0:8f0bb79ddd48 388 //#define MBEDTLS_CAMELLIA_SMALL_MEMORY
leothedragon 0:8f0bb79ddd48 389
leothedragon 0:8f0bb79ddd48 390 /**
leothedragon 0:8f0bb79ddd48 391 * \def MBEDTLS_CIPHER_MODE_CBC
leothedragon 0:8f0bb79ddd48 392 *
leothedragon 0:8f0bb79ddd48 393 * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers.
leothedragon 0:8f0bb79ddd48 394 */
leothedragon 0:8f0bb79ddd48 395 #define MBEDTLS_CIPHER_MODE_CBC
leothedragon 0:8f0bb79ddd48 396
leothedragon 0:8f0bb79ddd48 397 /**
leothedragon 0:8f0bb79ddd48 398 * \def MBEDTLS_CIPHER_MODE_CFB
leothedragon 0:8f0bb79ddd48 399 *
leothedragon 0:8f0bb79ddd48 400 * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
leothedragon 0:8f0bb79ddd48 401 */
leothedragon 0:8f0bb79ddd48 402 //#define MBEDTLS_CIPHER_MODE_CFB
leothedragon 0:8f0bb79ddd48 403
leothedragon 0:8f0bb79ddd48 404 /**
leothedragon 0:8f0bb79ddd48 405 * \def MBEDTLS_CIPHER_MODE_CTR
leothedragon 0:8f0bb79ddd48 406 *
leothedragon 0:8f0bb79ddd48 407 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
leothedragon 0:8f0bb79ddd48 408 */
leothedragon 0:8f0bb79ddd48 409 #define MBEDTLS_CIPHER_MODE_CTR
leothedragon 0:8f0bb79ddd48 410
leothedragon 0:8f0bb79ddd48 411 /**
leothedragon 0:8f0bb79ddd48 412 * \def MBEDTLS_CIPHER_NULL_CIPHER
leothedragon 0:8f0bb79ddd48 413 *
leothedragon 0:8f0bb79ddd48 414 * Enable NULL cipher.
leothedragon 0:8f0bb79ddd48 415 * Warning: Only do so when you know what you are doing. This allows for
leothedragon 0:8f0bb79ddd48 416 * encryption or channels without any security!
leothedragon 0:8f0bb79ddd48 417 *
leothedragon 0:8f0bb79ddd48 418 * Requires MBEDTLS_ENABLE_WEAK_CIPHERSUITES as well to enable
leothedragon 0:8f0bb79ddd48 419 * the following ciphersuites:
leothedragon 0:8f0bb79ddd48 420 * MBEDTLS_TLS_ECDH_ECDSA_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 421 * MBEDTLS_TLS_ECDH_RSA_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 422 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 423 * MBEDTLS_TLS_ECDHE_RSA_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 424 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA384
leothedragon 0:8f0bb79ddd48 425 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA256
leothedragon 0:8f0bb79ddd48 426 * MBEDTLS_TLS_ECDHE_PSK_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 427 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA384
leothedragon 0:8f0bb79ddd48 428 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA256
leothedragon 0:8f0bb79ddd48 429 * MBEDTLS_TLS_DHE_PSK_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 430 * MBEDTLS_TLS_RSA_WITH_NULL_SHA256
leothedragon 0:8f0bb79ddd48 431 * MBEDTLS_TLS_RSA_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 432 * MBEDTLS_TLS_RSA_WITH_NULL_MD5
leothedragon 0:8f0bb79ddd48 433 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA384
leothedragon 0:8f0bb79ddd48 434 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA256
leothedragon 0:8f0bb79ddd48 435 * MBEDTLS_TLS_RSA_PSK_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 436 * MBEDTLS_TLS_PSK_WITH_NULL_SHA384
leothedragon 0:8f0bb79ddd48 437 * MBEDTLS_TLS_PSK_WITH_NULL_SHA256
leothedragon 0:8f0bb79ddd48 438 * MBEDTLS_TLS_PSK_WITH_NULL_SHA
leothedragon 0:8f0bb79ddd48 439 *
leothedragon 0:8f0bb79ddd48 440 * Uncomment this macro to enable the NULL cipher and ciphersuites
leothedragon 0:8f0bb79ddd48 441 */
leothedragon 0:8f0bb79ddd48 442 //#define MBEDTLS_CIPHER_NULL_CIPHER
leothedragon 0:8f0bb79ddd48 443
leothedragon 0:8f0bb79ddd48 444 /**
leothedragon 0:8f0bb79ddd48 445 * \def MBEDTLS_CIPHER_PADDING_XXX
leothedragon 0:8f0bb79ddd48 446 *
leothedragon 0:8f0bb79ddd48 447 * Uncomment or comment macros to add support for specific padding modes
leothedragon 0:8f0bb79ddd48 448 * in the cipher layer with cipher modes that support padding (e.g. CBC)
leothedragon 0:8f0bb79ddd48 449 *
leothedragon 0:8f0bb79ddd48 450 * If you disable all padding modes, only full blocks can be used with CBC.
leothedragon 0:8f0bb79ddd48 451 *
leothedragon 0:8f0bb79ddd48 452 * Enable padding modes in the cipher layer.
leothedragon 0:8f0bb79ddd48 453 */
leothedragon 0:8f0bb79ddd48 454 #define MBEDTLS_CIPHER_PADDING_PKCS7
leothedragon 0:8f0bb79ddd48 455 //#define MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS
leothedragon 0:8f0bb79ddd48 456 //#define MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN
leothedragon 0:8f0bb79ddd48 457 //#define MBEDTLS_CIPHER_PADDING_ZEROS
leothedragon 0:8f0bb79ddd48 458
leothedragon 0:8f0bb79ddd48 459 /**
leothedragon 0:8f0bb79ddd48 460 * \def MBEDTLS_ENABLE_WEAK_CIPHERSUITES
leothedragon 0:8f0bb79ddd48 461 *
leothedragon 0:8f0bb79ddd48 462 * Enable weak ciphersuites in SSL / TLS.
leothedragon 0:8f0bb79ddd48 463 * Warning: Only do so when you know what you are doing. This allows for
leothedragon 0:8f0bb79ddd48 464 * channels with virtually no security at all!
leothedragon 0:8f0bb79ddd48 465 *
leothedragon 0:8f0bb79ddd48 466 * This enables the following ciphersuites:
leothedragon 0:8f0bb79ddd48 467 * MBEDTLS_TLS_RSA_WITH_DES_CBC_SHA
leothedragon 0:8f0bb79ddd48 468 * MBEDTLS_TLS_DHE_RSA_WITH_DES_CBC_SHA
leothedragon 0:8f0bb79ddd48 469 *
leothedragon 0:8f0bb79ddd48 470 * Uncomment this macro to enable weak ciphersuites
leothedragon 0:8f0bb79ddd48 471 */
leothedragon 0:8f0bb79ddd48 472 //#define MBEDTLS_ENABLE_WEAK_CIPHERSUITES
leothedragon 0:8f0bb79ddd48 473
leothedragon 0:8f0bb79ddd48 474 /**
leothedragon 0:8f0bb79ddd48 475 * \def MBEDTLS_REMOVE_ARC4_CIPHERSUITES
leothedragon 0:8f0bb79ddd48 476 *
leothedragon 0:8f0bb79ddd48 477 * Remove RC4 ciphersuites by default in SSL / TLS.
leothedragon 0:8f0bb79ddd48 478 * This flag removes the ciphersuites based on RC4 from the default list as
leothedragon 0:8f0bb79ddd48 479 * returned by mbedtls_ssl_list_ciphersuites(). However, it is still possible to
leothedragon 0:8f0bb79ddd48 480 * enable (some of) them with mbedtls_ssl_conf_ciphersuites() by including them
leothedragon 0:8f0bb79ddd48 481 * explicitly.
leothedragon 0:8f0bb79ddd48 482 *
leothedragon 0:8f0bb79ddd48 483 * Uncomment this macro to remove RC4 ciphersuites by default.
leothedragon 0:8f0bb79ddd48 484 */
leothedragon 0:8f0bb79ddd48 485 #define MBEDTLS_REMOVE_ARC4_CIPHERSUITES
leothedragon 0:8f0bb79ddd48 486
leothedragon 0:8f0bb79ddd48 487 /**
leothedragon 0:8f0bb79ddd48 488 * \def MBEDTLS_ECP_XXXX_ENABLED
leothedragon 0:8f0bb79ddd48 489 *
leothedragon 0:8f0bb79ddd48 490 * Enables specific curves within the Elliptic Curve module.
leothedragon 0:8f0bb79ddd48 491 * By default all supported curves are enabled.
leothedragon 0:8f0bb79ddd48 492 *
leothedragon 0:8f0bb79ddd48 493 * Comment macros to disable the curve and functions for it
leothedragon 0:8f0bb79ddd48 494 */
leothedragon 0:8f0bb79ddd48 495 //#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
leothedragon 0:8f0bb79ddd48 496 //#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
leothedragon 0:8f0bb79ddd48 497 #define MBEDTLS_ECP_DP_SECP256R1_ENABLED
leothedragon 0:8f0bb79ddd48 498 //#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
leothedragon 0:8f0bb79ddd48 499 //#ifndef MBEDTLS_FREESCALE_LTC_PKHA /* PKHA suports only <=512 */
leothedragon 0:8f0bb79ddd48 500 //#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
leothedragon 0:8f0bb79ddd48 501 //#endif
leothedragon 0:8f0bb79ddd48 502 //#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
leothedragon 0:8f0bb79ddd48 503 //#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
leothedragon 0:8f0bb79ddd48 504 //#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
leothedragon 0:8f0bb79ddd48 505 //#define MBEDTLS_ECP_DP_BP256R1_ENABLED
leothedragon 0:8f0bb79ddd48 506 //#define MBEDTLS_ECP_DP_BP384R1_ENABLED
leothedragon 0:8f0bb79ddd48 507 //#define MBEDTLS_ECP_DP_BP512R1_ENABLED
leothedragon 0:8f0bb79ddd48 508 //#define MBEDTLS_ECP_DP_CURVE25519_ENABLED
leothedragon 0:8f0bb79ddd48 509
leothedragon 0:8f0bb79ddd48 510 /**
leothedragon 0:8f0bb79ddd48 511 * \def MBEDTLS_ECP_NIST_OPTIM
leothedragon 0:8f0bb79ddd48 512 *
leothedragon 0:8f0bb79ddd48 513 * Enable specific 'modulo p' routines for each NIST prime.
leothedragon 0:8f0bb79ddd48 514 * Depending on the prime and architecture, makes operations 4 to 8 times
leothedragon 0:8f0bb79ddd48 515 * faster on the corresponding curve.
leothedragon 0:8f0bb79ddd48 516 *
leothedragon 0:8f0bb79ddd48 517 * Comment this macro to disable NIST curves optimisation.
leothedragon 0:8f0bb79ddd48 518 */
leothedragon 0:8f0bb79ddd48 519 #define MBEDTLS_ECP_NIST_OPTIM
leothedragon 0:8f0bb79ddd48 520
leothedragon 0:8f0bb79ddd48 521 /**
leothedragon 0:8f0bb79ddd48 522 * \def MBEDTLS_ECDSA_DETERMINISTIC
leothedragon 0:8f0bb79ddd48 523 *
leothedragon 0:8f0bb79ddd48 524 * Enable deterministic ECDSA (RFC 6979).
leothedragon 0:8f0bb79ddd48 525 * Standard ECDSA is "fragile" in the sense that lack of entropy when signing
leothedragon 0:8f0bb79ddd48 526 * may result in a compromise of the long-term signing key. This is avoided by
leothedragon 0:8f0bb79ddd48 527 * the deterministic variant.
leothedragon 0:8f0bb79ddd48 528 *
leothedragon 0:8f0bb79ddd48 529 * Requires: MBEDTLS_HMAC_DRBG_C
leothedragon 0:8f0bb79ddd48 530 *
leothedragon 0:8f0bb79ddd48 531 * Comment this macro to disable deterministic ECDSA.
leothedragon 0:8f0bb79ddd48 532 */
leothedragon 0:8f0bb79ddd48 533 #define MBEDTLS_ECDSA_DETERMINISTIC
leothedragon 0:8f0bb79ddd48 534
leothedragon 0:8f0bb79ddd48 535 /**
leothedragon 0:8f0bb79ddd48 536 * \def MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 537 *
leothedragon 0:8f0bb79ddd48 538 * Enable the PSK based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 539 *
leothedragon 0:8f0bb79ddd48 540 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 541 * enabled as well):
leothedragon 0:8f0bb79ddd48 542 * MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 543 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 544 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 545 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 546 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 547 * MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 548 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 549 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 550 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 551 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 552 * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 553 * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 554 */
leothedragon 0:8f0bb79ddd48 555 //#define MBEDTLS_KEY_EXCHANGE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 556
leothedragon 0:8f0bb79ddd48 557 /**
leothedragon 0:8f0bb79ddd48 558 * \def MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 559 *
leothedragon 0:8f0bb79ddd48 560 * Enable the DHE-PSK based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 561 *
leothedragon 0:8f0bb79ddd48 562 * Requires: MBEDTLS_DHM_C
leothedragon 0:8f0bb79ddd48 563 *
leothedragon 0:8f0bb79ddd48 564 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 565 * enabled as well):
leothedragon 0:8f0bb79ddd48 566 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 567 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 568 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 569 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 570 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 571 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 572 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 573 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 574 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 575 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 576 * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 577 * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 578 */
leothedragon 0:8f0bb79ddd48 579 //#define MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 580
leothedragon 0:8f0bb79ddd48 581 /**
leothedragon 0:8f0bb79ddd48 582 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 583 *
leothedragon 0:8f0bb79ddd48 584 * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 585 *
leothedragon 0:8f0bb79ddd48 586 * Requires: MBEDTLS_ECDH_C
leothedragon 0:8f0bb79ddd48 587 *
leothedragon 0:8f0bb79ddd48 588 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 589 * enabled as well):
leothedragon 0:8f0bb79ddd48 590 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 591 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 592 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 593 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 594 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 595 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 596 * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 597 * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 598 */
leothedragon 0:8f0bb79ddd48 599 //#define MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 600
leothedragon 0:8f0bb79ddd48 601 /**
leothedragon 0:8f0bb79ddd48 602 * \def MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 603 *
leothedragon 0:8f0bb79ddd48 604 * Enable the RSA-PSK based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 605 *
leothedragon 0:8f0bb79ddd48 606 * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
leothedragon 0:8f0bb79ddd48 607 * MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 608 *
leothedragon 0:8f0bb79ddd48 609 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 610 * enabled as well):
leothedragon 0:8f0bb79ddd48 611 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 612 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 613 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 614 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 615 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 616 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 617 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 618 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 619 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 620 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 621 * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 622 * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 623 */
leothedragon 0:8f0bb79ddd48 624 //#define MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED
leothedragon 0:8f0bb79ddd48 625 /**
leothedragon 0:8f0bb79ddd48 626 * \def MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 627 *
leothedragon 0:8f0bb79ddd48 628 * Enable the RSA-only based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 629 *
leothedragon 0:8f0bb79ddd48 630 * Requires: MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
leothedragon 0:8f0bb79ddd48 631 * MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 632 *
leothedragon 0:8f0bb79ddd48 633 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 634 * enabled as well):
leothedragon 0:8f0bb79ddd48 635 * MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 636 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 637 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 638 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 639 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 640 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 641 * MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 642 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 643 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 644 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 645 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 646 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 647 * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 648 * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 649 * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5
leothedragon 0:8f0bb79ddd48 650 */
leothedragon 0:8f0bb79ddd48 651 //#define MBEDTLS_KEY_EXCHANGE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 652
leothedragon 0:8f0bb79ddd48 653 /**
leothedragon 0:8f0bb79ddd48 654 * \def MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 655 *
leothedragon 0:8f0bb79ddd48 656 * Enable the DHE-RSA based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 657 *
leothedragon 0:8f0bb79ddd48 658 * Requires: MBEDTLS_DHM_C, MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
leothedragon 0:8f0bb79ddd48 659 * MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 660 *
leothedragon 0:8f0bb79ddd48 661 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 662 * enabled as well):
leothedragon 0:8f0bb79ddd48 663 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 664 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 665 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 666 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 667 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 668 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 669 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 670 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 671 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 672 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 673 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 674 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 675 * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 676 */
leothedragon 0:8f0bb79ddd48 677 //#define MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 678
leothedragon 0:8f0bb79ddd48 679 /**
leothedragon 0:8f0bb79ddd48 680 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 681 *
leothedragon 0:8f0bb79ddd48 682 * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 683 *
leothedragon 0:8f0bb79ddd48 684 * Requires: MBEDTLS_ECDH_C, MBEDTLS_RSA_C, MBEDTLS_PKCS1_V15,
leothedragon 0:8f0bb79ddd48 685 * MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 686 *
leothedragon 0:8f0bb79ddd48 687 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 688 * enabled as well):
leothedragon 0:8f0bb79ddd48 689 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 690 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 691 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 692 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 693 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 694 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 695 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 696 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 697 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 698 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 699 * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 700 * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 701 */
leothedragon 0:8f0bb79ddd48 702 //#define MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 703
leothedragon 0:8f0bb79ddd48 704 /**
leothedragon 0:8f0bb79ddd48 705 * \def MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
leothedragon 0:8f0bb79ddd48 706 *
leothedragon 0:8f0bb79ddd48 707 * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 708 *
leothedragon 0:8f0bb79ddd48 709 * Requires: MBEDTLS_ECDH_C, MBEDTLS_ECDSA_C, MBEDTLS_X509_CRT_PARSE_C,
leothedragon 0:8f0bb79ddd48 710 *
leothedragon 0:8f0bb79ddd48 711 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 712 * enabled as well):
leothedragon 0:8f0bb79ddd48 713 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 714 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 715 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 716 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 717 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 718 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 719 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 720 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 721 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 722 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 723 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 724 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 725 */
leothedragon 0:8f0bb79ddd48 726 #define MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
leothedragon 0:8f0bb79ddd48 727 /**
leothedragon 0:8f0bb79ddd48 728 * \def MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
leothedragon 0:8f0bb79ddd48 729 *
leothedragon 0:8f0bb79ddd48 730 * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 731 *
leothedragon 0:8f0bb79ddd48 732 * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 733 *
leothedragon 0:8f0bb79ddd48 734 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 735 * enabled as well):
leothedragon 0:8f0bb79ddd48 736 * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 737 * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 738 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 739 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 740 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 741 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 742 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 743 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 744 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 745 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 746 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 747 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 748 */
leothedragon 0:8f0bb79ddd48 749 //#define MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
leothedragon 0:8f0bb79ddd48 750
leothedragon 0:8f0bb79ddd48 751 /**
leothedragon 0:8f0bb79ddd48 752 * \def MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 753 *
leothedragon 0:8f0bb79ddd48 754 * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS.
leothedragon 0:8f0bb79ddd48 755 *
leothedragon 0:8f0bb79ddd48 756 * Requires: MBEDTLS_ECDH_C, MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 757 *
leothedragon 0:8f0bb79ddd48 758 * This enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 759 * enabled as well):
leothedragon 0:8f0bb79ddd48 760 * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 761 * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 762 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 763 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 764 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 765 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 766 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 767 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 768 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 769 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 770 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 771 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 772 */
leothedragon 0:8f0bb79ddd48 773 //#define MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED
leothedragon 0:8f0bb79ddd48 774
leothedragon 0:8f0bb79ddd48 775 /**
leothedragon 0:8f0bb79ddd48 776 * \def MBEDTLS_PK_PARSE_EC_EXTENDED
leothedragon 0:8f0bb79ddd48 777 *
leothedragon 0:8f0bb79ddd48 778 * Enhance support for reading EC keys using variants of SEC1 not allowed by
leothedragon 0:8f0bb79ddd48 779 * RFC 5915 and RFC 5480.
leothedragon 0:8f0bb79ddd48 780 *
leothedragon 0:8f0bb79ddd48 781 * Currently this means parsing the SpecifiedECDomain choice of EC
leothedragon 0:8f0bb79ddd48 782 * parameters (only known groups are supported, not arbitrary domains, to
leothedragon 0:8f0bb79ddd48 783 * avoid validation issues).
leothedragon 0:8f0bb79ddd48 784 *
leothedragon 0:8f0bb79ddd48 785 * Disable if you only need to support RFC 5915 + 5480 key formats.
leothedragon 0:8f0bb79ddd48 786 */
leothedragon 0:8f0bb79ddd48 787 //#define MBEDTLS_PK_PARSE_EC_EXTENDED
leothedragon 0:8f0bb79ddd48 788
leothedragon 0:8f0bb79ddd48 789 /**
leothedragon 0:8f0bb79ddd48 790 * \def MBEDTLS_ERROR_STRERROR_DUMMY
leothedragon 0:8f0bb79ddd48 791 *
leothedragon 0:8f0bb79ddd48 792 * Enable a dummy error function to make use of mbedtls_strerror() in
leothedragon 0:8f0bb79ddd48 793 * third party libraries easier when MBEDTLS_ERROR_C is disabled
leothedragon 0:8f0bb79ddd48 794 * (no effect when MBEDTLS_ERROR_C is enabled).
leothedragon 0:8f0bb79ddd48 795 *
leothedragon 0:8f0bb79ddd48 796 * You can safely disable this if MBEDTLS_ERROR_C is enabled, or if you're
leothedragon 0:8f0bb79ddd48 797 * not using mbedtls_strerror() or error_strerror() in your application.
leothedragon 0:8f0bb79ddd48 798 *
leothedragon 0:8f0bb79ddd48 799 * Disable if you run into name conflicts and want to really remove the
leothedragon 0:8f0bb79ddd48 800 * mbedtls_strerror()
leothedragon 0:8f0bb79ddd48 801 */
leothedragon 0:8f0bb79ddd48 802 //#define MBEDTLS_ERROR_STRERROR_DUMMY
leothedragon 0:8f0bb79ddd48 803
leothedragon 0:8f0bb79ddd48 804 /**
leothedragon 0:8f0bb79ddd48 805 * \def MBEDTLS_GENPRIME
leothedragon 0:8f0bb79ddd48 806 *
leothedragon 0:8f0bb79ddd48 807 * Enable the prime-number generation code.
leothedragon 0:8f0bb79ddd48 808 *
leothedragon 0:8f0bb79ddd48 809 * Requires: MBEDTLS_BIGNUM_C
leothedragon 0:8f0bb79ddd48 810 */
leothedragon 0:8f0bb79ddd48 811 //#define MBEDTLS_GENPRIME
leothedragon 0:8f0bb79ddd48 812
leothedragon 0:8f0bb79ddd48 813 /**
leothedragon 0:8f0bb79ddd48 814 * \def MBEDTLS_FS_IO
leothedragon 0:8f0bb79ddd48 815 *
leothedragon 0:8f0bb79ddd48 816 * Enable functions that use the filesystem.
leothedragon 0:8f0bb79ddd48 817 */
leothedragon 0:8f0bb79ddd48 818 //#define MBEDTLS_FS_IO
leothedragon 0:8f0bb79ddd48 819
leothedragon 0:8f0bb79ddd48 820 /**
leothedragon 0:8f0bb79ddd48 821 * \def MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
leothedragon 0:8f0bb79ddd48 822 *
leothedragon 0:8f0bb79ddd48 823 * Do not add default entropy sources. These are the platform specific,
leothedragon 0:8f0bb79ddd48 824 * mbedtls_timing_hardclock and HAVEGE based poll functions.
leothedragon 0:8f0bb79ddd48 825 *
leothedragon 0:8f0bb79ddd48 826 * This is useful to have more control over the added entropy sources in an
leothedragon 0:8f0bb79ddd48 827 * application.
leothedragon 0:8f0bb79ddd48 828 *
leothedragon 0:8f0bb79ddd48 829 * Uncomment this macro to prevent loading of default entropy functions.
leothedragon 0:8f0bb79ddd48 830 */
leothedragon 0:8f0bb79ddd48 831 //#define MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES
leothedragon 0:8f0bb79ddd48 832
leothedragon 0:8f0bb79ddd48 833 /**
leothedragon 0:8f0bb79ddd48 834 * \def MBEDTLS_NO_PLATFORM_ENTROPY
leothedragon 0:8f0bb79ddd48 835 *
leothedragon 0:8f0bb79ddd48 836 * Do not use built-in platform entropy functions.
leothedragon 0:8f0bb79ddd48 837 * This is useful if your platform does not support
leothedragon 0:8f0bb79ddd48 838 * standards like the /dev/urandom or Windows CryptoAPI.
leothedragon 0:8f0bb79ddd48 839 *
leothedragon 0:8f0bb79ddd48 840 * Uncomment this macro to disable the built-in platform entropy functions.
leothedragon 0:8f0bb79ddd48 841 */
leothedragon 0:8f0bb79ddd48 842 #define MBEDTLS_NO_PLATFORM_ENTROPY
leothedragon 0:8f0bb79ddd48 843
leothedragon 0:8f0bb79ddd48 844 /**
leothedragon 0:8f0bb79ddd48 845 * \def MBEDTLS_ENTROPY_FORCE_SHA256
leothedragon 0:8f0bb79ddd48 846 *
leothedragon 0:8f0bb79ddd48 847 * Force the entropy accumulator to use a SHA-256 accumulator instead of the
leothedragon 0:8f0bb79ddd48 848 * default SHA-512 based one (if both are available).
leothedragon 0:8f0bb79ddd48 849 *
leothedragon 0:8f0bb79ddd48 850 * Requires: MBEDTLS_SHA256_C
leothedragon 0:8f0bb79ddd48 851 *
leothedragon 0:8f0bb79ddd48 852 * On 32-bit systems SHA-256 can be much faster than SHA-512. Use this option
leothedragon 0:8f0bb79ddd48 853 * if you have performance concerns.
leothedragon 0:8f0bb79ddd48 854 *
leothedragon 0:8f0bb79ddd48 855 * This option is only useful if both MBEDTLS_SHA256_C and
leothedragon 0:8f0bb79ddd48 856 * MBEDTLS_SHA512_C are defined. Otherwise the available hash module is used.
leothedragon 0:8f0bb79ddd48 857 */
leothedragon 0:8f0bb79ddd48 858 //#define MBEDTLS_ENTROPY_FORCE_SHA256
leothedragon 0:8f0bb79ddd48 859
leothedragon 0:8f0bb79ddd48 860 /**
leothedragon 0:8f0bb79ddd48 861 * \def MBEDTLS_MEMORY_DEBUG
leothedragon 0:8f0bb79ddd48 862 *
leothedragon 0:8f0bb79ddd48 863 * Enable debugging of buffer allocator memory issues. Automatically prints
leothedragon 0:8f0bb79ddd48 864 * (to stderr) all (fatal) messages on memory allocation issues. Enables
leothedragon 0:8f0bb79ddd48 865 * function for 'debug output' of allocated memory.
leothedragon 0:8f0bb79ddd48 866 *
leothedragon 0:8f0bb79ddd48 867 * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
leothedragon 0:8f0bb79ddd48 868 *
leothedragon 0:8f0bb79ddd48 869 * Uncomment this macro to let the buffer allocator print out error messages.
leothedragon 0:8f0bb79ddd48 870 */
leothedragon 0:8f0bb79ddd48 871 //#define MBEDTLS_MEMORY_DEBUG
leothedragon 0:8f0bb79ddd48 872
leothedragon 0:8f0bb79ddd48 873 /**
leothedragon 0:8f0bb79ddd48 874 * \def MBEDTLS_MEMORY_BACKTRACE
leothedragon 0:8f0bb79ddd48 875 *
leothedragon 0:8f0bb79ddd48 876 * Include backtrace information with each allocated block.
leothedragon 0:8f0bb79ddd48 877 *
leothedragon 0:8f0bb79ddd48 878 * Requires: MBEDTLS_MEMORY_BUFFER_ALLOC_C
leothedragon 0:8f0bb79ddd48 879 * GLIBC-compatible backtrace() an backtrace_symbols() support
leothedragon 0:8f0bb79ddd48 880 *
leothedragon 0:8f0bb79ddd48 881 * Uncomment this macro to include backtrace information
leothedragon 0:8f0bb79ddd48 882 */
leothedragon 0:8f0bb79ddd48 883 //#define MBEDTLS_MEMORY_BACKTRACE
leothedragon 0:8f0bb79ddd48 884
leothedragon 0:8f0bb79ddd48 885 /**
leothedragon 0:8f0bb79ddd48 886 * \def MBEDTLS_PK_RSA_ALT_SUPPORT
leothedragon 0:8f0bb79ddd48 887 *
leothedragon 0:8f0bb79ddd48 888 * Support external private RSA keys (eg from a HSM) in the PK layer.
leothedragon 0:8f0bb79ddd48 889 *
leothedragon 0:8f0bb79ddd48 890 * Comment this macro to disable support for external private RSA keys.
leothedragon 0:8f0bb79ddd48 891 */
leothedragon 0:8f0bb79ddd48 892 //#define MBEDTLS_PK_RSA_ALT_SUPPORT
leothedragon 0:8f0bb79ddd48 893
leothedragon 0:8f0bb79ddd48 894 /**
leothedragon 0:8f0bb79ddd48 895 * \def MBEDTLS_PKCS1_V15
leothedragon 0:8f0bb79ddd48 896 *
leothedragon 0:8f0bb79ddd48 897 * Enable support for PKCS#1 v1.5 encoding.
leothedragon 0:8f0bb79ddd48 898 *
leothedragon 0:8f0bb79ddd48 899 * Requires: MBEDTLS_RSA_C
leothedragon 0:8f0bb79ddd48 900 *
leothedragon 0:8f0bb79ddd48 901 * This enables support for PKCS#1 v1.5 operations.
leothedragon 0:8f0bb79ddd48 902 */
leothedragon 0:8f0bb79ddd48 903 #define MBEDTLS_PKCS1_V15
leothedragon 0:8f0bb79ddd48 904
leothedragon 0:8f0bb79ddd48 905 /**
leothedragon 0:8f0bb79ddd48 906 * \def MBEDTLS_PKCS1_V21
leothedragon 0:8f0bb79ddd48 907 *
leothedragon 0:8f0bb79ddd48 908 * Enable support for PKCS#1 v2.1 encoding.
leothedragon 0:8f0bb79ddd48 909 *
leothedragon 0:8f0bb79ddd48 910 * Requires: MBEDTLS_MD_C, MBEDTLS_RSA_C
leothedragon 0:8f0bb79ddd48 911 *
leothedragon 0:8f0bb79ddd48 912 * This enables support for RSAES-OAEP and RSASSA-PSS operations.
leothedragon 0:8f0bb79ddd48 913 */
leothedragon 0:8f0bb79ddd48 914 #define MBEDTLS_PKCS1_V21
leothedragon 0:8f0bb79ddd48 915
leothedragon 0:8f0bb79ddd48 916 /**
leothedragon 0:8f0bb79ddd48 917 * \def MBEDTLS_RSA_NO_CRT
leothedragon 0:8f0bb79ddd48 918 *
leothedragon 0:8f0bb79ddd48 919 * Do not use the Chinese Remainder Theorem for the RSA private operation.
leothedragon 0:8f0bb79ddd48 920 *
leothedragon 0:8f0bb79ddd48 921 * Uncomment this macro to disable the use of CRT in RSA.
leothedragon 0:8f0bb79ddd48 922 *
leothedragon 0:8f0bb79ddd48 923 */
leothedragon 0:8f0bb79ddd48 924 //#define MBEDTLS_RSA_NO_CRT
leothedragon 0:8f0bb79ddd48 925
leothedragon 0:8f0bb79ddd48 926 /**
leothedragon 0:8f0bb79ddd48 927 * \def MBEDTLS_SELF_TEST
leothedragon 0:8f0bb79ddd48 928 *
leothedragon 0:8f0bb79ddd48 929 * Enable the checkup functions (*_self_test).
leothedragon 0:8f0bb79ddd48 930 */
leothedragon 0:8f0bb79ddd48 931 //#define MBEDTLS_SELF_TEST
leothedragon 0:8f0bb79ddd48 932
leothedragon 0:8f0bb79ddd48 933 /**
leothedragon 0:8f0bb79ddd48 934 * \def MBEDTLS_SHA256_SMALLER
leothedragon 0:8f0bb79ddd48 935 *
leothedragon 0:8f0bb79ddd48 936 * Enable an implementation of SHA-256 that has lower ROM footprint but also
leothedragon 0:8f0bb79ddd48 937 * lower performance.
leothedragon 0:8f0bb79ddd48 938 *
leothedragon 0:8f0bb79ddd48 939 * The default implementation is meant to be a reasonnable compromise between
leothedragon 0:8f0bb79ddd48 940 * performance and size. This version optimizes more aggressively for size at
leothedragon 0:8f0bb79ddd48 941 * the expense of performance. Eg on Cortex-M4 it reduces the size of
leothedragon 0:8f0bb79ddd48 942 * mbedtls_sha256_process() from ~2KB to ~0.5KB for a performance hit of about
leothedragon 0:8f0bb79ddd48 943 * 30%.
leothedragon 0:8f0bb79ddd48 944 *
leothedragon 0:8f0bb79ddd48 945 * Uncomment to enable the smaller implementation of SHA256.
leothedragon 0:8f0bb79ddd48 946 */
leothedragon 0:8f0bb79ddd48 947 //#define MBEDTLS_SHA256_SMALLER
leothedragon 0:8f0bb79ddd48 948
leothedragon 0:8f0bb79ddd48 949 /**
leothedragon 0:8f0bb79ddd48 950 * \def MBEDTLS_SSL_AEAD_RANDOM_IV
leothedragon 0:8f0bb79ddd48 951 *
leothedragon 0:8f0bb79ddd48 952 * Generate a random IV rather than using the record sequence number as a
leothedragon 0:8f0bb79ddd48 953 * nonce for ciphersuites using and AEAD algorithm (GCM or CCM).
leothedragon 0:8f0bb79ddd48 954 *
leothedragon 0:8f0bb79ddd48 955 * Using the sequence number is generally recommended.
leothedragon 0:8f0bb79ddd48 956 *
leothedragon 0:8f0bb79ddd48 957 * Uncomment this macro to always use random IVs with AEAD ciphersuites.
leothedragon 0:8f0bb79ddd48 958 */
leothedragon 0:8f0bb79ddd48 959 //#define MBEDTLS_SSL_AEAD_RANDOM_IV
leothedragon 0:8f0bb79ddd48 960
leothedragon 0:8f0bb79ddd48 961 /**
leothedragon 0:8f0bb79ddd48 962 * \def MBEDTLS_SSL_ALL_ALERT_MESSAGES
leothedragon 0:8f0bb79ddd48 963 *
leothedragon 0:8f0bb79ddd48 964 * Enable sending of alert messages in case of encountered errors as per RFC.
leothedragon 0:8f0bb79ddd48 965 * If you choose not to send the alert messages, mbed TLS can still communicate
leothedragon 0:8f0bb79ddd48 966 * with other servers, only debugging of failures is harder.
leothedragon 0:8f0bb79ddd48 967 *
leothedragon 0:8f0bb79ddd48 968 * The advantage of not sending alert messages, is that no information is given
leothedragon 0:8f0bb79ddd48 969 * about reasons for failures thus preventing adversaries of gaining intel.
leothedragon 0:8f0bb79ddd48 970 *
leothedragon 0:8f0bb79ddd48 971 * Enable sending of all alert messages
leothedragon 0:8f0bb79ddd48 972 */
leothedragon 0:8f0bb79ddd48 973 #define MBEDTLS_SSL_ALL_ALERT_MESSAGES
leothedragon 0:8f0bb79ddd48 974
leothedragon 0:8f0bb79ddd48 975 /**
leothedragon 0:8f0bb79ddd48 976 * \def MBEDTLS_SSL_DEBUG_ALL
leothedragon 0:8f0bb79ddd48 977 *
leothedragon 0:8f0bb79ddd48 978 * Enable the debug messages in SSL module for all issues.
leothedragon 0:8f0bb79ddd48 979 * Debug messages have been disabled in some places to prevent timing
leothedragon 0:8f0bb79ddd48 980 * attacks due to (unbalanced) debugging function calls.
leothedragon 0:8f0bb79ddd48 981 *
leothedragon 0:8f0bb79ddd48 982 * If you need all error reporting you should enable this during debugging,
leothedragon 0:8f0bb79ddd48 983 * but remove this for production servers that should log as well.
leothedragon 0:8f0bb79ddd48 984 *
leothedragon 0:8f0bb79ddd48 985 * Uncomment this macro to report all debug messages on errors introducing
leothedragon 0:8f0bb79ddd48 986 * a timing side-channel.
leothedragon 0:8f0bb79ddd48 987 *
leothedragon 0:8f0bb79ddd48 988 */
leothedragon 0:8f0bb79ddd48 989 //#define MBEDTLS_SSL_DEBUG_ALL
leothedragon 0:8f0bb79ddd48 990
leothedragon 0:8f0bb79ddd48 991 /** \def MBEDTLS_SSL_ENCRYPT_THEN_MAC
leothedragon 0:8f0bb79ddd48 992 *
leothedragon 0:8f0bb79ddd48 993 * Enable support for Encrypt-then-MAC, RFC 7366.
leothedragon 0:8f0bb79ddd48 994 *
leothedragon 0:8f0bb79ddd48 995 * This allows peers that both support it to use a more robust protection for
leothedragon 0:8f0bb79ddd48 996 * ciphersuites using CBC, providing deep resistance against timing attacks
leothedragon 0:8f0bb79ddd48 997 * on the padding or underlying cipher.
leothedragon 0:8f0bb79ddd48 998 *
leothedragon 0:8f0bb79ddd48 999 * This only affects CBC ciphersuites, and is useless if none is defined.
leothedragon 0:8f0bb79ddd48 1000 *
leothedragon 0:8f0bb79ddd48 1001 * Requires: MBEDTLS_SSL_PROTO_TLS1 or
leothedragon 0:8f0bb79ddd48 1002 * MBEDTLS_SSL_PROTO_TLS1_1 or
leothedragon 0:8f0bb79ddd48 1003 * MBEDTLS_SSL_PROTO_TLS1_2
leothedragon 0:8f0bb79ddd48 1004 *
leothedragon 0:8f0bb79ddd48 1005 * Comment this macro to disable support for Encrypt-then-MAC
leothedragon 0:8f0bb79ddd48 1006 */
leothedragon 0:8f0bb79ddd48 1007 #define MBEDTLS_SSL_ENCRYPT_THEN_MAC
leothedragon 0:8f0bb79ddd48 1008
leothedragon 0:8f0bb79ddd48 1009 /** \def MBEDTLS_SSL_EXTENDED_MASTER_SECRET
leothedragon 0:8f0bb79ddd48 1010 *
leothedragon 0:8f0bb79ddd48 1011 * Enable support for Extended Master Secret, aka Session Hash
leothedragon 0:8f0bb79ddd48 1012 * (draft-ietf-tls-session-hash-02).
leothedragon 0:8f0bb79ddd48 1013 *
leothedragon 0:8f0bb79ddd48 1014 * This was introduced as "the proper fix" to the Triple Handshake familiy of
leothedragon 0:8f0bb79ddd48 1015 * attacks, but it is recommended to always use it (even if you disable
leothedragon 0:8f0bb79ddd48 1016 * renegotiation), since it actually fixes a more fundamental issue in the
leothedragon 0:8f0bb79ddd48 1017 * original SSL/TLS design, and has implications beyond Triple Handshake.
leothedragon 0:8f0bb79ddd48 1018 *
leothedragon 0:8f0bb79ddd48 1019 * Requires: MBEDTLS_SSL_PROTO_TLS1 or
leothedragon 0:8f0bb79ddd48 1020 * MBEDTLS_SSL_PROTO_TLS1_1 or
leothedragon 0:8f0bb79ddd48 1021 * MBEDTLS_SSL_PROTO_TLS1_2
leothedragon 0:8f0bb79ddd48 1022 *
leothedragon 0:8f0bb79ddd48 1023 * Comment this macro to disable support for Extended Master Secret.
leothedragon 0:8f0bb79ddd48 1024 */
leothedragon 0:8f0bb79ddd48 1025 #define MBEDTLS_SSL_EXTENDED_MASTER_SECRET
leothedragon 0:8f0bb79ddd48 1026
leothedragon 0:8f0bb79ddd48 1027 /**
leothedragon 0:8f0bb79ddd48 1028 * \def MBEDTLS_SSL_FALLBACK_SCSV
leothedragon 0:8f0bb79ddd48 1029 *
leothedragon 0:8f0bb79ddd48 1030 * Enable support for FALLBACK_SCSV (draft-ietf-tls-downgrade-scsv-00).
leothedragon 0:8f0bb79ddd48 1031 *
leothedragon 0:8f0bb79ddd48 1032 * For servers, it is recommended to always enable this, unless you support
leothedragon 0:8f0bb79ddd48 1033 * only one version of TLS, or know for sure that none of your clients
leothedragon 0:8f0bb79ddd48 1034 * implements a fallback strategy.
leothedragon 0:8f0bb79ddd48 1035 *
leothedragon 0:8f0bb79ddd48 1036 * For clients, you only need this if you're using a fallback strategy, which
leothedragon 0:8f0bb79ddd48 1037 * is not recommended in the first place, unless you absolutely need it to
leothedragon 0:8f0bb79ddd48 1038 * interoperate with buggy (version-intolerant) servers.
leothedragon 0:8f0bb79ddd48 1039 *
leothedragon 0:8f0bb79ddd48 1040 * Comment this macro to disable support for FALLBACK_SCSV
leothedragon 0:8f0bb79ddd48 1041 */
leothedragon 0:8f0bb79ddd48 1042 //#define MBEDTLS_SSL_FALLBACK_SCSV
leothedragon 0:8f0bb79ddd48 1043
leothedragon 0:8f0bb79ddd48 1044 /**
leothedragon 0:8f0bb79ddd48 1045 * \def MBEDTLS_SSL_HW_RECORD_ACCEL
leothedragon 0:8f0bb79ddd48 1046 *
leothedragon 0:8f0bb79ddd48 1047 * Enable hooking functions in SSL module for hardware acceleration of
leothedragon 0:8f0bb79ddd48 1048 * individual records.
leothedragon 0:8f0bb79ddd48 1049 *
leothedragon 0:8f0bb79ddd48 1050 * Uncomment this macro to enable hooking functions.
leothedragon 0:8f0bb79ddd48 1051 */
leothedragon 0:8f0bb79ddd48 1052 //#define MBEDTLS_SSL_HW_RECORD_ACCEL
leothedragon 0:8f0bb79ddd48 1053
leothedragon 0:8f0bb79ddd48 1054 /**
leothedragon 0:8f0bb79ddd48 1055 * \def MBEDTLS_SSL_CBC_RECORD_SPLITTING
leothedragon 0:8f0bb79ddd48 1056 *
leothedragon 0:8f0bb79ddd48 1057 * Enable 1/n-1 record splitting for CBC mode in SSLv3 and TLS 1.0.
leothedragon 0:8f0bb79ddd48 1058 *
leothedragon 0:8f0bb79ddd48 1059 * This is a countermeasure to the BEAST attack, which also minimizes the risk
leothedragon 0:8f0bb79ddd48 1060 * of interoperability issues compared to sending 0-length records.
leothedragon 0:8f0bb79ddd48 1061 *
leothedragon 0:8f0bb79ddd48 1062 * Comment this macro to disable 1/n-1 record splitting.
leothedragon 0:8f0bb79ddd48 1063 */
leothedragon 0:8f0bb79ddd48 1064 //#define MBEDTLS_SSL_CBC_RECORD_SPLITTING
leothedragon 0:8f0bb79ddd48 1065
leothedragon 0:8f0bb79ddd48 1066 /**
leothedragon 0:8f0bb79ddd48 1067 * \def MBEDTLS_SSL_RENEGOTIATION
leothedragon 0:8f0bb79ddd48 1068 *
leothedragon 0:8f0bb79ddd48 1069 * Enable support for TLS renegotiation.
leothedragon 0:8f0bb79ddd48 1070 *
leothedragon 0:8f0bb79ddd48 1071 * The two main uses of renegotiation are (1) refresh keys on long-lived
leothedragon 0:8f0bb79ddd48 1072 * connections and (2) client authentication after the initial handshake.
leothedragon 0:8f0bb79ddd48 1073 * If you don't need renegotiation, it's probably better to disable it, since
leothedragon 0:8f0bb79ddd48 1074 * it has been associated with security issues in the past and is easy to
leothedragon 0:8f0bb79ddd48 1075 * misuse/misunderstand.
leothedragon 0:8f0bb79ddd48 1076 *
leothedragon 0:8f0bb79ddd48 1077 * Comment this to disable support for renegotiation.
leothedragon 0:8f0bb79ddd48 1078 *
leothedragon 0:8f0bb79ddd48 1079 * \note Even if this option is disabled, both client and server are aware
leothedragon 0:8f0bb79ddd48 1080 * of the Renegotiation Indication Extension (RFC 5746) used to
leothedragon 0:8f0bb79ddd48 1081 * prevent the SSL renegotiation attack (see RFC 5746 Sect. 1).
leothedragon 0:8f0bb79ddd48 1082 * (See \c mbedtls_ssl_conf_legacy_renegotiation for the
leothedragon 0:8f0bb79ddd48 1083 * configuration of this extension).
leothedragon 0:8f0bb79ddd48 1084 *
leothedragon 0:8f0bb79ddd48 1085 * \note This feature is required by Device Management Client for Client-side
leothedragon 0:8f0bb79ddd48 1086 * certificate expiration verification. Disabling it will also require
leothedragon 0:8f0bb79ddd48 1087 * setting PAL_USE_SECURE_TIME to 0.
leothedragon 0:8f0bb79ddd48 1088 *
leothedragon 0:8f0bb79ddd48 1089 */
leothedragon 0:8f0bb79ddd48 1090 #define MBEDTLS_SSL_RENEGOTIATION
leothedragon 0:8f0bb79ddd48 1091
leothedragon 0:8f0bb79ddd48 1092 /**
leothedragon 0:8f0bb79ddd48 1093 * \def MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
leothedragon 0:8f0bb79ddd48 1094 *
leothedragon 0:8f0bb79ddd48 1095 * Enable support for receiving and parsing SSLv2 Client Hello messages for the
leothedragon 0:8f0bb79ddd48 1096 * SSL Server module (MBEDTLS_SSL_SRV_C).
leothedragon 0:8f0bb79ddd48 1097 *
leothedragon 0:8f0bb79ddd48 1098 * Uncomment this macro to enable support for SSLv2 Client Hello messages.
leothedragon 0:8f0bb79ddd48 1099 */
leothedragon 0:8f0bb79ddd48 1100 //#define MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
leothedragon 0:8f0bb79ddd48 1101
leothedragon 0:8f0bb79ddd48 1102 /**
leothedragon 0:8f0bb79ddd48 1103 * \def MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
leothedragon 0:8f0bb79ddd48 1104 *
leothedragon 0:8f0bb79ddd48 1105 * Pick the ciphersuite according to the client's preferences rather than ours
leothedragon 0:8f0bb79ddd48 1106 * in the SSL Server module (MBEDTLS_SSL_SRV_C).
leothedragon 0:8f0bb79ddd48 1107 *
leothedragon 0:8f0bb79ddd48 1108 * Uncomment this macro to respect client's ciphersuite order
leothedragon 0:8f0bb79ddd48 1109 */
leothedragon 0:8f0bb79ddd48 1110 //#define MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE
leothedragon 0:8f0bb79ddd48 1111
leothedragon 0:8f0bb79ddd48 1112 /**
leothedragon 0:8f0bb79ddd48 1113 * \def MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
leothedragon 0:8f0bb79ddd48 1114 *
leothedragon 0:8f0bb79ddd48 1115 * Enable support for RFC 6066 max_fragment_length extension in SSL.
leothedragon 0:8f0bb79ddd48 1116 *
leothedragon 0:8f0bb79ddd48 1117 * Comment this macro to disable support for the max_fragment_length extension
leothedragon 0:8f0bb79ddd48 1118 */
leothedragon 0:8f0bb79ddd48 1119 #define MBEDTLS_SSL_MAX_FRAGMENT_LENGTH
leothedragon 0:8f0bb79ddd48 1120
leothedragon 0:8f0bb79ddd48 1121 /**
leothedragon 0:8f0bb79ddd48 1122 * \def MBEDTLS_SSL_PROTO_SSL3
leothedragon 0:8f0bb79ddd48 1123 *
leothedragon 0:8f0bb79ddd48 1124 * Enable support for SSL 3.0.
leothedragon 0:8f0bb79ddd48 1125 *
leothedragon 0:8f0bb79ddd48 1126 * Requires: MBEDTLS_MD5_C
leothedragon 0:8f0bb79ddd48 1127 * MBEDTLS_SHA1_C
leothedragon 0:8f0bb79ddd48 1128 *
leothedragon 0:8f0bb79ddd48 1129 * Comment this macro to disable support for SSL 3.0
leothedragon 0:8f0bb79ddd48 1130 */
leothedragon 0:8f0bb79ddd48 1131 //#define MBEDTLS_SSL_PROTO_SSL3
leothedragon 0:8f0bb79ddd48 1132
leothedragon 0:8f0bb79ddd48 1133 /**
leothedragon 0:8f0bb79ddd48 1134 * \def MBEDTLS_SSL_PROTO_TLS1
leothedragon 0:8f0bb79ddd48 1135 *
leothedragon 0:8f0bb79ddd48 1136 * Enable support for TLS 1.0.
leothedragon 0:8f0bb79ddd48 1137 *
leothedragon 0:8f0bb79ddd48 1138 * Requires: MBEDTLS_MD5_C
leothedragon 0:8f0bb79ddd48 1139 * MBEDTLS_SHA1_C
leothedragon 0:8f0bb79ddd48 1140 *
leothedragon 0:8f0bb79ddd48 1141 * Comment this macro to disable support for TLS 1.0
leothedragon 0:8f0bb79ddd48 1142 */
leothedragon 0:8f0bb79ddd48 1143 //#define MBEDTLS_SSL_PROTO_TLS1
leothedragon 0:8f0bb79ddd48 1144
leothedragon 0:8f0bb79ddd48 1145 /**
leothedragon 0:8f0bb79ddd48 1146 * \def MBEDTLS_SSL_PROTO_TLS1_1
leothedragon 0:8f0bb79ddd48 1147 *
leothedragon 0:8f0bb79ddd48 1148 * Enable support for TLS 1.1 (and DTLS 1.0 if DTLS is enabled).
leothedragon 0:8f0bb79ddd48 1149 *
leothedragon 0:8f0bb79ddd48 1150 * Requires: MBEDTLS_MD5_C
leothedragon 0:8f0bb79ddd48 1151 * MBEDTLS_SHA1_C
leothedragon 0:8f0bb79ddd48 1152 *
leothedragon 0:8f0bb79ddd48 1153 * Comment this macro to disable support for TLS 1.1 / DTLS 1.0
leothedragon 0:8f0bb79ddd48 1154 */
leothedragon 0:8f0bb79ddd48 1155 //#define MBEDTLS_SSL_PROTO_TLS1_1
leothedragon 0:8f0bb79ddd48 1156
leothedragon 0:8f0bb79ddd48 1157 /**
leothedragon 0:8f0bb79ddd48 1158 * \def MBEDTLS_SSL_PROTO_TLS1_2
leothedragon 0:8f0bb79ddd48 1159 *
leothedragon 0:8f0bb79ddd48 1160 * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
leothedragon 0:8f0bb79ddd48 1161 *
leothedragon 0:8f0bb79ddd48 1162 * Requires: MBEDTLS_SHA1_C or MBEDTLS_SHA256_C or MBEDTLS_SHA512_C
leothedragon 0:8f0bb79ddd48 1163 * (Depends on ciphersuites)
leothedragon 0:8f0bb79ddd48 1164 *
leothedragon 0:8f0bb79ddd48 1165 * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
leothedragon 0:8f0bb79ddd48 1166 */
leothedragon 0:8f0bb79ddd48 1167 #define MBEDTLS_SSL_PROTO_TLS1_2
leothedragon 0:8f0bb79ddd48 1168
leothedragon 0:8f0bb79ddd48 1169 /**
leothedragon 0:8f0bb79ddd48 1170 * \def MBEDTLS_SSL_PROTO_DTLS
leothedragon 0:8f0bb79ddd48 1171 *
leothedragon 0:8f0bb79ddd48 1172 * Enable support for DTLS (all available versions).
leothedragon 0:8f0bb79ddd48 1173 *
leothedragon 0:8f0bb79ddd48 1174 * Enable this and MBEDTLS_SSL_PROTO_TLS1_1 to enable DTLS 1.0,
leothedragon 0:8f0bb79ddd48 1175 * and/or this and MBEDTLS_SSL_PROTO_TLS1_2 to enable DTLS 1.2.
leothedragon 0:8f0bb79ddd48 1176 *
leothedragon 0:8f0bb79ddd48 1177 * Requires: MBEDTLS_SSL_PROTO_TLS1_1
leothedragon 0:8f0bb79ddd48 1178 * or MBEDTLS_SSL_PROTO_TLS1_2
leothedragon 0:8f0bb79ddd48 1179 *
leothedragon 0:8f0bb79ddd48 1180 * Comment this macro to disable support for DTLS
leothedragon 0:8f0bb79ddd48 1181 */
leothedragon 0:8f0bb79ddd48 1182 #define MBEDTLS_SSL_PROTO_DTLS
leothedragon 0:8f0bb79ddd48 1183
leothedragon 0:8f0bb79ddd48 1184 /**
leothedragon 0:8f0bb79ddd48 1185 * \def MBEDTLS_SSL_ALPN
leothedragon 0:8f0bb79ddd48 1186 *
leothedragon 0:8f0bb79ddd48 1187 * Enable support for RFC 7301 Application Layer Protocol Negotiation.
leothedragon 0:8f0bb79ddd48 1188 *
leothedragon 0:8f0bb79ddd48 1189 * Comment this macro to disable support for ALPN.
leothedragon 0:8f0bb79ddd48 1190 */
leothedragon 0:8f0bb79ddd48 1191 #define MBEDTLS_SSL_ALPN
leothedragon 0:8f0bb79ddd48 1192
leothedragon 0:8f0bb79ddd48 1193 /**
leothedragon 0:8f0bb79ddd48 1194 * \def MBEDTLS_SSL_DTLS_ANTI_REPLAY
leothedragon 0:8f0bb79ddd48 1195 *
leothedragon 0:8f0bb79ddd48 1196 * Enable support for the anti-replay mechanism in DTLS.
leothedragon 0:8f0bb79ddd48 1197 *
leothedragon 0:8f0bb79ddd48 1198 * Requires: MBEDTLS_SSL_TLS_C
leothedragon 0:8f0bb79ddd48 1199 * MBEDTLS_SSL_PROTO_DTLS
leothedragon 0:8f0bb79ddd48 1200 *
leothedragon 0:8f0bb79ddd48 1201 * \warning Disabling this is often a security risk!
leothedragon 0:8f0bb79ddd48 1202 * See mbedtls_ssl_conf_dtls_anti_replay() for details.
leothedragon 0:8f0bb79ddd48 1203 *
leothedragon 0:8f0bb79ddd48 1204 * Comment this to disable anti-replay in DTLS.
leothedragon 0:8f0bb79ddd48 1205 */
leothedragon 0:8f0bb79ddd48 1206 #define MBEDTLS_SSL_DTLS_ANTI_REPLAY
leothedragon 0:8f0bb79ddd48 1207
leothedragon 0:8f0bb79ddd48 1208 /**
leothedragon 0:8f0bb79ddd48 1209 * \def MBEDTLS_SSL_DTLS_HELLO_VERIFY
leothedragon 0:8f0bb79ddd48 1210 *
leothedragon 0:8f0bb79ddd48 1211 * Enable support for HelloVerifyRequest on DTLS servers.
leothedragon 0:8f0bb79ddd48 1212 *
leothedragon 0:8f0bb79ddd48 1213 * This feature is highly recommended to prevent DTLS servers being used as
leothedragon 0:8f0bb79ddd48 1214 * amplifiers in DoS attacks against other hosts. It should always be enabled
leothedragon 0:8f0bb79ddd48 1215 * unless you know for sure amplification cannot be a problem in the
leothedragon 0:8f0bb79ddd48 1216 * environment in which your server operates.
leothedragon 0:8f0bb79ddd48 1217 *
leothedragon 0:8f0bb79ddd48 1218 * \warning Disabling this can ba a security risk! (see above)
leothedragon 0:8f0bb79ddd48 1219 *
leothedragon 0:8f0bb79ddd48 1220 * Requires: MBEDTLS_SSL_PROTO_DTLS
leothedragon 0:8f0bb79ddd48 1221 *
leothedragon 0:8f0bb79ddd48 1222 * Comment this to disable support for HelloVerifyRequest.
leothedragon 0:8f0bb79ddd48 1223 */
leothedragon 0:8f0bb79ddd48 1224 #define MBEDTLS_SSL_DTLS_HELLO_VERIFY
leothedragon 0:8f0bb79ddd48 1225
leothedragon 0:8f0bb79ddd48 1226 /**
leothedragon 0:8f0bb79ddd48 1227 * \def MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
leothedragon 0:8f0bb79ddd48 1228 *
leothedragon 0:8f0bb79ddd48 1229 * Enable server-side support for clients that reconnect from the same port.
leothedragon 0:8f0bb79ddd48 1230 *
leothedragon 0:8f0bb79ddd48 1231 * Some clients unexpectedly close the connection and try to reconnect using the
leothedragon 0:8f0bb79ddd48 1232 * same source port. This needs special support from the server to handle the
leothedragon 0:8f0bb79ddd48 1233 * new connection securely, as described in section 4.2.8 of RFC 6347. This
leothedragon 0:8f0bb79ddd48 1234 * flag enables that support.
leothedragon 0:8f0bb79ddd48 1235 *
leothedragon 0:8f0bb79ddd48 1236 * Requires: MBEDTLS_SSL_DTLS_HELLO_VERIFY
leothedragon 0:8f0bb79ddd48 1237 *
leothedragon 0:8f0bb79ddd48 1238 * Comment this to disable support for clients reusing the source port.
leothedragon 0:8f0bb79ddd48 1239 */
leothedragon 0:8f0bb79ddd48 1240 #define MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE
leothedragon 0:8f0bb79ddd48 1241
leothedragon 0:8f0bb79ddd48 1242 /**
leothedragon 0:8f0bb79ddd48 1243 * \def MBEDTLS_SSL_DTLS_BADMAC_LIMIT
leothedragon 0:8f0bb79ddd48 1244 *
leothedragon 0:8f0bb79ddd48 1245 * Enable support for a limit of records with bad MAC.
leothedragon 0:8f0bb79ddd48 1246 *
leothedragon 0:8f0bb79ddd48 1247 * See mbedtls_ssl_conf_dtls_badmac_limit().
leothedragon 0:8f0bb79ddd48 1248 *
leothedragon 0:8f0bb79ddd48 1249 * Requires: MBEDTLS_SSL_PROTO_DTLS
leothedragon 0:8f0bb79ddd48 1250 */
leothedragon 0:8f0bb79ddd48 1251 #define MBEDTLS_SSL_DTLS_BADMAC_LIMIT
leothedragon 0:8f0bb79ddd48 1252
leothedragon 0:8f0bb79ddd48 1253 /**
leothedragon 0:8f0bb79ddd48 1254 * \def MBEDTLS_SSL_SESSION_TICKETS
leothedragon 0:8f0bb79ddd48 1255 *
leothedragon 0:8f0bb79ddd48 1256 * Enable support for RFC 5077 session tickets in SSL.
leothedragon 0:8f0bb79ddd48 1257 * Client-side, provides full support for session tickets (maintainance of a
leothedragon 0:8f0bb79ddd48 1258 * session store remains the responsibility of the application, though).
leothedragon 0:8f0bb79ddd48 1259 * Server-side, you also need to provide callbacks for writing and parsing
leothedragon 0:8f0bb79ddd48 1260 * tickets, including authenticated encryption and key management. Example
leothedragon 0:8f0bb79ddd48 1261 * callbacks are provided by MBEDTLS_SSL_TICKET_C.
leothedragon 0:8f0bb79ddd48 1262 *
leothedragon 0:8f0bb79ddd48 1263 * Comment this macro to disable support for SSL session tickets
leothedragon 0:8f0bb79ddd48 1264 */
leothedragon 0:8f0bb79ddd48 1265 #define MBEDTLS_SSL_SESSION_TICKETS
leothedragon 0:8f0bb79ddd48 1266
leothedragon 0:8f0bb79ddd48 1267 /**
leothedragon 0:8f0bb79ddd48 1268 * \def MBEDTLS_SSL_SERVER_NAME_INDICATION
leothedragon 0:8f0bb79ddd48 1269 *
leothedragon 0:8f0bb79ddd48 1270 * Enable support for RFC 6066 server name indication (SNI) in SSL.
leothedragon 0:8f0bb79ddd48 1271 *
leothedragon 0:8f0bb79ddd48 1272 * Requires: MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 1273 *
leothedragon 0:8f0bb79ddd48 1274 * Comment this macro to disable support for server name indication in SSL
leothedragon 0:8f0bb79ddd48 1275 */
leothedragon 0:8f0bb79ddd48 1276 #define MBEDTLS_SSL_SERVER_NAME_INDICATION
leothedragon 0:8f0bb79ddd48 1277 /**
leothedragon 0:8f0bb79ddd48 1278 * \def MBEDTLS_SSL_TRUNCATED_HMAC
leothedragon 0:8f0bb79ddd48 1279 *
leothedragon 0:8f0bb79ddd48 1280 * Enable support for RFC 6066 truncated HMAC in SSL.
leothedragon 0:8f0bb79ddd48 1281 *
leothedragon 0:8f0bb79ddd48 1282 * Comment this macro to disable support for truncated HMAC in SSL
leothedragon 0:8f0bb79ddd48 1283 */
leothedragon 0:8f0bb79ddd48 1284 //#define MBEDTLS_SSL_TRUNCATED_HMAC
leothedragon 0:8f0bb79ddd48 1285
leothedragon 0:8f0bb79ddd48 1286 /**
leothedragon 0:8f0bb79ddd48 1287 * \def MBEDTLS_THREADING_ALT
leothedragon 0:8f0bb79ddd48 1288 *
leothedragon 0:8f0bb79ddd48 1289 * Provide your own alternate threading implementation.
leothedragon 0:8f0bb79ddd48 1290 *
leothedragon 0:8f0bb79ddd48 1291 * Requires: MBEDTLS_THREADING_C
leothedragon 0:8f0bb79ddd48 1292 *
leothedragon 0:8f0bb79ddd48 1293 * Uncomment this to allow your own alternate threading implementation.
leothedragon 0:8f0bb79ddd48 1294 */
leothedragon 0:8f0bb79ddd48 1295 //#define MBEDTLS_THREADING_ALT
leothedragon 0:8f0bb79ddd48 1296
leothedragon 0:8f0bb79ddd48 1297 /**
leothedragon 0:8f0bb79ddd48 1298 * \def MBEDTLS_THREADING_PTHREAD
leothedragon 0:8f0bb79ddd48 1299 *
leothedragon 0:8f0bb79ddd48 1300 * Enable the pthread wrapper layer for the threading layer.
leothedragon 0:8f0bb79ddd48 1301 *
leothedragon 0:8f0bb79ddd48 1302 * Requires: MBEDTLS_THREADING_C
leothedragon 0:8f0bb79ddd48 1303 *
leothedragon 0:8f0bb79ddd48 1304 * Uncomment this to enable pthread mutexes.
leothedragon 0:8f0bb79ddd48 1305 */
leothedragon 0:8f0bb79ddd48 1306 //#define MBEDTLS_THREADING_PTHREAD
leothedragon 0:8f0bb79ddd48 1307
leothedragon 0:8f0bb79ddd48 1308 /**
leothedragon 0:8f0bb79ddd48 1309 * \def MBEDTLS_VERSION_FEATURES
leothedragon 0:8f0bb79ddd48 1310 *
leothedragon 0:8f0bb79ddd48 1311 * Allow run-time checking of compile-time enabled features. Thus allowing users
leothedragon 0:8f0bb79ddd48 1312 * to check at run-time if the library is for instance compiled with threading
leothedragon 0:8f0bb79ddd48 1313 * support via mbedtls_version_check_feature().
leothedragon 0:8f0bb79ddd48 1314 *
leothedragon 0:8f0bb79ddd48 1315 * Requires: MBEDTLS_VERSION_C
leothedragon 0:8f0bb79ddd48 1316 *
leothedragon 0:8f0bb79ddd48 1317 * Comment this to disable run-time checking and save ROM space
leothedragon 0:8f0bb79ddd48 1318 */
leothedragon 0:8f0bb79ddd48 1319 //#define MBEDTLS_VERSION_FEATURES
leothedragon 0:8f0bb79ddd48 1320
leothedragon 0:8f0bb79ddd48 1321 /**
leothedragon 0:8f0bb79ddd48 1322 * \def MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
leothedragon 0:8f0bb79ddd48 1323 *
leothedragon 0:8f0bb79ddd48 1324 * If set, the X509 parser will not break-off when parsing an X509 certificate
leothedragon 0:8f0bb79ddd48 1325 * and encountering an extension in a v1 or v2 certificate.
leothedragon 0:8f0bb79ddd48 1326 *
leothedragon 0:8f0bb79ddd48 1327 * Uncomment to prevent an error.
leothedragon 0:8f0bb79ddd48 1328 */
leothedragon 0:8f0bb79ddd48 1329 //#define MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3
leothedragon 0:8f0bb79ddd48 1330
leothedragon 0:8f0bb79ddd48 1331 /**
leothedragon 0:8f0bb79ddd48 1332 * \def MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
leothedragon 0:8f0bb79ddd48 1333 *
leothedragon 0:8f0bb79ddd48 1334 * If set, the X509 parser will not break-off when parsing an X509 certificate
leothedragon 0:8f0bb79ddd48 1335 * and encountering an unknown critical extension.
leothedragon 0:8f0bb79ddd48 1336 *
leothedragon 0:8f0bb79ddd48 1337 * Uncomment to prevent an error.
leothedragon 0:8f0bb79ddd48 1338 */
leothedragon 0:8f0bb79ddd48 1339 //#define MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
leothedragon 0:8f0bb79ddd48 1340
leothedragon 0:8f0bb79ddd48 1341 /**
leothedragon 0:8f0bb79ddd48 1342 * \def MBEDTLS_X509_CHECK_KEY_USAGE
leothedragon 0:8f0bb79ddd48 1343 *
leothedragon 0:8f0bb79ddd48 1344 * Enable verification of the keyUsage extension (CA and leaf certificates).
leothedragon 0:8f0bb79ddd48 1345 *
leothedragon 0:8f0bb79ddd48 1346 * Disabling this avoids problems with mis-issued and/or misused
leothedragon 0:8f0bb79ddd48 1347 * (intermediate) CA and leaf certificates.
leothedragon 0:8f0bb79ddd48 1348 *
leothedragon 0:8f0bb79ddd48 1349 * \warning Depending on your PKI use, disabling this can be a security risk!
leothedragon 0:8f0bb79ddd48 1350 *
leothedragon 0:8f0bb79ddd48 1351 * Comment to skip keyUsage checking for both CA and leaf certificates.
leothedragon 0:8f0bb79ddd48 1352 */
leothedragon 0:8f0bb79ddd48 1353 #define MBEDTLS_X509_CHECK_KEY_USAGE
leothedragon 0:8f0bb79ddd48 1354
leothedragon 0:8f0bb79ddd48 1355 /**
leothedragon 0:8f0bb79ddd48 1356 * \def MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
leothedragon 0:8f0bb79ddd48 1357 *
leothedragon 0:8f0bb79ddd48 1358 * Enable verification of the extendedKeyUsage extension (leaf certificates).
leothedragon 0:8f0bb79ddd48 1359 *
leothedragon 0:8f0bb79ddd48 1360 * Disabling this avoids problems with mis-issued and/or misused certificates.
leothedragon 0:8f0bb79ddd48 1361 *
leothedragon 0:8f0bb79ddd48 1362 * \warning Depending on your PKI use, disabling this can be a security risk!
leothedragon 0:8f0bb79ddd48 1363 *
leothedragon 0:8f0bb79ddd48 1364 * Comment to skip extendedKeyUsage checking for certificates.
leothedragon 0:8f0bb79ddd48 1365 */
leothedragon 0:8f0bb79ddd48 1366 #define MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE
leothedragon 0:8f0bb79ddd48 1367
leothedragon 0:8f0bb79ddd48 1368 /**
leothedragon 0:8f0bb79ddd48 1369 * \def MBEDTLS_X509_RSASSA_PSS_SUPPORT
leothedragon 0:8f0bb79ddd48 1370 *
leothedragon 0:8f0bb79ddd48 1371 * Enable parsing and verification of X.509 certificates, CRLs and CSRS
leothedragon 0:8f0bb79ddd48 1372 * signed with RSASSA-PSS (aka PKCS#1 v2.1).
leothedragon 0:8f0bb79ddd48 1373 *
leothedragon 0:8f0bb79ddd48 1374 * Comment this macro to disallow using RSASSA-PSS in certificates.
leothedragon 0:8f0bb79ddd48 1375 */
leothedragon 0:8f0bb79ddd48 1376 //#define MBEDTLS_X509_RSASSA_PSS_SUPPORT
leothedragon 0:8f0bb79ddd48 1377 /**
leothedragon 0:8f0bb79ddd48 1378 * \def MBEDTLS_ZLIB_SUPPORT
leothedragon 0:8f0bb79ddd48 1379 *
leothedragon 0:8f0bb79ddd48 1380 * If set, the SSL/TLS module uses ZLIB to support compression and
leothedragon 0:8f0bb79ddd48 1381 * decompression of packet data.
leothedragon 0:8f0bb79ddd48 1382 *
leothedragon 0:8f0bb79ddd48 1383 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
leothedragon 0:8f0bb79ddd48 1384 * CRIME attack. Before enabling this option, you should examine with care if
leothedragon 0:8f0bb79ddd48 1385 * CRIME or similar exploits may be a applicable to your use case.
leothedragon 0:8f0bb79ddd48 1386 *
leothedragon 0:8f0bb79ddd48 1387 * \note Currently compression can't be used with DTLS.
leothedragon 0:8f0bb79ddd48 1388 *
leothedragon 0:8f0bb79ddd48 1389 * Used in: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1390 * library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 1391 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 1392 *
leothedragon 0:8f0bb79ddd48 1393 * This feature requires zlib library and headers to be present.
leothedragon 0:8f0bb79ddd48 1394 *
leothedragon 0:8f0bb79ddd48 1395 * Uncomment to enable use of ZLIB
leothedragon 0:8f0bb79ddd48 1396 */
leothedragon 0:8f0bb79ddd48 1397 //#define MBEDTLS_ZLIB_SUPPORT
leothedragon 0:8f0bb79ddd48 1398 /* \} name SECTION: mbed TLS feature support */
leothedragon 0:8f0bb79ddd48 1399
leothedragon 0:8f0bb79ddd48 1400 /**
leothedragon 0:8f0bb79ddd48 1401 * \name SECTION: mbed TLS modules
leothedragon 0:8f0bb79ddd48 1402 *
leothedragon 0:8f0bb79ddd48 1403 * This section enables or disables entire modules in mbed TLS
leothedragon 0:8f0bb79ddd48 1404 * \{
leothedragon 0:8f0bb79ddd48 1405 */
leothedragon 0:8f0bb79ddd48 1406
leothedragon 0:8f0bb79ddd48 1407 /**
leothedragon 0:8f0bb79ddd48 1408 * \def MBEDTLS_AESNI_C
leothedragon 0:8f0bb79ddd48 1409 *
leothedragon 0:8f0bb79ddd48 1410 * Enable AES-NI support on x86-64.
leothedragon 0:8f0bb79ddd48 1411 *
leothedragon 0:8f0bb79ddd48 1412 * Module: library/aesni.c
leothedragon 0:8f0bb79ddd48 1413 * Caller: library/aes.c
leothedragon 0:8f0bb79ddd48 1414 *
leothedragon 0:8f0bb79ddd48 1415 * Requires: MBEDTLS_HAVE_ASM
leothedragon 0:8f0bb79ddd48 1416 *
leothedragon 0:8f0bb79ddd48 1417 * This modules adds support for the AES-NI instructions on x86-64
leothedragon 0:8f0bb79ddd48 1418 */
leothedragon 0:8f0bb79ddd48 1419 //#define MBEDTLS_AESNI_C
leothedragon 0:8f0bb79ddd48 1420
leothedragon 0:8f0bb79ddd48 1421 /**
leothedragon 0:8f0bb79ddd48 1422 * \def MBEDTLS_AES_C
leothedragon 0:8f0bb79ddd48 1423 *
leothedragon 0:8f0bb79ddd48 1424 * Enable the AES block cipher.
leothedragon 0:8f0bb79ddd48 1425 *
leothedragon 0:8f0bb79ddd48 1426 * Module: library/aes.c
leothedragon 0:8f0bb79ddd48 1427 * Caller: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1428 * library/pem.c
leothedragon 0:8f0bb79ddd48 1429 * library/ctr_drbg.c
leothedragon 0:8f0bb79ddd48 1430 *
leothedragon 0:8f0bb79ddd48 1431 * This module enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 1432 * enabled as well):
leothedragon 0:8f0bb79ddd48 1433 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1434 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1435 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1436 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1437 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1438 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1439 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1440 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1441 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1442 * MBEDTLS_TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1443 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1444 * MBEDTLS_TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1445 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1446 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1447 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1448 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1449 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1450 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1451 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1452 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1453 * MBEDTLS_TLS_DHE_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1454 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1455 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1456 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1457 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1458 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1459 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1460 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1461 * MBEDTLS_TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1462 * MBEDTLS_TLS_DHE_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1463 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1464 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1465 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1466 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1467 * MBEDTLS_TLS_DHE_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1468 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1469 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1470 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1471 * MBEDTLS_TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1472 * MBEDTLS_TLS_DHE_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1473 * MBEDTLS_TLS_RSA_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1474 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1475 * MBEDTLS_TLS_RSA_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1476 * MBEDTLS_TLS_RSA_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1477 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1478 * MBEDTLS_TLS_RSA_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1479 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1480 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1481 * MBEDTLS_TLS_RSA_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1482 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1483 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1484 * MBEDTLS_TLS_RSA_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1485 * MBEDTLS_TLS_PSK_WITH_AES_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1486 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1487 * MBEDTLS_TLS_PSK_WITH_AES_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1488 * MBEDTLS_TLS_PSK_WITH_AES_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1489 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1490 * MBEDTLS_TLS_PSK_WITH_AES_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1491 *
leothedragon 0:8f0bb79ddd48 1492 * PEM_PARSE uses AES for decrypting encrypted keys.
leothedragon 0:8f0bb79ddd48 1493 */
leothedragon 0:8f0bb79ddd48 1494 #define MBEDTLS_AES_C
leothedragon 0:8f0bb79ddd48 1495
leothedragon 0:8f0bb79ddd48 1496 /**
leothedragon 0:8f0bb79ddd48 1497 * \def MBEDTLS_ARC4_C
leothedragon 0:8f0bb79ddd48 1498 *
leothedragon 0:8f0bb79ddd48 1499 * Enable the ARCFOUR stream cipher.
leothedragon 0:8f0bb79ddd48 1500 *
leothedragon 0:8f0bb79ddd48 1501 * Module: library/arc4.c
leothedragon 0:8f0bb79ddd48 1502 * Caller: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1503 *
leothedragon 0:8f0bb79ddd48 1504 * This module enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 1505 * enabled as well):
leothedragon 0:8f0bb79ddd48 1506 * MBEDTLS_TLS_ECDH_ECDSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1507 * MBEDTLS_TLS_ECDH_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1508 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1509 * MBEDTLS_TLS_ECDHE_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1510 * MBEDTLS_TLS_ECDHE_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1511 * MBEDTLS_TLS_DHE_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1512 * MBEDTLS_TLS_RSA_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1513 * MBEDTLS_TLS_RSA_WITH_RC4_128_MD5
leothedragon 0:8f0bb79ddd48 1514 * MBEDTLS_TLS_RSA_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1515 * MBEDTLS_TLS_PSK_WITH_RC4_128_SHA
leothedragon 0:8f0bb79ddd48 1516 */
leothedragon 0:8f0bb79ddd48 1517 //#define MBEDTLS_ARC4_C
leothedragon 0:8f0bb79ddd48 1518
leothedragon 0:8f0bb79ddd48 1519 /**
leothedragon 0:8f0bb79ddd48 1520 * \def MBEDTLS_ASN1_PARSE_C
leothedragon 0:8f0bb79ddd48 1521 *
leothedragon 0:8f0bb79ddd48 1522 * Enable the generic ASN1 parser.
leothedragon 0:8f0bb79ddd48 1523 *
leothedragon 0:8f0bb79ddd48 1524 * Module: library/asn1.c
leothedragon 0:8f0bb79ddd48 1525 * Caller: library/x509.c
leothedragon 0:8f0bb79ddd48 1526 * library/dhm.c
leothedragon 0:8f0bb79ddd48 1527 * library/pkcs12.c
leothedragon 0:8f0bb79ddd48 1528 * library/pkcs5.c
leothedragon 0:8f0bb79ddd48 1529 * library/pkparse.c
leothedragon 0:8f0bb79ddd48 1530 */
leothedragon 0:8f0bb79ddd48 1531 #define MBEDTLS_ASN1_PARSE_C
leothedragon 0:8f0bb79ddd48 1532
leothedragon 0:8f0bb79ddd48 1533 /**
leothedragon 0:8f0bb79ddd48 1534 * \def MBEDTLS_ASN1_WRITE_C
leothedragon 0:8f0bb79ddd48 1535 *
leothedragon 0:8f0bb79ddd48 1536 * Enable the generic ASN1 writer.
leothedragon 0:8f0bb79ddd48 1537 *
leothedragon 0:8f0bb79ddd48 1538 * Module: library/asn1write.c
leothedragon 0:8f0bb79ddd48 1539 * Caller: library/ecdsa.c
leothedragon 0:8f0bb79ddd48 1540 * library/pkwrite.c
leothedragon 0:8f0bb79ddd48 1541 * library/x509_create.c
leothedragon 0:8f0bb79ddd48 1542 * library/x509write_crt.c
leothedragon 0:8f0bb79ddd48 1543 * library/mbedtls_x509write_csr.c
leothedragon 0:8f0bb79ddd48 1544 */
leothedragon 0:8f0bb79ddd48 1545 #define MBEDTLS_ASN1_WRITE_C
leothedragon 0:8f0bb79ddd48 1546
leothedragon 0:8f0bb79ddd48 1547 /**
leothedragon 0:8f0bb79ddd48 1548 * \def MBEDTLS_BASE64_C
leothedragon 0:8f0bb79ddd48 1549 *
leothedragon 0:8f0bb79ddd48 1550 * Enable the Base64 module.
leothedragon 0:8f0bb79ddd48 1551 *
leothedragon 0:8f0bb79ddd48 1552 * Module: library/base64.c
leothedragon 0:8f0bb79ddd48 1553 * Caller: library/pem.c
leothedragon 0:8f0bb79ddd48 1554 *
leothedragon 0:8f0bb79ddd48 1555 * This module is required for PEM support (required by X.509).
leothedragon 0:8f0bb79ddd48 1556 */
leothedragon 0:8f0bb79ddd48 1557 // needed for Base64 encoding Opaque data for
leothedragon 0:8f0bb79ddd48 1558 // registration payload, adds 500 bytes to flash.
leothedragon 0:8f0bb79ddd48 1559 #define MBEDTLS_BASE64_C
leothedragon 0:8f0bb79ddd48 1560
leothedragon 0:8f0bb79ddd48 1561 /**
leothedragon 0:8f0bb79ddd48 1562 * \def MBEDTLS_BIGNUM_C
leothedragon 0:8f0bb79ddd48 1563 *
leothedragon 0:8f0bb79ddd48 1564 * Enable the multi-precision integer library.
leothedragon 0:8f0bb79ddd48 1565 *
leothedragon 0:8f0bb79ddd48 1566 * Module: library/bignum.c
leothedragon 0:8f0bb79ddd48 1567 * Caller: library/dhm.c
leothedragon 0:8f0bb79ddd48 1568 * library/ecp.c
leothedragon 0:8f0bb79ddd48 1569 * library/ecdsa.c
leothedragon 0:8f0bb79ddd48 1570 * library/rsa.c
leothedragon 0:8f0bb79ddd48 1571 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1572 *
leothedragon 0:8f0bb79ddd48 1573 * This module is required for RSA, DHM and ECC (ECDH, ECDSA) support.
leothedragon 0:8f0bb79ddd48 1574 */
leothedragon 0:8f0bb79ddd48 1575 #define MBEDTLS_BIGNUM_C
leothedragon 0:8f0bb79ddd48 1576
leothedragon 0:8f0bb79ddd48 1577 /**
leothedragon 0:8f0bb79ddd48 1578 * \def MBEDTLS_BLOWFISH_C
leothedragon 0:8f0bb79ddd48 1579 *
leothedragon 0:8f0bb79ddd48 1580 * Enable the Blowfish block cipher.
leothedragon 0:8f0bb79ddd48 1581 *
leothedragon 0:8f0bb79ddd48 1582 * Module: library/blowfish.c
leothedragon 0:8f0bb79ddd48 1583 */
leothedragon 0:8f0bb79ddd48 1584 //#define MBEDTLS_BLOWFISH_C
leothedragon 0:8f0bb79ddd48 1585
leothedragon 0:8f0bb79ddd48 1586 /**
leothedragon 0:8f0bb79ddd48 1587 * \def MBEDTLS_CAMELLIA_C
leothedragon 0:8f0bb79ddd48 1588 *
leothedragon 0:8f0bb79ddd48 1589 * Enable the Camellia block cipher.
leothedragon 0:8f0bb79ddd48 1590 *
leothedragon 0:8f0bb79ddd48 1591 * Module: library/camellia.c
leothedragon 0:8f0bb79ddd48 1592 * Caller: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1593 *
leothedragon 0:8f0bb79ddd48 1594 * This module enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 1595 * enabled as well):
leothedragon 0:8f0bb79ddd48 1596 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1597 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1598 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1599 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1600 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1601 * MBEDTLS_TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1602 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1603 * MBEDTLS_TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1604 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1605 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1606 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1607 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1608 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1609 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1610 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1611 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1612 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1613 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1614 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1615 * MBEDTLS_TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1616 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1617 * MBEDTLS_TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1618 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1619 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1620 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1621 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1622 * MBEDTLS_TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1623 * MBEDTLS_TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1624 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1625 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1626 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
leothedragon 0:8f0bb79ddd48 1627 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1628 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1629 * MBEDTLS_TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
leothedragon 0:8f0bb79ddd48 1630 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1631 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1632 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1633 * MBEDTLS_TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1634 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
leothedragon 0:8f0bb79ddd48 1635 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
leothedragon 0:8f0bb79ddd48 1636 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
leothedragon 0:8f0bb79ddd48 1637 * MBEDTLS_TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
leothedragon 0:8f0bb79ddd48 1638 */
leothedragon 0:8f0bb79ddd48 1639 //#define MBEDTLS_CAMELLIA_C
leothedragon 0:8f0bb79ddd48 1640
leothedragon 0:8f0bb79ddd48 1641 /**
leothedragon 0:8f0bb79ddd48 1642 * \def MBEDTLS_CCM_C
leothedragon 0:8f0bb79ddd48 1643 *
leothedragon 0:8f0bb79ddd48 1644 * Enable the Counter with CBC-MAC (CCM) mode for 128-bit block cipher.
leothedragon 0:8f0bb79ddd48 1645 *
leothedragon 0:8f0bb79ddd48 1646 * Module: library/ccm.c
leothedragon 0:8f0bb79ddd48 1647 *
leothedragon 0:8f0bb79ddd48 1648 * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
leothedragon 0:8f0bb79ddd48 1649 *
leothedragon 0:8f0bb79ddd48 1650 * This module enables the AES-CCM ciphersuites, if other requisites are
leothedragon 0:8f0bb79ddd48 1651 * enabled as well.
leothedragon 0:8f0bb79ddd48 1652 */
leothedragon 0:8f0bb79ddd48 1653 #define MBEDTLS_CCM_C
leothedragon 0:8f0bb79ddd48 1654
leothedragon 0:8f0bb79ddd48 1655 /**
leothedragon 0:8f0bb79ddd48 1656 * \def MBEDTLS_CERTS_C
leothedragon 0:8f0bb79ddd48 1657 *
leothedragon 0:8f0bb79ddd48 1658 * Enable the test certificates.
leothedragon 0:8f0bb79ddd48 1659 *
leothedragon 0:8f0bb79ddd48 1660 * Module: library/certs.c
leothedragon 0:8f0bb79ddd48 1661 * Caller:
leothedragon 0:8f0bb79ddd48 1662 *
leothedragon 0:8f0bb79ddd48 1663 * This module is used for testing (ssl_client/server).
leothedragon 0:8f0bb79ddd48 1664 */
leothedragon 0:8f0bb79ddd48 1665 //#define MBEDTLS_CERTS_C
leothedragon 0:8f0bb79ddd48 1666
leothedragon 0:8f0bb79ddd48 1667 /**
leothedragon 0:8f0bb79ddd48 1668 * \def MBEDTLS_CIPHER_C
leothedragon 0:8f0bb79ddd48 1669 *
leothedragon 0:8f0bb79ddd48 1670 * Enable the generic cipher layer.
leothedragon 0:8f0bb79ddd48 1671 *
leothedragon 0:8f0bb79ddd48 1672 * Module: library/cipher.c
leothedragon 0:8f0bb79ddd48 1673 * Caller: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1674 *
leothedragon 0:8f0bb79ddd48 1675 * Uncomment to enable generic cipher wrappers.
leothedragon 0:8f0bb79ddd48 1676 */
leothedragon 0:8f0bb79ddd48 1677 #define MBEDTLS_CIPHER_C
leothedragon 0:8f0bb79ddd48 1678
leothedragon 0:8f0bb79ddd48 1679 /**
leothedragon 0:8f0bb79ddd48 1680 * \def MBEDTLS_CMAC_C
leothedragon 0:8f0bb79ddd48 1681 *
leothedragon 0:8f0bb79ddd48 1682 * Enable the CMAC (Cipher-based Message Authentication Code) mode for block
leothedragon 0:8f0bb79ddd48 1683 * ciphers.
leothedragon 0:8f0bb79ddd48 1684 *
leothedragon 0:8f0bb79ddd48 1685 * Module: library/cmac.c
leothedragon 0:8f0bb79ddd48 1686 *
leothedragon 0:8f0bb79ddd48 1687 * Requires: MBEDTLS_AES_C or MBEDTLS_DES_C
leothedragon 0:8f0bb79ddd48 1688 *
leothedragon 0:8f0bb79ddd48 1689 */
leothedragon 0:8f0bb79ddd48 1690 #define MBEDTLS_CMAC_C
leothedragon 0:8f0bb79ddd48 1691
leothedragon 0:8f0bb79ddd48 1692 /**
leothedragon 0:8f0bb79ddd48 1693 * \def MBEDTLS_CTR_DRBG_C
leothedragon 0:8f0bb79ddd48 1694 *
leothedragon 0:8f0bb79ddd48 1695 * Enable the CTR_DRBG AES-256-based random generator.
leothedragon 0:8f0bb79ddd48 1696 *
leothedragon 0:8f0bb79ddd48 1697 * Module: library/ctr_drbg.c
leothedragon 0:8f0bb79ddd48 1698 * Caller:
leothedragon 0:8f0bb79ddd48 1699 *
leothedragon 0:8f0bb79ddd48 1700 * Requires: MBEDTLS_AES_C
leothedragon 0:8f0bb79ddd48 1701 *
leothedragon 0:8f0bb79ddd48 1702 * This module provides the CTR_DRBG AES-256 random number generator.
leothedragon 0:8f0bb79ddd48 1703 */
leothedragon 0:8f0bb79ddd48 1704 #define MBEDTLS_CTR_DRBG_C
leothedragon 0:8f0bb79ddd48 1705
leothedragon 0:8f0bb79ddd48 1706 /**
leothedragon 0:8f0bb79ddd48 1707 * \def MBEDTLS_DEBUG_C
leothedragon 0:8f0bb79ddd48 1708 *
leothedragon 0:8f0bb79ddd48 1709 * Enable the debug functions.
leothedragon 0:8f0bb79ddd48 1710 *
leothedragon 0:8f0bb79ddd48 1711 * Module: library/debug.c
leothedragon 0:8f0bb79ddd48 1712 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 1713 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 1714 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1715 *
leothedragon 0:8f0bb79ddd48 1716 * This module provides debugging functions.
leothedragon 0:8f0bb79ddd48 1717 */
leothedragon 0:8f0bb79ddd48 1718 //#define MBEDTLS_DEBUG_C
leothedragon 0:8f0bb79ddd48 1719
leothedragon 0:8f0bb79ddd48 1720 /**
leothedragon 0:8f0bb79ddd48 1721 * \def MBEDTLS_DES_C
leothedragon 0:8f0bb79ddd48 1722 *
leothedragon 0:8f0bb79ddd48 1723 * Enable the DES block cipher.
leothedragon 0:8f0bb79ddd48 1724 *
leothedragon 0:8f0bb79ddd48 1725 * Module: library/des.c
leothedragon 0:8f0bb79ddd48 1726 * Caller: library/pem.c
leothedragon 0:8f0bb79ddd48 1727 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1728 *
leothedragon 0:8f0bb79ddd48 1729 * This module enables the following ciphersuites (if other requisites are
leothedragon 0:8f0bb79ddd48 1730 * enabled as well):
leothedragon 0:8f0bb79ddd48 1731 * MBEDTLS_TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1732 * MBEDTLS_TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1733 * MBEDTLS_TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1734 * MBEDTLS_TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1735 * MBEDTLS_TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1736 * MBEDTLS_TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1737 * MBEDTLS_TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1738 * MBEDTLS_TLS_RSA_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1739 * MBEDTLS_TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1740 * MBEDTLS_TLS_PSK_WITH_3DES_EDE_CBC_SHA
leothedragon 0:8f0bb79ddd48 1741 *
leothedragon 0:8f0bb79ddd48 1742 * PEM_PARSE uses DES/3DES for decrypting encrypted keys.
leothedragon 0:8f0bb79ddd48 1743 */
leothedragon 0:8f0bb79ddd48 1744 //#define MBEDTLS_DES_C
leothedragon 0:8f0bb79ddd48 1745
leothedragon 0:8f0bb79ddd48 1746 /**
leothedragon 0:8f0bb79ddd48 1747 * \def MBEDTLS_DHM_C
leothedragon 0:8f0bb79ddd48 1748 *
leothedragon 0:8f0bb79ddd48 1749 * Enable the Diffie-Hellman-Merkle module.
leothedragon 0:8f0bb79ddd48 1750 *
leothedragon 0:8f0bb79ddd48 1751 * Module: library/dhm.c
leothedragon 0:8f0bb79ddd48 1752 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 1753 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 1754 *
leothedragon 0:8f0bb79ddd48 1755 * This module is used by the following key exchanges:
leothedragon 0:8f0bb79ddd48 1756 * DHE-RSA, DHE-PSK
leothedragon 0:8f0bb79ddd48 1757 */
leothedragon 0:8f0bb79ddd48 1758 //#define MBEDTLS_DHM_C
leothedragon 0:8f0bb79ddd48 1759
leothedragon 0:8f0bb79ddd48 1760 /**
leothedragon 0:8f0bb79ddd48 1761 * \def MBEDTLS_ECDH_C
leothedragon 0:8f0bb79ddd48 1762 *
leothedragon 0:8f0bb79ddd48 1763 * Enable the elliptic curve Diffie-Hellman library.
leothedragon 0:8f0bb79ddd48 1764 *
leothedragon 0:8f0bb79ddd48 1765 * Module: library/ecdh.c
leothedragon 0:8f0bb79ddd48 1766 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 1767 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 1768 *
leothedragon 0:8f0bb79ddd48 1769 * This module is used by the following key exchanges:
leothedragon 0:8f0bb79ddd48 1770 * ECDHE-ECDSA, ECDHE-RSA, DHE-PSK
leothedragon 0:8f0bb79ddd48 1771 *
leothedragon 0:8f0bb79ddd48 1772 * Requires: MBEDTLS_ECP_C
leothedragon 0:8f0bb79ddd48 1773 */
leothedragon 0:8f0bb79ddd48 1774 #define MBEDTLS_ECDH_C
leothedragon 0:8f0bb79ddd48 1775
leothedragon 0:8f0bb79ddd48 1776 /**
leothedragon 0:8f0bb79ddd48 1777 * \def MBEDTLS_ECDSA_C
leothedragon 0:8f0bb79ddd48 1778 *
leothedragon 0:8f0bb79ddd48 1779 * Enable the elliptic curve DSA library.
leothedragon 0:8f0bb79ddd48 1780 *
leothedragon 0:8f0bb79ddd48 1781 * Module: library/ecdsa.c
leothedragon 0:8f0bb79ddd48 1782 * Caller:
leothedragon 0:8f0bb79ddd48 1783 *
leothedragon 0:8f0bb79ddd48 1784 * This module is used by the following key exchanges:
leothedragon 0:8f0bb79ddd48 1785 * ECDHE-ECDSA
leothedragon 0:8f0bb79ddd48 1786 *
leothedragon 0:8f0bb79ddd48 1787 * Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C
leothedragon 0:8f0bb79ddd48 1788 */
leothedragon 0:8f0bb79ddd48 1789 #define MBEDTLS_ECDSA_C
leothedragon 0:8f0bb79ddd48 1790
leothedragon 0:8f0bb79ddd48 1791 /**
leothedragon 0:8f0bb79ddd48 1792 * \def MBEDTLS_ECP_C
leothedragon 0:8f0bb79ddd48 1793 *
leothedragon 0:8f0bb79ddd48 1794 * Enable the elliptic curve over GF(p) library.
leothedragon 0:8f0bb79ddd48 1795 *
leothedragon 0:8f0bb79ddd48 1796 * Module: library/ecp.c
leothedragon 0:8f0bb79ddd48 1797 * Caller: library/ecdh.c
leothedragon 0:8f0bb79ddd48 1798 * library/ecdsa.c
leothedragon 0:8f0bb79ddd48 1799 *
leothedragon 0:8f0bb79ddd48 1800 * Requires: MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED
leothedragon 0:8f0bb79ddd48 1801 */
leothedragon 0:8f0bb79ddd48 1802 #define MBEDTLS_ECP_C
leothedragon 0:8f0bb79ddd48 1803
leothedragon 0:8f0bb79ddd48 1804 /**
leothedragon 0:8f0bb79ddd48 1805 * \def MBEDTLS_ENTROPY_C
leothedragon 0:8f0bb79ddd48 1806 *
leothedragon 0:8f0bb79ddd48 1807 * Enable the platform-specific entropy code.
leothedragon 0:8f0bb79ddd48 1808 *
leothedragon 0:8f0bb79ddd48 1809 * Module: library/entropy.c
leothedragon 0:8f0bb79ddd48 1810 * Caller:
leothedragon 0:8f0bb79ddd48 1811 *
leothedragon 0:8f0bb79ddd48 1812 * Requires: MBEDTLS_SHA512_C or MBEDTLS_SHA256_C
leothedragon 0:8f0bb79ddd48 1813 *
leothedragon 0:8f0bb79ddd48 1814 * This module provides a generic entropy pool
leothedragon 0:8f0bb79ddd48 1815 */
leothedragon 0:8f0bb79ddd48 1816 #define MBEDTLS_ENTROPY_C
leothedragon 0:8f0bb79ddd48 1817
leothedragon 0:8f0bb79ddd48 1818 /**
leothedragon 0:8f0bb79ddd48 1819 * \def MBEDTLS_ERROR_C
leothedragon 0:8f0bb79ddd48 1820 *
leothedragon 0:8f0bb79ddd48 1821 * Enable error code to error string conversion.
leothedragon 0:8f0bb79ddd48 1822 *
leothedragon 0:8f0bb79ddd48 1823 * Module: library/error.c
leothedragon 0:8f0bb79ddd48 1824 * Caller:
leothedragon 0:8f0bb79ddd48 1825 *
leothedragon 0:8f0bb79ddd48 1826 * This module enables mbedtls_strerror().
leothedragon 0:8f0bb79ddd48 1827 */
leothedragon 0:8f0bb79ddd48 1828 //#define MBEDTLS_ERROR_C
leothedragon 0:8f0bb79ddd48 1829
leothedragon 0:8f0bb79ddd48 1830 /**
leothedragon 0:8f0bb79ddd48 1831 * \def MBEDTLS_GCM_C
leothedragon 0:8f0bb79ddd48 1832 *
leothedragon 0:8f0bb79ddd48 1833 * Enable the Galois/Counter Mode (GCM) for AES.
leothedragon 0:8f0bb79ddd48 1834 *
leothedragon 0:8f0bb79ddd48 1835 * Module: library/gcm.c
leothedragon 0:8f0bb79ddd48 1836 *
leothedragon 0:8f0bb79ddd48 1837 * Requires: MBEDTLS_AES_C or MBEDTLS_CAMELLIA_C
leothedragon 0:8f0bb79ddd48 1838 *
leothedragon 0:8f0bb79ddd48 1839 * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other
leothedragon 0:8f0bb79ddd48 1840 * requisites are enabled as well.
leothedragon 0:8f0bb79ddd48 1841 */
leothedragon 0:8f0bb79ddd48 1842 #define MBEDTLS_GCM_C
leothedragon 0:8f0bb79ddd48 1843
leothedragon 0:8f0bb79ddd48 1844 /**
leothedragon 0:8f0bb79ddd48 1845 * \def MBEDTLS_HAVEGE_C
leothedragon 0:8f0bb79ddd48 1846 *
leothedragon 0:8f0bb79ddd48 1847 * Enable the HAVEGE random generator.
leothedragon 0:8f0bb79ddd48 1848 *
leothedragon 0:8f0bb79ddd48 1849 * Warning: the HAVEGE random generator is not suitable for virtualized
leothedragon 0:8f0bb79ddd48 1850 * environments
leothedragon 0:8f0bb79ddd48 1851 *
leothedragon 0:8f0bb79ddd48 1852 * Warning: the HAVEGE random generator is dependent on timing and specific
leothedragon 0:8f0bb79ddd48 1853 * processor traits. It is therefore not advised to use HAVEGE as
leothedragon 0:8f0bb79ddd48 1854 * your applications primary random generator or primary entropy pool
leothedragon 0:8f0bb79ddd48 1855 * input. As a secondary input to your entropy pool, it IS able add
leothedragon 0:8f0bb79ddd48 1856 * the (limited) extra entropy it provides.
leothedragon 0:8f0bb79ddd48 1857 *
leothedragon 0:8f0bb79ddd48 1858 * Module: library/havege.c
leothedragon 0:8f0bb79ddd48 1859 * Caller:
leothedragon 0:8f0bb79ddd48 1860 *
leothedragon 0:8f0bb79ddd48 1861 * Requires: MBEDTLS_TIMING_C
leothedragon 0:8f0bb79ddd48 1862 *
leothedragon 0:8f0bb79ddd48 1863 * Uncomment to enable the HAVEGE random generator.
leothedragon 0:8f0bb79ddd48 1864 */
leothedragon 0:8f0bb79ddd48 1865 //#define MBEDTLS_HAVEGE_C
leothedragon 0:8f0bb79ddd48 1866
leothedragon 0:8f0bb79ddd48 1867 /**
leothedragon 0:8f0bb79ddd48 1868 * \def MBEDTLS_HMAC_DRBG_C
leothedragon 0:8f0bb79ddd48 1869 *
leothedragon 0:8f0bb79ddd48 1870 * Enable the HMAC_DRBG random generator.
leothedragon 0:8f0bb79ddd48 1871 *
leothedragon 0:8f0bb79ddd48 1872 * Module: library/hmac_drbg.c
leothedragon 0:8f0bb79ddd48 1873 * Caller:
leothedragon 0:8f0bb79ddd48 1874 *
leothedragon 0:8f0bb79ddd48 1875 * Requires: MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 1876 *
leothedragon 0:8f0bb79ddd48 1877 * Uncomment to enable the HMAC_DRBG random number geerator.
leothedragon 0:8f0bb79ddd48 1878 */
leothedragon 0:8f0bb79ddd48 1879 #define MBEDTLS_HMAC_DRBG_C
leothedragon 0:8f0bb79ddd48 1880
leothedragon 0:8f0bb79ddd48 1881 /**
leothedragon 0:8f0bb79ddd48 1882 * \def MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 1883 *
leothedragon 0:8f0bb79ddd48 1884 * Enable the generic message digest layer.
leothedragon 0:8f0bb79ddd48 1885 *
leothedragon 0:8f0bb79ddd48 1886 * Module: library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 1887 * Caller:
leothedragon 0:8f0bb79ddd48 1888 *
leothedragon 0:8f0bb79ddd48 1889 * Uncomment to enable generic message digest wrappers.
leothedragon 0:8f0bb79ddd48 1890 */
leothedragon 0:8f0bb79ddd48 1891 #define MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 1892
leothedragon 0:8f0bb79ddd48 1893 /**
leothedragon 0:8f0bb79ddd48 1894 * \def MBEDTLS_MD2_C
leothedragon 0:8f0bb79ddd48 1895 *
leothedragon 0:8f0bb79ddd48 1896 * Enable the MD2 hash algorithm.
leothedragon 0:8f0bb79ddd48 1897 *
leothedragon 0:8f0bb79ddd48 1898 * Module: library/mbedtls_md2.c
leothedragon 0:8f0bb79ddd48 1899 * Caller:
leothedragon 0:8f0bb79ddd48 1900 *
leothedragon 0:8f0bb79ddd48 1901 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
leothedragon 0:8f0bb79ddd48 1902 */
leothedragon 0:8f0bb79ddd48 1903 //#define MBEDTLS_MD2_C
leothedragon 0:8f0bb79ddd48 1904
leothedragon 0:8f0bb79ddd48 1905 /**
leothedragon 0:8f0bb79ddd48 1906 * \def MBEDTLS_MD4_C
leothedragon 0:8f0bb79ddd48 1907 *
leothedragon 0:8f0bb79ddd48 1908 * Enable the MD4 hash algorithm.
leothedragon 0:8f0bb79ddd48 1909 *
leothedragon 0:8f0bb79ddd48 1910 * Module: library/mbedtls_md4.c
leothedragon 0:8f0bb79ddd48 1911 * Caller:
leothedragon 0:8f0bb79ddd48 1912 *
leothedragon 0:8f0bb79ddd48 1913 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
leothedragon 0:8f0bb79ddd48 1914 */
leothedragon 0:8f0bb79ddd48 1915 //#define MBEDTLS_MD4_C
leothedragon 0:8f0bb79ddd48 1916
leothedragon 0:8f0bb79ddd48 1917 /**
leothedragon 0:8f0bb79ddd48 1918 * \def MBEDTLS_MD5_C
leothedragon 0:8f0bb79ddd48 1919 *
leothedragon 0:8f0bb79ddd48 1920 * Enable the MD5 hash algorithm.
leothedragon 0:8f0bb79ddd48 1921 *
leothedragon 0:8f0bb79ddd48 1922 * Module: library/mbedtls_md5.c
leothedragon 0:8f0bb79ddd48 1923 * Caller: library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 1924 * library/pem.c
leothedragon 0:8f0bb79ddd48 1925 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 1926 *
leothedragon 0:8f0bb79ddd48 1927 * This module is required for SSL/TLS and X.509.
leothedragon 0:8f0bb79ddd48 1928 * PEM_PARSE uses MD5 for decrypting encrypted keys.
leothedragon 0:8f0bb79ddd48 1929 */
leothedragon 0:8f0bb79ddd48 1930 //#define MBEDTLS_MD5_C
leothedragon 0:8f0bb79ddd48 1931
leothedragon 0:8f0bb79ddd48 1932 /**
leothedragon 0:8f0bb79ddd48 1933 * \def MBEDTLS_MEMORY_BUFFER_ALLOC_C
leothedragon 0:8f0bb79ddd48 1934 *
leothedragon 0:8f0bb79ddd48 1935 * Enable the buffer allocator implementation that makes use of a (stack)
leothedragon 0:8f0bb79ddd48 1936 * based buffer to 'allocate' dynamic memory. (replaces calloc() and free()
leothedragon 0:8f0bb79ddd48 1937 * calls)
leothedragon 0:8f0bb79ddd48 1938 *
leothedragon 0:8f0bb79ddd48 1939 * Module: library/memory_buffer_alloc.c
leothedragon 0:8f0bb79ddd48 1940 *
leothedragon 0:8f0bb79ddd48 1941 * Requires: MBEDTLS_PLATFORM_C
leothedragon 0:8f0bb79ddd48 1942 * MBEDTLS_PLATFORM_MEMORY (to use it within mbed TLS)
leothedragon 0:8f0bb79ddd48 1943 *
leothedragon 0:8f0bb79ddd48 1944 * Enable this module to enable the buffer memory allocator.
leothedragon 0:8f0bb79ddd48 1945 */
leothedragon 0:8f0bb79ddd48 1946 //#define MBEDTLS_MEMORY_BUFFER_ALLOC_C
leothedragon 0:8f0bb79ddd48 1947
leothedragon 0:8f0bb79ddd48 1948 /**
leothedragon 0:8f0bb79ddd48 1949 * \def MBEDTLS_NET_C
leothedragon 0:8f0bb79ddd48 1950 *
leothedragon 0:8f0bb79ddd48 1951 * Enable the TCP/IP networking routines.
leothedragon 0:8f0bb79ddd48 1952 *
leothedragon 0:8f0bb79ddd48 1953 * Module: library/net.c
leothedragon 0:8f0bb79ddd48 1954 *
leothedragon 0:8f0bb79ddd48 1955 * This module provides TCP/IP networking routines.
leothedragon 0:8f0bb79ddd48 1956 */
leothedragon 0:8f0bb79ddd48 1957 //#define MBEDTLS_NET_C
leothedragon 0:8f0bb79ddd48 1958
leothedragon 0:8f0bb79ddd48 1959 /**
leothedragon 0:8f0bb79ddd48 1960 * \def MBEDTLS_OID_C
leothedragon 0:8f0bb79ddd48 1961 *
leothedragon 0:8f0bb79ddd48 1962 * Enable the OID database.
leothedragon 0:8f0bb79ddd48 1963 *
leothedragon 0:8f0bb79ddd48 1964 * Module: library/oid.c
leothedragon 0:8f0bb79ddd48 1965 * Caller: library/asn1write.c
leothedragon 0:8f0bb79ddd48 1966 * library/pkcs5.c
leothedragon 0:8f0bb79ddd48 1967 * library/pkparse.c
leothedragon 0:8f0bb79ddd48 1968 * library/pkwrite.c
leothedragon 0:8f0bb79ddd48 1969 * library/rsa.c
leothedragon 0:8f0bb79ddd48 1970 * library/x509.c
leothedragon 0:8f0bb79ddd48 1971 * library/x509_create.c
leothedragon 0:8f0bb79ddd48 1972 * library/mbedtls_x509_crl.c
leothedragon 0:8f0bb79ddd48 1973 * library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 1974 * library/mbedtls_x509_csr.c
leothedragon 0:8f0bb79ddd48 1975 * library/x509write_crt.c
leothedragon 0:8f0bb79ddd48 1976 * library/mbedtls_x509write_csr.c
leothedragon 0:8f0bb79ddd48 1977 *
leothedragon 0:8f0bb79ddd48 1978 * This modules translates between OIDs and internal values.
leothedragon 0:8f0bb79ddd48 1979 */
leothedragon 0:8f0bb79ddd48 1980 #define MBEDTLS_OID_C
leothedragon 0:8f0bb79ddd48 1981
leothedragon 0:8f0bb79ddd48 1982 /**
leothedragon 0:8f0bb79ddd48 1983 * \def MBEDTLS_PADLOCK_C
leothedragon 0:8f0bb79ddd48 1984 *
leothedragon 0:8f0bb79ddd48 1985 * Enable VIA Padlock support on x86.
leothedragon 0:8f0bb79ddd48 1986 *
leothedragon 0:8f0bb79ddd48 1987 * Module: library/padlock.c
leothedragon 0:8f0bb79ddd48 1988 * Caller: library/aes.c
leothedragon 0:8f0bb79ddd48 1989 *
leothedragon 0:8f0bb79ddd48 1990 * Requires: MBEDTLS_HAVE_ASM
leothedragon 0:8f0bb79ddd48 1991 *
leothedragon 0:8f0bb79ddd48 1992 * This modules adds support for the VIA PadLock on x86.
leothedragon 0:8f0bb79ddd48 1993 */
leothedragon 0:8f0bb79ddd48 1994 //#define MBEDTLS_PADLOCK_C
leothedragon 0:8f0bb79ddd48 1995
leothedragon 0:8f0bb79ddd48 1996 /**
leothedragon 0:8f0bb79ddd48 1997 * \def MBEDTLS_PEM_PARSE_C
leothedragon 0:8f0bb79ddd48 1998 *
leothedragon 0:8f0bb79ddd48 1999 * Enable PEM decoding / parsing.
leothedragon 0:8f0bb79ddd48 2000 *
leothedragon 0:8f0bb79ddd48 2001 * Module: library/pem.c
leothedragon 0:8f0bb79ddd48 2002 * Caller: library/dhm.c
leothedragon 0:8f0bb79ddd48 2003 * library/pkparse.c
leothedragon 0:8f0bb79ddd48 2004 * library/mbedtls_x509_crl.c
leothedragon 0:8f0bb79ddd48 2005 * library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 2006 * library/mbedtls_x509_csr.c
leothedragon 0:8f0bb79ddd48 2007 *
leothedragon 0:8f0bb79ddd48 2008 * Requires: MBEDTLS_BASE64_C
leothedragon 0:8f0bb79ddd48 2009 *
leothedragon 0:8f0bb79ddd48 2010 * This modules adds support for decoding / parsing PEM files.
leothedragon 0:8f0bb79ddd48 2011 */
leothedragon 0:8f0bb79ddd48 2012 //#define MBEDTLS_PEM_PARSE_C
leothedragon 0:8f0bb79ddd48 2013
leothedragon 0:8f0bb79ddd48 2014 /**
leothedragon 0:8f0bb79ddd48 2015 * \def MBEDTLS_PEM_WRITE_C
leothedragon 0:8f0bb79ddd48 2016 *
leothedragon 0:8f0bb79ddd48 2017 * Enable PEM encoding / writing.
leothedragon 0:8f0bb79ddd48 2018 *
leothedragon 0:8f0bb79ddd48 2019 * Module: library/pem.c
leothedragon 0:8f0bb79ddd48 2020 * Caller: library/pkwrite.c
leothedragon 0:8f0bb79ddd48 2021 * library/x509write_crt.c
leothedragon 0:8f0bb79ddd48 2022 * library/mbedtls_x509write_csr.c
leothedragon 0:8f0bb79ddd48 2023 *
leothedragon 0:8f0bb79ddd48 2024 * Requires: MBEDTLS_BASE64_C
leothedragon 0:8f0bb79ddd48 2025 *
leothedragon 0:8f0bb79ddd48 2026 * This modules adds support for encoding / writing PEM files.
leothedragon 0:8f0bb79ddd48 2027 */
leothedragon 0:8f0bb79ddd48 2028 //#define MBEDTLS_PEM_WRITE_C
leothedragon 0:8f0bb79ddd48 2029
leothedragon 0:8f0bb79ddd48 2030 /**
leothedragon 0:8f0bb79ddd48 2031 * \def MBEDTLS_PK_C
leothedragon 0:8f0bb79ddd48 2032 *
leothedragon 0:8f0bb79ddd48 2033 * Enable the generic public (asymetric) key layer.
leothedragon 0:8f0bb79ddd48 2034 *
leothedragon 0:8f0bb79ddd48 2035 * Module: library/pk.c
leothedragon 0:8f0bb79ddd48 2036 * Caller: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2037 * library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2038 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2039 *
leothedragon 0:8f0bb79ddd48 2040 * Requires: MBEDTLS_RSA_C or MBEDTLS_ECP_C
leothedragon 0:8f0bb79ddd48 2041 *
leothedragon 0:8f0bb79ddd48 2042 * Uncomment to enable generic public key wrappers.
leothedragon 0:8f0bb79ddd48 2043 */
leothedragon 0:8f0bb79ddd48 2044 #define MBEDTLS_PK_C
leothedragon 0:8f0bb79ddd48 2045
leothedragon 0:8f0bb79ddd48 2046 /**
leothedragon 0:8f0bb79ddd48 2047 * \def MBEDTLS_PK_PARSE_C
leothedragon 0:8f0bb79ddd48 2048 *
leothedragon 0:8f0bb79ddd48 2049 * Enable the generic public (asymetric) key parser.
leothedragon 0:8f0bb79ddd48 2050 *
leothedragon 0:8f0bb79ddd48 2051 * Module: library/pkparse.c
leothedragon 0:8f0bb79ddd48 2052 * Caller: library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 2053 * library/mbedtls_x509_csr.c
leothedragon 0:8f0bb79ddd48 2054 *
leothedragon 0:8f0bb79ddd48 2055 * Requires: MBEDTLS_PK_C
leothedragon 0:8f0bb79ddd48 2056 *
leothedragon 0:8f0bb79ddd48 2057 * Uncomment to enable generic public key parse functions.
leothedragon 0:8f0bb79ddd48 2058 */
leothedragon 0:8f0bb79ddd48 2059 #define MBEDTLS_PK_PARSE_C
leothedragon 0:8f0bb79ddd48 2060
leothedragon 0:8f0bb79ddd48 2061 /**
leothedragon 0:8f0bb79ddd48 2062 * \def MBEDTLS_PK_WRITE_C
leothedragon 0:8f0bb79ddd48 2063 *
leothedragon 0:8f0bb79ddd48 2064 * Enable the generic public (asymetric) key writer.
leothedragon 0:8f0bb79ddd48 2065 *
leothedragon 0:8f0bb79ddd48 2066 * Module: library/pkwrite.c
leothedragon 0:8f0bb79ddd48 2067 * Caller: library/x509write.c
leothedragon 0:8f0bb79ddd48 2068 *
leothedragon 0:8f0bb79ddd48 2069 * Requires: MBEDTLS_PK_C
leothedragon 0:8f0bb79ddd48 2070 *
leothedragon 0:8f0bb79ddd48 2071 * Uncomment to enable generic public key write functions.
leothedragon 0:8f0bb79ddd48 2072 */
leothedragon 0:8f0bb79ddd48 2073 #define MBEDTLS_PK_WRITE_C
leothedragon 0:8f0bb79ddd48 2074
leothedragon 0:8f0bb79ddd48 2075 /**
leothedragon 0:8f0bb79ddd48 2076 * \def MBEDTLS_PKCS5_C
leothedragon 0:8f0bb79ddd48 2077 *
leothedragon 0:8f0bb79ddd48 2078 * Enable PKCS#5 functions.
leothedragon 0:8f0bb79ddd48 2079 *
leothedragon 0:8f0bb79ddd48 2080 * Module: library/pkcs5.c
leothedragon 0:8f0bb79ddd48 2081 *
leothedragon 0:8f0bb79ddd48 2082 * Requires: MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 2083 *
leothedragon 0:8f0bb79ddd48 2084 * This module adds support for the PKCS#5 functions.
leothedragon 0:8f0bb79ddd48 2085 */
leothedragon 0:8f0bb79ddd48 2086 //#define MBEDTLS_PKCS5_C
leothedragon 0:8f0bb79ddd48 2087
leothedragon 0:8f0bb79ddd48 2088 /**
leothedragon 0:8f0bb79ddd48 2089 * \def MBEDTLS_PKCS11_C
leothedragon 0:8f0bb79ddd48 2090 *
leothedragon 0:8f0bb79ddd48 2091 * Enable wrapper for PKCS#11 smartcard support.
leothedragon 0:8f0bb79ddd48 2092 *
leothedragon 0:8f0bb79ddd48 2093 * Module: library/pkcs11.c
leothedragon 0:8f0bb79ddd48 2094 * Caller: library/pk.c
leothedragon 0:8f0bb79ddd48 2095 *
leothedragon 0:8f0bb79ddd48 2096 * Requires: MBEDTLS_PK_C
leothedragon 0:8f0bb79ddd48 2097 *
leothedragon 0:8f0bb79ddd48 2098 * This module enables SSL/TLS PKCS #11 smartcard support.
leothedragon 0:8f0bb79ddd48 2099 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper)
leothedragon 0:8f0bb79ddd48 2100 */
leothedragon 0:8f0bb79ddd48 2101 //#define MBEDTLS_PKCS11_C
leothedragon 0:8f0bb79ddd48 2102
leothedragon 0:8f0bb79ddd48 2103 /**
leothedragon 0:8f0bb79ddd48 2104 * \def MBEDTLS_PKCS12_C
leothedragon 0:8f0bb79ddd48 2105 *
leothedragon 0:8f0bb79ddd48 2106 * Enable PKCS#12 PBE functions.
leothedragon 0:8f0bb79ddd48 2107 * Adds algorithms for parsing PKCS#8 encrypted private keys
leothedragon 0:8f0bb79ddd48 2108 *
leothedragon 0:8f0bb79ddd48 2109 * Module: library/pkcs12.c
leothedragon 0:8f0bb79ddd48 2110 * Caller: library/pkparse.c
leothedragon 0:8f0bb79ddd48 2111 *
leothedragon 0:8f0bb79ddd48 2112 * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_CIPHER_C, MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 2113 * Can use: MBEDTLS_ARC4_C
leothedragon 0:8f0bb79ddd48 2114 *
leothedragon 0:8f0bb79ddd48 2115 * This module enables PKCS#12 functions.
leothedragon 0:8f0bb79ddd48 2116 */
leothedragon 0:8f0bb79ddd48 2117 //#define MBEDTLS_PKCS12_C
leothedragon 0:8f0bb79ddd48 2118
leothedragon 0:8f0bb79ddd48 2119 /**
leothedragon 0:8f0bb79ddd48 2120 * \def MBEDTLS_PLATFORM_C
leothedragon 0:8f0bb79ddd48 2121 *
leothedragon 0:8f0bb79ddd48 2122 * Enable the platform abstraction layer that allows you to re-assign
leothedragon 0:8f0bb79ddd48 2123 * functions like calloc(), free(), snprintf(), printf(), fprintf(), exit().
leothedragon 0:8f0bb79ddd48 2124 *
leothedragon 0:8f0bb79ddd48 2125 * Enabling MBEDTLS_PLATFORM_C enables to use of MBEDTLS_PLATFORM_XXX_ALT
leothedragon 0:8f0bb79ddd48 2126 * or MBEDTLS_PLATFORM_XXX_MACRO directives, allowing the functions mentioned
leothedragon 0:8f0bb79ddd48 2127 * above to be specified at runtime or compile time respectively.
leothedragon 0:8f0bb79ddd48 2128 *
leothedragon 0:8f0bb79ddd48 2129 * \note This abstraction layer must be enabled on Windows (including MSYS2)
leothedragon 0:8f0bb79ddd48 2130 * as other module rely on it for a fixed snprintf implementation.
leothedragon 0:8f0bb79ddd48 2131 *
leothedragon 0:8f0bb79ddd48 2132 * Module: library/platform.c
leothedragon 0:8f0bb79ddd48 2133 * Caller: Most other .c files
leothedragon 0:8f0bb79ddd48 2134 *
leothedragon 0:8f0bb79ddd48 2135 * This module enables abstraction of common (libc) functions.
leothedragon 0:8f0bb79ddd48 2136 */
leothedragon 0:8f0bb79ddd48 2137 #define MBEDTLS_PLATFORM_C
leothedragon 0:8f0bb79ddd48 2138
leothedragon 0:8f0bb79ddd48 2139 /**
leothedragon 0:8f0bb79ddd48 2140 * \def MBEDTLS_RIPEMD160_C
leothedragon 0:8f0bb79ddd48 2141 *
leothedragon 0:8f0bb79ddd48 2142 * Enable the RIPEMD-160 hash algorithm.
leothedragon 0:8f0bb79ddd48 2143 *
leothedragon 0:8f0bb79ddd48 2144 * Module: library/mbedtls_ripemd160.c
leothedragon 0:8f0bb79ddd48 2145 * Caller: library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 2146 *
leothedragon 0:8f0bb79ddd48 2147 */
leothedragon 0:8f0bb79ddd48 2148 //#define MBEDTLS_RIPEMD160_C
leothedragon 0:8f0bb79ddd48 2149
leothedragon 0:8f0bb79ddd48 2150 /**
leothedragon 0:8f0bb79ddd48 2151 * \def MBEDTLS_RSA_C
leothedragon 0:8f0bb79ddd48 2152 *
leothedragon 0:8f0bb79ddd48 2153 * Enable the RSA public-key cryptosystem.
leothedragon 0:8f0bb79ddd48 2154 *
leothedragon 0:8f0bb79ddd48 2155 * Module: library/rsa.c
leothedragon 0:8f0bb79ddd48 2156 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2157 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2158 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2159 * library/x509.c
leothedragon 0:8f0bb79ddd48 2160 *
leothedragon 0:8f0bb79ddd48 2161 * This module is used by the following key exchanges:
leothedragon 0:8f0bb79ddd48 2162 * RSA, DHE-RSA, ECDHE-RSA, RSA-PSK
leothedragon 0:8f0bb79ddd48 2163 *
leothedragon 0:8f0bb79ddd48 2164 * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C
leothedragon 0:8f0bb79ddd48 2165 */
leothedragon 0:8f0bb79ddd48 2166 //#define MBEDTLS_RSA_C
leothedragon 0:8f0bb79ddd48 2167
leothedragon 0:8f0bb79ddd48 2168 /**
leothedragon 0:8f0bb79ddd48 2169 * \def MBEDTLS_SHA1_C
leothedragon 0:8f0bb79ddd48 2170 *
leothedragon 0:8f0bb79ddd48 2171 * Enable the SHA1 cryptographic hash algorithm.
leothedragon 0:8f0bb79ddd48 2172 *
leothedragon 0:8f0bb79ddd48 2173 * Module: library/mbedtls_sha1.c
leothedragon 0:8f0bb79ddd48 2174 * Caller: library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 2175 * library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2176 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2177 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2178 * library/x509write_crt.c
leothedragon 0:8f0bb79ddd48 2179 *
leothedragon 0:8f0bb79ddd48 2180 * This module is required for SSL/TLS and SHA1-signed certificates.
leothedragon 0:8f0bb79ddd48 2181 */
leothedragon 0:8f0bb79ddd48 2182 //#define MBEDTLS_SHA1_C
leothedragon 0:8f0bb79ddd48 2183
leothedragon 0:8f0bb79ddd48 2184 /**
leothedragon 0:8f0bb79ddd48 2185 * \def MBEDTLS_SHA256_C
leothedragon 0:8f0bb79ddd48 2186 *
leothedragon 0:8f0bb79ddd48 2187 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
leothedragon 0:8f0bb79ddd48 2188 *
leothedragon 0:8f0bb79ddd48 2189 * Module: library/mbedtls_sha256.c
leothedragon 0:8f0bb79ddd48 2190 * Caller: library/entropy.c
leothedragon 0:8f0bb79ddd48 2191 * library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 2192 * library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2193 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2194 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2195 *
leothedragon 0:8f0bb79ddd48 2196 * This module adds support for SHA-224 and SHA-256.
leothedragon 0:8f0bb79ddd48 2197 * This module is required for the SSL/TLS 1.2 PRF function.
leothedragon 0:8f0bb79ddd48 2198 */
leothedragon 0:8f0bb79ddd48 2199 #define MBEDTLS_SHA256_C
leothedragon 0:8f0bb79ddd48 2200
leothedragon 0:8f0bb79ddd48 2201 /**
leothedragon 0:8f0bb79ddd48 2202 * \def MBEDTLS_SHA512_C
leothedragon 0:8f0bb79ddd48 2203 *
leothedragon 0:8f0bb79ddd48 2204 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
leothedragon 0:8f0bb79ddd48 2205 *
leothedragon 0:8f0bb79ddd48 2206 * Module: library/mbedtls_sha512.c
leothedragon 0:8f0bb79ddd48 2207 * Caller: library/entropy.c
leothedragon 0:8f0bb79ddd48 2208 * library/mbedtls_md.c
leothedragon 0:8f0bb79ddd48 2209 * library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2210 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2211 *
leothedragon 0:8f0bb79ddd48 2212 * This module adds support for SHA-384 and SHA-512.
leothedragon 0:8f0bb79ddd48 2213 */
leothedragon 0:8f0bb79ddd48 2214 //#define MBEDTLS_SHA512_C
leothedragon 0:8f0bb79ddd48 2215
leothedragon 0:8f0bb79ddd48 2216 /**
leothedragon 0:8f0bb79ddd48 2217 * \def MBEDTLS_SSL_CACHE_C
leothedragon 0:8f0bb79ddd48 2218 *
leothedragon 0:8f0bb79ddd48 2219 * Enable simple SSL cache implementation.
leothedragon 0:8f0bb79ddd48 2220 *
leothedragon 0:8f0bb79ddd48 2221 * Module: library/ssl_cache.c
leothedragon 0:8f0bb79ddd48 2222 * Caller:
leothedragon 0:8f0bb79ddd48 2223 *
leothedragon 0:8f0bb79ddd48 2224 * Requires: MBEDTLS_SSL_CACHE_C
leothedragon 0:8f0bb79ddd48 2225 */
leothedragon 0:8f0bb79ddd48 2226 #define MBEDTLS_SSL_CACHE_C
leothedragon 0:8f0bb79ddd48 2227
leothedragon 0:8f0bb79ddd48 2228 /**
leothedragon 0:8f0bb79ddd48 2229 * \def MBEDTLS_SSL_COOKIE_C
leothedragon 0:8f0bb79ddd48 2230 *
leothedragon 0:8f0bb79ddd48 2231 * Enable basic implementation of DTLS cookies for hello verification.
leothedragon 0:8f0bb79ddd48 2232 *
leothedragon 0:8f0bb79ddd48 2233 * Module: library/ssl_cookie.c
leothedragon 0:8f0bb79ddd48 2234 * Caller:
leothedragon 0:8f0bb79ddd48 2235 */
leothedragon 0:8f0bb79ddd48 2236 #define MBEDTLS_SSL_COOKIE_C
leothedragon 0:8f0bb79ddd48 2237
leothedragon 0:8f0bb79ddd48 2238 /**
leothedragon 0:8f0bb79ddd48 2239 * \def MBEDTLS_SSL_TICKET_C
leothedragon 0:8f0bb79ddd48 2240 *
leothedragon 0:8f0bb79ddd48 2241 * Enable an implementation of TLS server-side callbacks for session tickets.
leothedragon 0:8f0bb79ddd48 2242 *
leothedragon 0:8f0bb79ddd48 2243 * Module: library/ssl_ticket.c
leothedragon 0:8f0bb79ddd48 2244 * Caller:
leothedragon 0:8f0bb79ddd48 2245 *
leothedragon 0:8f0bb79ddd48 2246 * Requires: MBEDTLS_CIPHER_C
leothedragon 0:8f0bb79ddd48 2247 */
leothedragon 0:8f0bb79ddd48 2248 #define MBEDTLS_SSL_TICKET_C
leothedragon 0:8f0bb79ddd48 2249
leothedragon 0:8f0bb79ddd48 2250 /**
leothedragon 0:8f0bb79ddd48 2251 * \def MBEDTLS_SSL_CLI_C
leothedragon 0:8f0bb79ddd48 2252 *
leothedragon 0:8f0bb79ddd48 2253 * Enable the SSL/TLS client code.
leothedragon 0:8f0bb79ddd48 2254 *
leothedragon 0:8f0bb79ddd48 2255 * Module: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2256 * Caller:
leothedragon 0:8f0bb79ddd48 2257 *
leothedragon 0:8f0bb79ddd48 2258 * Requires: MBEDTLS_SSL_TLS_C
leothedragon 0:8f0bb79ddd48 2259 *
leothedragon 0:8f0bb79ddd48 2260 * This module is required for SSL/TLS client support.
leothedragon 0:8f0bb79ddd48 2261 */
leothedragon 0:8f0bb79ddd48 2262 #define MBEDTLS_SSL_CLI_C
leothedragon 0:8f0bb79ddd48 2263
leothedragon 0:8f0bb79ddd48 2264 /**
leothedragon 0:8f0bb79ddd48 2265 * \def MBEDTLS_SSL_SRV_C
leothedragon 0:8f0bb79ddd48 2266 *
leothedragon 0:8f0bb79ddd48 2267 * Enable the SSL/TLS server code.
leothedragon 0:8f0bb79ddd48 2268 *
leothedragon 0:8f0bb79ddd48 2269 * Module: library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2270 * Caller:
leothedragon 0:8f0bb79ddd48 2271 *
leothedragon 0:8f0bb79ddd48 2272 * Requires: MBEDTLS_SSL_TLS_C
leothedragon 0:8f0bb79ddd48 2273 *
leothedragon 0:8f0bb79ddd48 2274 * This module is required for SSL/TLS server support.
leothedragon 0:8f0bb79ddd48 2275 */
leothedragon 0:8f0bb79ddd48 2276 //#define MBEDTLS_SSL_SRV_C
leothedragon 0:8f0bb79ddd48 2277
leothedragon 0:8f0bb79ddd48 2278 /**
leothedragon 0:8f0bb79ddd48 2279 * \def MBEDTLS_SSL_TLS_C
leothedragon 0:8f0bb79ddd48 2280 *
leothedragon 0:8f0bb79ddd48 2281 * Enable the generic SSL/TLS code.
leothedragon 0:8f0bb79ddd48 2282 *
leothedragon 0:8f0bb79ddd48 2283 * Module: library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2284 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2285 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2286 *
leothedragon 0:8f0bb79ddd48 2287 * Requires: MBEDTLS_CIPHER_C, MBEDTLS_MD_C
leothedragon 0:8f0bb79ddd48 2288 * and at least one of the MBEDTLS_SSL_PROTO_XXX defines
leothedragon 0:8f0bb79ddd48 2289 *
leothedragon 0:8f0bb79ddd48 2290 * This module is required for SSL/TLS.
leothedragon 0:8f0bb79ddd48 2291 */
leothedragon 0:8f0bb79ddd48 2292 #define MBEDTLS_SSL_TLS_C
leothedragon 0:8f0bb79ddd48 2293
leothedragon 0:8f0bb79ddd48 2294 /**
leothedragon 0:8f0bb79ddd48 2295 * \def MBEDTLS_THREADING_C
leothedragon 0:8f0bb79ddd48 2296 *
leothedragon 0:8f0bb79ddd48 2297 * Enable the threading abstraction layer.
leothedragon 0:8f0bb79ddd48 2298 * By default mbed TLS assumes it is used in a non-threaded environment or that
leothedragon 0:8f0bb79ddd48 2299 * contexts are not shared between threads. If you do intend to use contexts
leothedragon 0:8f0bb79ddd48 2300 * between threads, you will need to enable this layer to prevent race
leothedragon 0:8f0bb79ddd48 2301 * conditions.
leothedragon 0:8f0bb79ddd48 2302 *
leothedragon 0:8f0bb79ddd48 2303 * Module: library/threading.c
leothedragon 0:8f0bb79ddd48 2304 *
leothedragon 0:8f0bb79ddd48 2305 * This allows different threading implementations (self-implemented or
leothedragon 0:8f0bb79ddd48 2306 * provided).
leothedragon 0:8f0bb79ddd48 2307 *
leothedragon 0:8f0bb79ddd48 2308 * You will have to enable either MBEDTLS_THREADING_ALT or
leothedragon 0:8f0bb79ddd48 2309 * MBEDTLS_THREADING_PTHREAD.
leothedragon 0:8f0bb79ddd48 2310 *
leothedragon 0:8f0bb79ddd48 2311 * Enable this layer to allow use of mutexes within mbed TLS
leothedragon 0:8f0bb79ddd48 2312 */
leothedragon 0:8f0bb79ddd48 2313 //#define MBEDTLS_THREADING_C
leothedragon 0:8f0bb79ddd48 2314
leothedragon 0:8f0bb79ddd48 2315 /**
leothedragon 0:8f0bb79ddd48 2316 * \def MBEDTLS_TIMING_C
leothedragon 0:8f0bb79ddd48 2317 *
leothedragon 0:8f0bb79ddd48 2318 * Enable the portable timing interface.
leothedragon 0:8f0bb79ddd48 2319 *
leothedragon 0:8f0bb79ddd48 2320 * Module: library/timing.c
leothedragon 0:8f0bb79ddd48 2321 * Caller: library/havege.c
leothedragon 0:8f0bb79ddd48 2322 *
leothedragon 0:8f0bb79ddd48 2323 * This module is used by the HAVEGE random number generator.
leothedragon 0:8f0bb79ddd48 2324 */
leothedragon 0:8f0bb79ddd48 2325 //#define MBEDTLS_TIMING_C
leothedragon 0:8f0bb79ddd48 2326
leothedragon 0:8f0bb79ddd48 2327 /**
leothedragon 0:8f0bb79ddd48 2328 * \def MBEDTLS_VERSION_C
leothedragon 0:8f0bb79ddd48 2329 *
leothedragon 0:8f0bb79ddd48 2330 * Enable run-time version information.
leothedragon 0:8f0bb79ddd48 2331 *
leothedragon 0:8f0bb79ddd48 2332 * Module: library/version.c
leothedragon 0:8f0bb79ddd48 2333 *
leothedragon 0:8f0bb79ddd48 2334 * This module provides run-time version information.
leothedragon 0:8f0bb79ddd48 2335 */
leothedragon 0:8f0bb79ddd48 2336 #define MBEDTLS_VERSION_C
leothedragon 0:8f0bb79ddd48 2337
leothedragon 0:8f0bb79ddd48 2338 /**
leothedragon 0:8f0bb79ddd48 2339 * \def MBEDTLS_X509_USE_C
leothedragon 0:8f0bb79ddd48 2340 *
leothedragon 0:8f0bb79ddd48 2341 * Enable X.509 core for using certificates.
leothedragon 0:8f0bb79ddd48 2342 *
leothedragon 0:8f0bb79ddd48 2343 * Module: library/x509.c
leothedragon 0:8f0bb79ddd48 2344 * Caller: library/mbedtls_x509_crl.c
leothedragon 0:8f0bb79ddd48 2345 * library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 2346 * library/mbedtls_x509_csr.c
leothedragon 0:8f0bb79ddd48 2347 *
leothedragon 0:8f0bb79ddd48 2348 * Requires: MBEDTLS_ASN1_PARSE_C, MBEDTLS_BIGNUM_C, MBEDTLS_OID_C,
leothedragon 0:8f0bb79ddd48 2349 * MBEDTLS_PK_PARSE_C
leothedragon 0:8f0bb79ddd48 2350 *
leothedragon 0:8f0bb79ddd48 2351 * This module is required for the X.509 parsing modules.
leothedragon 0:8f0bb79ddd48 2352 */
leothedragon 0:8f0bb79ddd48 2353 #define MBEDTLS_X509_USE_C
leothedragon 0:8f0bb79ddd48 2354
leothedragon 0:8f0bb79ddd48 2355 /**
leothedragon 0:8f0bb79ddd48 2356 * \def MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 2357 *
leothedragon 0:8f0bb79ddd48 2358 * Enable X.509 certificate parsing.
leothedragon 0:8f0bb79ddd48 2359 *
leothedragon 0:8f0bb79ddd48 2360 * Module: library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 2361 * Caller: library/ssl_cli.c
leothedragon 0:8f0bb79ddd48 2362 * library/ssl_srv.c
leothedragon 0:8f0bb79ddd48 2363 * library/ssl_tls.c
leothedragon 0:8f0bb79ddd48 2364 *
leothedragon 0:8f0bb79ddd48 2365 * Requires: MBEDTLS_X509_USE_C
leothedragon 0:8f0bb79ddd48 2366 *
leothedragon 0:8f0bb79ddd48 2367 * This module is required for X.509 certificate parsing.
leothedragon 0:8f0bb79ddd48 2368 */
leothedragon 0:8f0bb79ddd48 2369
leothedragon 0:8f0bb79ddd48 2370 #define MBEDTLS_X509_CRT_PARSE_C
leothedragon 0:8f0bb79ddd48 2371
leothedragon 0:8f0bb79ddd48 2372 /**
leothedragon 0:8f0bb79ddd48 2373 * \def MBEDTLS_X509_CRL_PARSE_C
leothedragon 0:8f0bb79ddd48 2374 *
leothedragon 0:8f0bb79ddd48 2375 * Enable X.509 CRL parsing.
leothedragon 0:8f0bb79ddd48 2376 *
leothedragon 0:8f0bb79ddd48 2377 * Module: library/mbedtls_x509_crl.c
leothedragon 0:8f0bb79ddd48 2378 * Caller: library/mbedtls_x509_crt.c
leothedragon 0:8f0bb79ddd48 2379 *
leothedragon 0:8f0bb79ddd48 2380 * Requires: MBEDTLS_X509_USE_C
leothedragon 0:8f0bb79ddd48 2381 *
leothedragon 0:8f0bb79ddd48 2382 * This module is required for X.509 CRL parsing.
leothedragon 0:8f0bb79ddd48 2383 */
leothedragon 0:8f0bb79ddd48 2384 #define MBEDTLS_X509_CRL_PARSE_C
leothedragon 0:8f0bb79ddd48 2385
leothedragon 0:8f0bb79ddd48 2386 /**
leothedragon 0:8f0bb79ddd48 2387 * \def MBEDTLS_X509_CSR_PARSE_C
leothedragon 0:8f0bb79ddd48 2388 *
leothedragon 0:8f0bb79ddd48 2389 * Enable X.509 Certificate Signing Request (CSR) parsing.
leothedragon 0:8f0bb79ddd48 2390 *
leothedragon 0:8f0bb79ddd48 2391 * Module: library/mbedtls_x509_csr.c
leothedragon 0:8f0bb79ddd48 2392 * Caller: library/x509_crt_write.c
leothedragon 0:8f0bb79ddd48 2393 *
leothedragon 0:8f0bb79ddd48 2394 * Requires: MBEDTLS_X509_USE_C
leothedragon 0:8f0bb79ddd48 2395 *
leothedragon 0:8f0bb79ddd48 2396 * This module is used for reading X.509 certificate request.
leothedragon 0:8f0bb79ddd48 2397 */
leothedragon 0:8f0bb79ddd48 2398 #define MBEDTLS_X509_CSR_PARSE_C
leothedragon 0:8f0bb79ddd48 2399
leothedragon 0:8f0bb79ddd48 2400 /**
leothedragon 0:8f0bb79ddd48 2401 * \def MBEDTLS_X509_CREATE_C
leothedragon 0:8f0bb79ddd48 2402 *
leothedragon 0:8f0bb79ddd48 2403 * Enable X.509 core for creating certificates.
leothedragon 0:8f0bb79ddd48 2404 *
leothedragon 0:8f0bb79ddd48 2405 * Module: library/x509_create.c
leothedragon 0:8f0bb79ddd48 2406 *
leothedragon 0:8f0bb79ddd48 2407 * Requires: MBEDTLS_BIGNUM_C, MBEDTLS_OID_C, MBEDTLS_PK_WRITE_C
leothedragon 0:8f0bb79ddd48 2408 *
leothedragon 0:8f0bb79ddd48 2409 * This module is the basis for creating X.509 certificates and CSRs.
leothedragon 0:8f0bb79ddd48 2410 */
leothedragon 0:8f0bb79ddd48 2411 #define MBEDTLS_X509_CREATE_C
leothedragon 0:8f0bb79ddd48 2412
leothedragon 0:8f0bb79ddd48 2413 /**
leothedragon 0:8f0bb79ddd48 2414 * \def MBEDTLS_X509_CRT_WRITE_C
leothedragon 0:8f0bb79ddd48 2415 *
leothedragon 0:8f0bb79ddd48 2416 * Enable creating X.509 certificates.
leothedragon 0:8f0bb79ddd48 2417 *
leothedragon 0:8f0bb79ddd48 2418 * Module: library/x509_crt_write.c
leothedragon 0:8f0bb79ddd48 2419 *
leothedragon 0:8f0bb79ddd48 2420 * Requires: MBEDTLS_X509_CREATE_C
leothedragon 0:8f0bb79ddd48 2421 *
leothedragon 0:8f0bb79ddd48 2422 * This module is required for X.509 certificate creation.
leothedragon 0:8f0bb79ddd48 2423 */
leothedragon 0:8f0bb79ddd48 2424 //#define MBEDTLS_X509_CRT_WRITE_C
leothedragon 0:8f0bb79ddd48 2425
leothedragon 0:8f0bb79ddd48 2426 /**
leothedragon 0:8f0bb79ddd48 2427 * \def MBEDTLS_X509_CSR_WRITE_C
leothedragon 0:8f0bb79ddd48 2428 *
leothedragon 0:8f0bb79ddd48 2429 * Enable creating X.509 Certificate Signing Requests (CSR).
leothedragon 0:8f0bb79ddd48 2430 *
leothedragon 0:8f0bb79ddd48 2431 * Module: library/x509_csr_write.c
leothedragon 0:8f0bb79ddd48 2432 *
leothedragon 0:8f0bb79ddd48 2433 * Requires: MBEDTLS_X509_CREATE_C
leothedragon 0:8f0bb79ddd48 2434 *
leothedragon 0:8f0bb79ddd48 2435 * This module is required for X.509 certificate request writing.
leothedragon 0:8f0bb79ddd48 2436 */
leothedragon 0:8f0bb79ddd48 2437 #define MBEDTLS_X509_CSR_WRITE_C
leothedragon 0:8f0bb79ddd48 2438 /**
leothedragon 0:8f0bb79ddd48 2439 * \def MBEDTLS_XTEA_C
leothedragon 0:8f0bb79ddd48 2440 *
leothedragon 0:8f0bb79ddd48 2441 * Enable the XTEA block cipher.
leothedragon 0:8f0bb79ddd48 2442 *
leothedragon 0:8f0bb79ddd48 2443 * Module: library/xtea.c
leothedragon 0:8f0bb79ddd48 2444 * Caller:
leothedragon 0:8f0bb79ddd48 2445 */
leothedragon 0:8f0bb79ddd48 2446 //#define MBEDTLS_XTEA_C
leothedragon 0:8f0bb79ddd48 2447
leothedragon 0:8f0bb79ddd48 2448 /* \} name SECTION: mbed TLS modules */
leothedragon 0:8f0bb79ddd48 2449
leothedragon 0:8f0bb79ddd48 2450 /**
leothedragon 0:8f0bb79ddd48 2451 * \name SECTION: Module configuration options
leothedragon 0:8f0bb79ddd48 2452 *
leothedragon 0:8f0bb79ddd48 2453 * This section allows for the setting of module specific sizes and
leothedragon 0:8f0bb79ddd48 2454 * configuration options. The default values are already present in the
leothedragon 0:8f0bb79ddd48 2455 * relevant header files and should suffice for the regular use cases.
leothedragon 0:8f0bb79ddd48 2456 *
leothedragon 0:8f0bb79ddd48 2457 * Our advice is to enable options and change their values here
leothedragon 0:8f0bb79ddd48 2458 * only if you have a good reason and know the consequences.
leothedragon 0:8f0bb79ddd48 2459 *
leothedragon 0:8f0bb79ddd48 2460 * Please check the respective header file for documentation on these
leothedragon 0:8f0bb79ddd48 2461 * parameters (to prevent duplicate documentation).
leothedragon 0:8f0bb79ddd48 2462 * \{
leothedragon 0:8f0bb79ddd48 2463 */
leothedragon 0:8f0bb79ddd48 2464
leothedragon 0:8f0bb79ddd48 2465 /* MPI / BIGNUM options */
leothedragon 0:8f0bb79ddd48 2466 //#define MBEDTLS_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */
leothedragon 0:8f0bb79ddd48 2467 //#define MBEDTLS_MPI_MAX_SIZE 1024 /**< Maximum number of bytes for usable MPIs. */
leothedragon 0:8f0bb79ddd48 2468
leothedragon 0:8f0bb79ddd48 2469 /* CTR_DRBG options */
leothedragon 0:8f0bb79ddd48 2470 //#define MBEDTLS_CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */
leothedragon 0:8f0bb79ddd48 2471 //#define MBEDTLS_CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
leothedragon 0:8f0bb79ddd48 2472 //#define MBEDTLS_CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
leothedragon 0:8f0bb79ddd48 2473 //#define MBEDTLS_CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
leothedragon 0:8f0bb79ddd48 2474 //#define MBEDTLS_CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
leothedragon 0:8f0bb79ddd48 2475
leothedragon 0:8f0bb79ddd48 2476 /* HMAC_DRBG options */
leothedragon 0:8f0bb79ddd48 2477 //#define MBEDTLS_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
leothedragon 0:8f0bb79ddd48 2478 //#define MBEDTLS_HMAC_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
leothedragon 0:8f0bb79ddd48 2479 //#define MBEDTLS_HMAC_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
leothedragon 0:8f0bb79ddd48 2480 //#define MBEDTLS_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
leothedragon 0:8f0bb79ddd48 2481
leothedragon 0:8f0bb79ddd48 2482 /* ECP options */
leothedragon 0:8f0bb79ddd48 2483 //#define MBEDTLS_ECP_MAX_BITS 521 /**< Maximum bit size of groups */
leothedragon 0:8f0bb79ddd48 2484 //#define MBEDTLS_ECP_WINDOW_SIZE 6 /**< Maximum window size used */
leothedragon 0:8f0bb79ddd48 2485 //#define MBEDTLS_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */
leothedragon 0:8f0bb79ddd48 2486
leothedragon 0:8f0bb79ddd48 2487 /* Entropy options */
leothedragon 0:8f0bb79ddd48 2488 //#define MBEDTLS_ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */
leothedragon 0:8f0bb79ddd48 2489 //#define MBEDTLS_ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */
leothedragon 0:8f0bb79ddd48 2490
leothedragon 0:8f0bb79ddd48 2491 /* Memory buffer allocator options */
leothedragon 0:8f0bb79ddd48 2492 //#define MBEDTLS_MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */
leothedragon 0:8f0bb79ddd48 2493
leothedragon 0:8f0bb79ddd48 2494 /* Platform options */
leothedragon 0:8f0bb79ddd48 2495 //#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. */
leothedragon 0:8f0bb79ddd48 2496 //#define MBEDTLS_PLATFORM_STD_CALLOC calloc /**< Default allocator to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2497 //#define MBEDTLS_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2498 //#define MBEDTLS_PLATFORM_STD_EXIT exit /**< Default exit to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2499 //#define MBEDTLS_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2500 //#define MBEDTLS_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2501 /* Note: your snprintf must correclty zero-terminate the buffer! */
leothedragon 0:8f0bb79ddd48 2502 //#define MBEDTLS_PLATFORM_STD_SNPRINTF snprintf /**< Default snprintf to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2503
leothedragon 0:8f0bb79ddd48 2504 /* To Use Function Macros MBEDTLS_PLATFORM_C must be enabled */
leothedragon 0:8f0bb79ddd48 2505 /* MBEDTLS_PLATFORM_XXX_MACRO and MBEDTLS_PLATFORM_XXX_ALT cannot both be defined */
leothedragon 0:8f0bb79ddd48 2506 //#define MBEDTLS_PLATFORM_CALLOC_MACRO calloc /**< Default allocator macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2507 //#define MBEDTLS_PLATFORM_FREE_MACRO free /**< Default free macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2508 //#define MBEDTLS_PLATFORM_EXIT_MACRO exit /**< Default exit macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2509 //#define MBEDTLS_PLATFORM_FPRINTF_MACRO fprintf /**< Default fprintf macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2510 //#define MBEDTLS_PLATFORM_PRINTF_MACRO printf /**< Default printf macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2511 /* Note: your snprintf must correclty zero-terminate the buffer! */
leothedragon 0:8f0bb79ddd48 2512 //#define MBEDTLS_PLATFORM_SNPRINTF_MACRO snprintf /**< Default snprintf macro to use, can be undefined */
leothedragon 0:8f0bb79ddd48 2513
leothedragon 0:8f0bb79ddd48 2514 /* SSL Cache options */
leothedragon 0:8f0bb79ddd48 2515 //#define MBEDTLS_SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */
leothedragon 0:8f0bb79ddd48 2516 //#define MBEDTLS_SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */
leothedragon 0:8f0bb79ddd48 2517
leothedragon 0:8f0bb79ddd48 2518 /* SSL options */
leothedragon 0:8f0bb79ddd48 2519
leothedragon 0:8f0bb79ddd48 2520 #define MBEDTLS_SSL_MAX_CONTENT_LEN 4096
leothedragon 0:8f0bb79ddd48 2521
leothedragon 0:8f0bb79ddd48 2522 //#define MBEDTLS_SSL_MAX_CONTENT_LEN 16384 /**< Maxium fragment length in bytes, determines the size of each of the two internal I/O buffers */
leothedragon 0:8f0bb79ddd48 2523 //#define MBEDTLS_SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */
leothedragon 0:8f0bb79ddd48 2524 //#define MBEDTLS_PSK_MAX_LEN 32 /**< Max size of TLS pre-shared keys, in bytes (default 256 bits) */
leothedragon 0:8f0bb79ddd48 2525 //#define MBEDTLS_SSL_COOKIE_TIMEOUT 60 /**< Default expiration delay of DTLS cookies, in seconds if HAVE_TIME, or in number of cookies issued */
leothedragon 0:8f0bb79ddd48 2526
leothedragon 0:8f0bb79ddd48 2527 /**
leothedragon 0:8f0bb79ddd48 2528 * Complete list of ciphersuites to use, in order of preference.
leothedragon 0:8f0bb79ddd48 2529 *
leothedragon 0:8f0bb79ddd48 2530 * \warning No dependency checking is done on that field! This option can only
leothedragon 0:8f0bb79ddd48 2531 * be used to restrict the set of available ciphersuites. It is your
leothedragon 0:8f0bb79ddd48 2532 * responsibility to make sure the needed modules are active.
leothedragon 0:8f0bb79ddd48 2533 *
leothedragon 0:8f0bb79ddd48 2534 * Use this to save a few hundred bytes of ROM (default ordering of all
leothedragon 0:8f0bb79ddd48 2535 * available ciphersuites) and a few to a few hundred bytes of RAM.
leothedragon 0:8f0bb79ddd48 2536 *
leothedragon 0:8f0bb79ddd48 2537 * The value below is only an example, not the default.
leothedragon 0:8f0bb79ddd48 2538 */
leothedragon 0:8f0bb79ddd48 2539 #define MBEDTLS_SSL_CIPHERSUITES MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8, \
leothedragon 0:8f0bb79ddd48 2540 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, \
leothedragon 0:8f0bb79ddd48 2541 MBEDTLS_TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, \
leothedragon 0:8f0bb79ddd48 2542 MBEDTLS_TLS_PSK_WITH_AES_128_CCM_8, \
leothedragon 0:8f0bb79ddd48 2543 MBEDTLS_TLS_PSK_WITH_AES_256_CCM_8
leothedragon 0:8f0bb79ddd48 2544 /* X509 options */
leothedragon 0:8f0bb79ddd48 2545 //#define MBEDTLS_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */
leothedragon 0:8f0bb79ddd48 2546
leothedragon 0:8f0bb79ddd48 2547 /* \} name SECTION: Module configuration options */
leothedragon 0:8f0bb79ddd48 2548
leothedragon 0:8f0bb79ddd48 2549 // Reduces size particularly in case PSA crypto is used
leothedragon 0:8f0bb79ddd48 2550 #undef MBEDTLS_CHACHA20_C
leothedragon 0:8f0bb79ddd48 2551 #undef MBEDTLS_CHACHAPOLY_C
leothedragon 0:8f0bb79ddd48 2552 #undef MBEDTLS_POLY1305_C
leothedragon 0:8f0bb79ddd48 2553
leothedragon 0:8f0bb79ddd48 2554 #if defined(TARGET_LIKE_MBED)
leothedragon 0:8f0bb79ddd48 2555 #include "mbedtls/target_config.h"
leothedragon 0:8f0bb79ddd48 2556 #endif
leothedragon 0:8f0bb79ddd48 2557
leothedragon 0:8f0bb79ddd48 2558 /*
leothedragon 0:8f0bb79ddd48 2559 * Allow user to override any previous default.
leothedragon 0:8f0bb79ddd48 2560 */
leothedragon 0:8f0bb79ddd48 2561
leothedragon 0:8f0bb79ddd48 2562 #if defined(MBEDTLS_USER_CONFIG_FILE)
leothedragon 0:8f0bb79ddd48 2563 #include MBEDTLS_USER_CONFIG_FILE
leothedragon 0:8f0bb79ddd48 2564 #endif
leothedragon 0:8f0bb79ddd48 2565
leothedragon 0:8f0bb79ddd48 2566 #include "mbedtls/check_config.h"
leothedragon 0:8f0bb79ddd48 2567
leothedragon 0:8f0bb79ddd48 2568 #endif /* KSDK_MBEDTLS_CONFIG_H */