simple http request (temperature data) from mbed lpc1768 with application board to thingsboard device/dashboard

Dependencies:   LM75B mbed-http

Fork of http-example by sandbox

Committer:
daklowprofile
Date:
Fri Jun 29 03:19:58 2018 +0000
Revision:
31:cba9d9dea21a
Parent:
18:b661324be638
don't change anything

Who changed what in which revision?

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