Example program to test AES-GCM functionality. Used for a workshop

Dependencies:   mbed

Committer:
HannesTschofenig
Date:
Thu Sep 27 06:34:22 2018 +0000
Revision:
0:796d0f61a05b
Example AES-GCM test program

Who changed what in which revision?

UserRevisionLine numberNew contents of line
HannesTschofenig 0:796d0f61a05b 1 /**
HannesTschofenig 0:796d0f61a05b 2 * \file config.h
HannesTschofenig 0:796d0f61a05b 3 *
HannesTschofenig 0:796d0f61a05b 4 * \brief Configuration options (set of defines)
HannesTschofenig 0:796d0f61a05b 5 *
HannesTschofenig 0:796d0f61a05b 6 * Copyright (C) 2006-2014, Brainspark B.V.
HannesTschofenig 0:796d0f61a05b 7 *
HannesTschofenig 0:796d0f61a05b 8 * This file is part of PolarSSL (http://www.polarssl.org)
HannesTschofenig 0:796d0f61a05b 9 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
HannesTschofenig 0:796d0f61a05b 10 *
HannesTschofenig 0:796d0f61a05b 11 * All rights reserved.
HannesTschofenig 0:796d0f61a05b 12 *
HannesTschofenig 0:796d0f61a05b 13 * This program is free software; you can redistribute it and/or modify
HannesTschofenig 0:796d0f61a05b 14 * it under the terms of the GNU General Public License as published by
HannesTschofenig 0:796d0f61a05b 15 * the Free Software Foundation; either version 2 of the License, or
HannesTschofenig 0:796d0f61a05b 16 * (at your option) any later version.
HannesTschofenig 0:796d0f61a05b 17 *
HannesTschofenig 0:796d0f61a05b 18 * This program is distributed in the hope that it will be useful,
HannesTschofenig 0:796d0f61a05b 19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
HannesTschofenig 0:796d0f61a05b 20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
HannesTschofenig 0:796d0f61a05b 21 * GNU General Public License for more details.
HannesTschofenig 0:796d0f61a05b 22 *
HannesTschofenig 0:796d0f61a05b 23 * You should have received a copy of the GNU General Public License along
HannesTschofenig 0:796d0f61a05b 24 * with this program; if not, write to the Free Software Foundation, Inc.,
HannesTschofenig 0:796d0f61a05b 25 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
HannesTschofenig 0:796d0f61a05b 26 *
HannesTschofenig 0:796d0f61a05b 27 * This set of compile-time options may be used to enable
HannesTschofenig 0:796d0f61a05b 28 * or disable features selectively, and reduce the global
HannesTschofenig 0:796d0f61a05b 29 * memory footprint.
HannesTschofenig 0:796d0f61a05b 30 */
HannesTschofenig 0:796d0f61a05b 31 #ifndef POLARSSL_CONFIG_H
HannesTschofenig 0:796d0f61a05b 32 #define POLARSSL_CONFIG_H
HannesTschofenig 0:796d0f61a05b 33
HannesTschofenig 0:796d0f61a05b 34 #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
HannesTschofenig 0:796d0f61a05b 35 #define _CRT_SECURE_NO_DEPRECATE 1
HannesTschofenig 0:796d0f61a05b 36 #endif
HannesTschofenig 0:796d0f61a05b 37
HannesTschofenig 0:796d0f61a05b 38 /**
HannesTschofenig 0:796d0f61a05b 39 * \name SECTION: System support
HannesTschofenig 0:796d0f61a05b 40 *
HannesTschofenig 0:796d0f61a05b 41 * This section sets system specific settings.
HannesTschofenig 0:796d0f61a05b 42 * \{
HannesTschofenig 0:796d0f61a05b 43 */
HannesTschofenig 0:796d0f61a05b 44
HannesTschofenig 0:796d0f61a05b 45 /**
HannesTschofenig 0:796d0f61a05b 46 * \def POLARSSL_HAVE_INT8
HannesTschofenig 0:796d0f61a05b 47 *
HannesTschofenig 0:796d0f61a05b 48 * The system uses 8-bit wide native integers.
HannesTschofenig 0:796d0f61a05b 49 *
HannesTschofenig 0:796d0f61a05b 50 * Uncomment if native integers are 8-bit wide.
HannesTschofenig 0:796d0f61a05b 51 */
HannesTschofenig 0:796d0f61a05b 52 //#define POLARSSL_HAVE_INT8
HannesTschofenig 0:796d0f61a05b 53
HannesTschofenig 0:796d0f61a05b 54
HannesTschofenig 0:796d0f61a05b 55 /**
HannesTschofenig 0:796d0f61a05b 56 * \def POLARSSL_MBED
HannesTschofenig 0:796d0f61a05b 57 *
HannesTschofenig 0:796d0f61a05b 58 * Code generation for use with MBED.
HannesTschofenig 0:796d0f61a05b 59 *
HannesTschofenig 0:796d0f61a05b 60 * Uncomment if MBED code should be included. .
HannesTschofenig 0:796d0f61a05b 61 */
HannesTschofenig 0:796d0f61a05b 62 #define POLARSSL_MBED 1
HannesTschofenig 0:796d0f61a05b 63
HannesTschofenig 0:796d0f61a05b 64 /**
HannesTschofenig 0:796d0f61a05b 65 * \def POLARSSL_HAVE_INT16
HannesTschofenig 0:796d0f61a05b 66 *
HannesTschofenig 0:796d0f61a05b 67 * The system uses 16-bit wide native integers.
HannesTschofenig 0:796d0f61a05b 68 *
HannesTschofenig 0:796d0f61a05b 69 * Uncomment if native integers are 16-bit wide.
HannesTschofenig 0:796d0f61a05b 70 */
HannesTschofenig 0:796d0f61a05b 71 //#define POLARSSL_HAVE_INT16
HannesTschofenig 0:796d0f61a05b 72
HannesTschofenig 0:796d0f61a05b 73 /**
HannesTschofenig 0:796d0f61a05b 74 * \def POLARSSL_HAVE_LONGLONG
HannesTschofenig 0:796d0f61a05b 75 *
HannesTschofenig 0:796d0f61a05b 76 * The compiler supports the 'long long' type.
HannesTschofenig 0:796d0f61a05b 77 * (Only used on 32-bit platforms)
HannesTschofenig 0:796d0f61a05b 78 */
HannesTschofenig 0:796d0f61a05b 79 #define POLARSSL_HAVE_LONGLONG
HannesTschofenig 0:796d0f61a05b 80
HannesTschofenig 0:796d0f61a05b 81 /**
HannesTschofenig 0:796d0f61a05b 82 * \def POLARSSL_HAVE_ASM
HannesTschofenig 0:796d0f61a05b 83 *
HannesTschofenig 0:796d0f61a05b 84 * The compiler has support for asm().
HannesTschofenig 0:796d0f61a05b 85 *
HannesTschofenig 0:796d0f61a05b 86 * Requires support for asm() in compiler.
HannesTschofenig 0:796d0f61a05b 87 *
HannesTschofenig 0:796d0f61a05b 88 * Used in:
HannesTschofenig 0:796d0f61a05b 89 * library/timing.c
HannesTschofenig 0:796d0f61a05b 90 * library/padlock.c
HannesTschofenig 0:796d0f61a05b 91 * include/polarssl/bn_mul.h
HannesTschofenig 0:796d0f61a05b 92 *
HannesTschofenig 0:796d0f61a05b 93 * Comment to disable the use of assembly code.
HannesTschofenig 0:796d0f61a05b 94 */
HannesTschofenig 0:796d0f61a05b 95 // #define POLARSSL_HAVE_ASM
HannesTschofenig 0:796d0f61a05b 96
HannesTschofenig 0:796d0f61a05b 97 /**
HannesTschofenig 0:796d0f61a05b 98 * \def POLARSSL_HAVE_SSE2
HannesTschofenig 0:796d0f61a05b 99 *
HannesTschofenig 0:796d0f61a05b 100 * CPU supports SSE2 instruction set.
HannesTschofenig 0:796d0f61a05b 101 *
HannesTschofenig 0:796d0f61a05b 102 * Uncomment if the CPU supports SSE2 (IA-32 specific).
HannesTschofenig 0:796d0f61a05b 103 */
HannesTschofenig 0:796d0f61a05b 104 //#define POLARSSL_HAVE_SSE2
HannesTschofenig 0:796d0f61a05b 105
HannesTschofenig 0:796d0f61a05b 106 /**
HannesTschofenig 0:796d0f61a05b 107 * \def POLARSSL_HAVE_TIME
HannesTschofenig 0:796d0f61a05b 108 *
HannesTschofenig 0:796d0f61a05b 109 * System has time.h and time() / localtime() / gettimeofday().
HannesTschofenig 0:796d0f61a05b 110 *
HannesTschofenig 0:796d0f61a05b 111 * Comment if your system does not support time functions
HannesTschofenig 0:796d0f61a05b 112 */
HannesTschofenig 0:796d0f61a05b 113 //#define POLARSSL_HAVE_TIME
HannesTschofenig 0:796d0f61a05b 114
HannesTschofenig 0:796d0f61a05b 115 /**
HannesTschofenig 0:796d0f61a05b 116 * \def POLARSSL_HAVE_IPV6
HannesTschofenig 0:796d0f61a05b 117 *
HannesTschofenig 0:796d0f61a05b 118 * System supports the basic socket interface for IPv6 (RFC 3493),
HannesTschofenig 0:796d0f61a05b 119 * specifically getaddrinfo(), freeaddrinfo() and struct sockaddr_storage.
HannesTschofenig 0:796d0f61a05b 120 *
HannesTschofenig 0:796d0f61a05b 121 * Note: on Windows/MingW, XP or higher is required.
HannesTschofenig 0:796d0f61a05b 122 *
HannesTschofenig 0:796d0f61a05b 123 * Comment if your system does not support the IPv6 socket interface
HannesTschofenig 0:796d0f61a05b 124 */
HannesTschofenig 0:796d0f61a05b 125 //#define POLARSSL_HAVE_IPV6
HannesTschofenig 0:796d0f61a05b 126
HannesTschofenig 0:796d0f61a05b 127 /**
HannesTschofenig 0:796d0f61a05b 128 * \def POLARSSL_PLATFORM_MEMORY
HannesTschofenig 0:796d0f61a05b 129 *
HannesTschofenig 0:796d0f61a05b 130 * Enable the memory allocation layer.
HannesTschofenig 0:796d0f61a05b 131 *
HannesTschofenig 0:796d0f61a05b 132 * By default PolarSSL uses the system-provided malloc() and free().
HannesTschofenig 0:796d0f61a05b 133 * This allows different allocators (self-implemented or provided) to be
HannesTschofenig 0:796d0f61a05b 134 * provided to the platform abstraction layer.
HannesTschofenig 0:796d0f61a05b 135 *
HannesTschofenig 0:796d0f61a05b 136 * Enabling POLARSSL_PLATFORM_MEMORY will provide "platform_set_malloc_free()"
HannesTschofenig 0:796d0f61a05b 137 * to allow you to set an alternative malloc() and free() function pointer.
HannesTschofenig 0:796d0f61a05b 138 *
HannesTschofenig 0:796d0f61a05b 139 * Requires: POLARSSL_PLATFORM_C
HannesTschofenig 0:796d0f61a05b 140 *
HannesTschofenig 0:796d0f61a05b 141 * Enable this layer to allow use of alternative memory allocators.
HannesTschofenig 0:796d0f61a05b 142 */
HannesTschofenig 0:796d0f61a05b 143 //#define POLARSSL_PLATFORM_MEMORY
HannesTschofenig 0:796d0f61a05b 144
HannesTschofenig 0:796d0f61a05b 145 /**
HannesTschofenig 0:796d0f61a05b 146 * \def POLARSSL_PLATFORM_XXX_ALT
HannesTschofenig 0:796d0f61a05b 147 *
HannesTschofenig 0:796d0f61a05b 148 * Uncomment a macro to let PolarSSL support the function in the platform
HannesTschofenig 0:796d0f61a05b 149 * abstraction layer.
HannesTschofenig 0:796d0f61a05b 150 *
HannesTschofenig 0:796d0f61a05b 151 * Example: In case you uncomment POLARSSL_PLATFORM_PRINTF_ALT, PolarSSL will
HannesTschofenig 0:796d0f61a05b 152 * provide a function "platform_set_printf()" that allows you to set an
HannesTschofenig 0:796d0f61a05b 153 * alternative printf function pointer.
HannesTschofenig 0:796d0f61a05b 154 *
HannesTschofenig 0:796d0f61a05b 155 * All these define require POLARSSL_PLATFORM_C to be defined!
HannesTschofenig 0:796d0f61a05b 156 *
HannesTschofenig 0:796d0f61a05b 157 * Uncomment a macro to enable alternate implementation of specific base
HannesTschofenig 0:796d0f61a05b 158 * platform function
HannesTschofenig 0:796d0f61a05b 159 */
HannesTschofenig 0:796d0f61a05b 160 //#define POLARSSL_PLATFORM_PRINTF_ALT
HannesTschofenig 0:796d0f61a05b 161 //#define POLARSSL_PLATFORM_FPRINTF_ALT
HannesTschofenig 0:796d0f61a05b 162 /* \} name SECTION: System support */
HannesTschofenig 0:796d0f61a05b 163
HannesTschofenig 0:796d0f61a05b 164 /**
HannesTschofenig 0:796d0f61a05b 165 * \name SECTION: PolarSSL feature support
HannesTschofenig 0:796d0f61a05b 166 *
HannesTschofenig 0:796d0f61a05b 167 * This section sets support for features that are or are not needed
HannesTschofenig 0:796d0f61a05b 168 * within the modules that are enabled.
HannesTschofenig 0:796d0f61a05b 169 * \{
HannesTschofenig 0:796d0f61a05b 170 */
HannesTschofenig 0:796d0f61a05b 171
HannesTschofenig 0:796d0f61a05b 172 /**
HannesTschofenig 0:796d0f61a05b 173 * \def POLARSSL_TIMING_ALT
HannesTschofenig 0:796d0f61a05b 174 *
HannesTschofenig 0:796d0f61a05b 175 * Uncomment to provide your own alternate implementation for hardclock(),
HannesTschofenig 0:796d0f61a05b 176 * get_timer(), set_alarm() and m_sleep().
HannesTschofenig 0:796d0f61a05b 177 *
HannesTschofenig 0:796d0f61a05b 178 * Only works if you have POLARSSL_TIMING_C enabled.
HannesTschofenig 0:796d0f61a05b 179 *
HannesTschofenig 0:796d0f61a05b 180 * You will need to provide a header "timing_alt.h" and an implementation at
HannesTschofenig 0:796d0f61a05b 181 * compile time.
HannesTschofenig 0:796d0f61a05b 182 */
HannesTschofenig 0:796d0f61a05b 183 //#define POLARSSL_TIMING_ALT
HannesTschofenig 0:796d0f61a05b 184
HannesTschofenig 0:796d0f61a05b 185 /**
HannesTschofenig 0:796d0f61a05b 186 * \def POLARSSL_XXX_ALT
HannesTschofenig 0:796d0f61a05b 187 *
HannesTschofenig 0:796d0f61a05b 188 * Uncomment a macro to let PolarSSL use your alternate core implementation of
HannesTschofenig 0:796d0f61a05b 189 * a symmetric or hash algorithm (e.g. platform specific assembly optimized
HannesTschofenig 0:796d0f61a05b 190 * implementations). Keep in mind that the function prototypes should remain
HannesTschofenig 0:796d0f61a05b 191 * the same.
HannesTschofenig 0:796d0f61a05b 192 *
HannesTschofenig 0:796d0f61a05b 193 * Example: In case you uncomment POLARSSL_AES_ALT, PolarSSL will no longer
HannesTschofenig 0:796d0f61a05b 194 * provide the "struct aes_context" definition and omit the base function
HannesTschofenig 0:796d0f61a05b 195 * declarations and implementations. "aes_alt.h" will be included from
HannesTschofenig 0:796d0f61a05b 196 * "aes.h" to include the new function definitions.
HannesTschofenig 0:796d0f61a05b 197 *
HannesTschofenig 0:796d0f61a05b 198 * Uncomment a macro to enable alternate implementation for core algorithm
HannesTschofenig 0:796d0f61a05b 199 * functions
HannesTschofenig 0:796d0f61a05b 200 */
HannesTschofenig 0:796d0f61a05b 201 //#define POLARSSL_AES_ALT
HannesTschofenig 0:796d0f61a05b 202 //#define POLARSSL_ARC4_ALT
HannesTschofenig 0:796d0f61a05b 203 //#define POLARSSL_BLOWFISH_ALT
HannesTschofenig 0:796d0f61a05b 204 //#define POLARSSL_CAMELLIA_ALT
HannesTschofenig 0:796d0f61a05b 205 //#define POLARSSL_DES_ALT
HannesTschofenig 0:796d0f61a05b 206 //#define POLARSSL_XTEA_ALT
HannesTschofenig 0:796d0f61a05b 207 //#define POLARSSL_MD2_ALT
HannesTschofenig 0:796d0f61a05b 208 //#define POLARSSL_MD4_ALT
HannesTschofenig 0:796d0f61a05b 209 //#define POLARSSL_MD5_ALT
HannesTschofenig 0:796d0f61a05b 210 //#define POLARSSL_RIPEMD160_ALT
HannesTschofenig 0:796d0f61a05b 211 //#define POLARSSL_SHA1_ALT
HannesTschofenig 0:796d0f61a05b 212 //#define POLARSSL_SHA256_ALT
HannesTschofenig 0:796d0f61a05b 213 //#define POLARSSL_SHA512_ALT
HannesTschofenig 0:796d0f61a05b 214
HannesTschofenig 0:796d0f61a05b 215 /**
HannesTschofenig 0:796d0f61a05b 216 * \def POLARSSL_AES_ROM_TABLES
HannesTschofenig 0:796d0f61a05b 217 *
HannesTschofenig 0:796d0f61a05b 218 * Store the AES tables in ROM.
HannesTschofenig 0:796d0f61a05b 219 *
HannesTschofenig 0:796d0f61a05b 220 * Uncomment this macro to store the AES tables in ROM.
HannesTschofenig 0:796d0f61a05b 221 *
HannesTschofenig 0:796d0f61a05b 222 */
HannesTschofenig 0:796d0f61a05b 223 //#define POLARSSL_AES_ROM_TABLES
HannesTschofenig 0:796d0f61a05b 224
HannesTschofenig 0:796d0f61a05b 225 /**
HannesTschofenig 0:796d0f61a05b 226 * \def POLARSSL_CIPHER_MODE_CBC
HannesTschofenig 0:796d0f61a05b 227 *
HannesTschofenig 0:796d0f61a05b 228 * Enable Cipher Block Chaining mode (CBC) for symmetric ciphers.
HannesTschofenig 0:796d0f61a05b 229 */
HannesTschofenig 0:796d0f61a05b 230 //#define POLARSSL_CIPHER_MODE_CBC
HannesTschofenig 0:796d0f61a05b 231
HannesTschofenig 0:796d0f61a05b 232 /**
HannesTschofenig 0:796d0f61a05b 233 * \def POLARSSL_CIPHER_MODE_CFB
HannesTschofenig 0:796d0f61a05b 234 *
HannesTschofenig 0:796d0f61a05b 235 * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
HannesTschofenig 0:796d0f61a05b 236 */
HannesTschofenig 0:796d0f61a05b 237 //#define POLARSSL_CIPHER_MODE_CFB
HannesTschofenig 0:796d0f61a05b 238
HannesTschofenig 0:796d0f61a05b 239 /**
HannesTschofenig 0:796d0f61a05b 240 * \def POLARSSL_CIPHER_MODE_CTR
HannesTschofenig 0:796d0f61a05b 241 *
HannesTschofenig 0:796d0f61a05b 242 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
HannesTschofenig 0:796d0f61a05b 243 */
HannesTschofenig 0:796d0f61a05b 244 //#define POLARSSL_CIPHER_MODE_CTR
HannesTschofenig 0:796d0f61a05b 245
HannesTschofenig 0:796d0f61a05b 246 /**
HannesTschofenig 0:796d0f61a05b 247 * \def POLARSSL_CIPHER_NULL_CIPHER
HannesTschofenig 0:796d0f61a05b 248 *
HannesTschofenig 0:796d0f61a05b 249 * Enable NULL cipher.
HannesTschofenig 0:796d0f61a05b 250 * Warning: Only do so when you know what you are doing. This allows for
HannesTschofenig 0:796d0f61a05b 251 * encryption or channels without any security!
HannesTschofenig 0:796d0f61a05b 252 *
HannesTschofenig 0:796d0f61a05b 253 * Requires POLARSSL_ENABLE_WEAK_CIPHERSUITES as well to enable
HannesTschofenig 0:796d0f61a05b 254 * the following ciphersuites:
HannesTschofenig 0:796d0f61a05b 255 * TLS_ECDH_ECDSA_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 256 * TLS_ECDH_RSA_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 257 * TLS_ECDHE_ECDSA_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 258 * TLS_ECDHE_RSA_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 259 * TLS_ECDHE_PSK_WITH_NULL_SHA384
HannesTschofenig 0:796d0f61a05b 260 * TLS_ECDHE_PSK_WITH_NULL_SHA256
HannesTschofenig 0:796d0f61a05b 261 * TLS_ECDHE_PSK_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 262 * TLS_DHE_PSK_WITH_NULL_SHA384
HannesTschofenig 0:796d0f61a05b 263 * TLS_DHE_PSK_WITH_NULL_SHA256
HannesTschofenig 0:796d0f61a05b 264 * TLS_DHE_PSK_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 265 * TLS_RSA_WITH_NULL_SHA256
HannesTschofenig 0:796d0f61a05b 266 * TLS_RSA_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 267 * TLS_RSA_WITH_NULL_MD5
HannesTschofenig 0:796d0f61a05b 268 * TLS_RSA_PSK_WITH_NULL_SHA384
HannesTschofenig 0:796d0f61a05b 269 * TLS_RSA_PSK_WITH_NULL_SHA256
HannesTschofenig 0:796d0f61a05b 270 * TLS_RSA_PSK_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 271 * TLS_PSK_WITH_NULL_SHA384
HannesTschofenig 0:796d0f61a05b 272 * TLS_PSK_WITH_NULL_SHA256
HannesTschofenig 0:796d0f61a05b 273 * TLS_PSK_WITH_NULL_SHA
HannesTschofenig 0:796d0f61a05b 274 *
HannesTschofenig 0:796d0f61a05b 275 * Uncomment this macro to enable the NULL cipher and ciphersuites
HannesTschofenig 0:796d0f61a05b 276 #define POLARSSL_CIPHER_NULL_CIPHER
HannesTschofenig 0:796d0f61a05b 277 */
HannesTschofenig 0:796d0f61a05b 278
HannesTschofenig 0:796d0f61a05b 279 /**
HannesTschofenig 0:796d0f61a05b 280 * \def POLARSSL_CIPHER_PADDING_XXX
HannesTschofenig 0:796d0f61a05b 281 *
HannesTschofenig 0:796d0f61a05b 282 * Uncomment or comment macros to add support for specific padding modes
HannesTschofenig 0:796d0f61a05b 283 * in the cipher layer with cipher modes that support padding (e.g. CBC)
HannesTschofenig 0:796d0f61a05b 284 *
HannesTschofenig 0:796d0f61a05b 285 * If you disable all padding modes, only full blocks can be used with CBC.
HannesTschofenig 0:796d0f61a05b 286 *
HannesTschofenig 0:796d0f61a05b 287 * Enable padding modes in the cipher layer.
HannesTschofenig 0:796d0f61a05b 288 */
HannesTschofenig 0:796d0f61a05b 289 #define POLARSSL_CIPHER_PADDING_PKCS7
HannesTschofenig 0:796d0f61a05b 290 #define POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS
HannesTschofenig 0:796d0f61a05b 291 #define POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN
HannesTschofenig 0:796d0f61a05b 292 #define POLARSSL_CIPHER_PADDING_ZEROS
HannesTschofenig 0:796d0f61a05b 293
HannesTschofenig 0:796d0f61a05b 294 /**
HannesTschofenig 0:796d0f61a05b 295 * \def POLARSSL_ENABLE_WEAK_CIPHERSUITES
HannesTschofenig 0:796d0f61a05b 296 *
HannesTschofenig 0:796d0f61a05b 297 * Enable weak ciphersuites in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 298 * Warning: Only do so when you know what you are doing. This allows for
HannesTschofenig 0:796d0f61a05b 299 * channels with virtually no security at all!
HannesTschofenig 0:796d0f61a05b 300 *
HannesTschofenig 0:796d0f61a05b 301 * This enables the following ciphersuites:
HannesTschofenig 0:796d0f61a05b 302 * TLS_RSA_WITH_DES_CBC_SHA
HannesTschofenig 0:796d0f61a05b 303 * TLS_DHE_RSA_WITH_DES_CBC_SHA
HannesTschofenig 0:796d0f61a05b 304 *
HannesTschofenig 0:796d0f61a05b 305 * Uncomment this macro to enable weak ciphersuites
HannesTschofenig 0:796d0f61a05b 306 #define POLARSSL_ENABLE_WEAK_CIPHERSUITES
HannesTschofenig 0:796d0f61a05b 307 */
HannesTschofenig 0:796d0f61a05b 308
HannesTschofenig 0:796d0f61a05b 309 /**
HannesTschofenig 0:796d0f61a05b 310 * \def POLARSSL_ECP_XXXX_ENABLED
HannesTschofenig 0:796d0f61a05b 311 *
HannesTschofenig 0:796d0f61a05b 312 * Enables specific curves within the Elliptic Curve module.
HannesTschofenig 0:796d0f61a05b 313 * By default all supported curves are enabled.
HannesTschofenig 0:796d0f61a05b 314 *
HannesTschofenig 0:796d0f61a05b 315 * Comment macros to disable the curve and functions for it
HannesTschofenig 0:796d0f61a05b 316
HannesTschofenig 0:796d0f61a05b 317 #define POLARSSL_ECP_DP_SECP192R1_ENABLED
HannesTschofenig 0:796d0f61a05b 318 #define POLARSSL_ECP_DP_SECP224R1_ENABLED
HannesTschofenig 0:796d0f61a05b 319 #define POLARSSL_ECP_DP_SECP256R1_ENABLED
HannesTschofenig 0:796d0f61a05b 320 #define POLARSSL_ECP_DP_SECP384R1_ENABLED
HannesTschofenig 0:796d0f61a05b 321 #define POLARSSL_ECP_DP_SECP521R1_ENABLED
HannesTschofenig 0:796d0f61a05b 322 #define POLARSSL_ECP_DP_SECP192K1_ENABLED
HannesTschofenig 0:796d0f61a05b 323 #define POLARSSL_ECP_DP_SECP224K1_ENABLED
HannesTschofenig 0:796d0f61a05b 324 #define POLARSSL_ECP_DP_SECP256K1_ENABLED
HannesTschofenig 0:796d0f61a05b 325 #define POLARSSL_ECP_DP_BP256R1_ENABLED
HannesTschofenig 0:796d0f61a05b 326 #define POLARSSL_ECP_DP_BP384R1_ENABLED
HannesTschofenig 0:796d0f61a05b 327 #define POLARSSL_ECP_DP_BP512R1_ENABLED
HannesTschofenig 0:796d0f61a05b 328 //#define POLARSSL_ECP_DP_M221_ENABLED // Not implemented yet!
HannesTschofenig 0:796d0f61a05b 329 #define POLARSSL_ECP_DP_M255_ENABLED
HannesTschofenig 0:796d0f61a05b 330 //#define POLARSSL_ECP_DP_M383_ENABLED // Not implemented yet!
HannesTschofenig 0:796d0f61a05b 331 //#define POLARSSL_ECP_DP_M511_ENABLED // Not implemented yet!
HannesTschofenig 0:796d0f61a05b 332
HannesTschofenig 0:796d0f61a05b 333 */
HannesTschofenig 0:796d0f61a05b 334 /**
HannesTschofenig 0:796d0f61a05b 335 * \def POLARSSL_ECP_NIST_OPTIM
HannesTschofenig 0:796d0f61a05b 336 *
HannesTschofenig 0:796d0f61a05b 337 * Enable specific 'modulo p' routines for each NIST prime.
HannesTschofenig 0:796d0f61a05b 338 * Depending on the prime and architecture, makes operations 4 to 8 times
HannesTschofenig 0:796d0f61a05b 339 * faster on the corresponding curve.
HannesTschofenig 0:796d0f61a05b 340 *
HannesTschofenig 0:796d0f61a05b 341 * Comment this macro to disable NIST curves optimisation.
HannesTschofenig 0:796d0f61a05b 342 */
HannesTschofenig 0:796d0f61a05b 343 //#define POLARSSL_ECP_NIST_OPTIM
HannesTschofenig 0:796d0f61a05b 344
HannesTschofenig 0:796d0f61a05b 345 /**
HannesTschofenig 0:796d0f61a05b 346 * \def POLARSSL_ECDSA_DETERMINISTIC
HannesTschofenig 0:796d0f61a05b 347 *
HannesTschofenig 0:796d0f61a05b 348 * Enable deterministic ECDSA (RFC 6979).
HannesTschofenig 0:796d0f61a05b 349 * Standard ECDSA is "fragile" in the sense that lack of entropy when signing
HannesTschofenig 0:796d0f61a05b 350 * may result in a compromise of the long-term signing key. This is avoided by
HannesTschofenig 0:796d0f61a05b 351 * the deterministic variant.
HannesTschofenig 0:796d0f61a05b 352 *
HannesTschofenig 0:796d0f61a05b 353 * Requires: POLARSSL_HMAC_DRBG_C
HannesTschofenig 0:796d0f61a05b 354 *
HannesTschofenig 0:796d0f61a05b 355 * Comment this macro to disable deterministic ECDSA.
HannesTschofenig 0:796d0f61a05b 356 */
HannesTschofenig 0:796d0f61a05b 357 //#define POLARSSL_ECDSA_DETERMINISTIC
HannesTschofenig 0:796d0f61a05b 358
HannesTschofenig 0:796d0f61a05b 359 /**
HannesTschofenig 0:796d0f61a05b 360 * \def POLARSSL_KEY_EXCHANGE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 361 *
HannesTschofenig 0:796d0f61a05b 362 * Enable the PSK based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 363 *
HannesTschofenig 0:796d0f61a05b 364 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 365 * enabled as well):
HannesTschofenig 0:796d0f61a05b 366 * TLS_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 367 * TLS_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 368 * TLS_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 369 * TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 370 * TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 371 * TLS_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 372 * TLS_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 373 * TLS_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 374 * TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 375 * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 376 * TLS_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 377 * TLS_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 378 */
HannesTschofenig 0:796d0f61a05b 379 #define POLARSSL_KEY_EXCHANGE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 380
HannesTschofenig 0:796d0f61a05b 381 /**
HannesTschofenig 0:796d0f61a05b 382 * \def POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 383 *
HannesTschofenig 0:796d0f61a05b 384 * Enable the DHE-PSK based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 385 *
HannesTschofenig 0:796d0f61a05b 386 * Requires: POLARSSL_DHM_C
HannesTschofenig 0:796d0f61a05b 387 *
HannesTschofenig 0:796d0f61a05b 388 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 389 * enabled as well):
HannesTschofenig 0:796d0f61a05b 390 * TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 391 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 392 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 393 * TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 394 * TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 395 * TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 396 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 397 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 398 * TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 399 * TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 400 * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 401 * TLS_DHE_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 402 */
HannesTschofenig 0:796d0f61a05b 403 //#define POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 404
HannesTschofenig 0:796d0f61a05b 405 /**
HannesTschofenig 0:796d0f61a05b 406 * \def POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 407 *
HannesTschofenig 0:796d0f61a05b 408 * Enable the ECDHE-PSK based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 409 *
HannesTschofenig 0:796d0f61a05b 410 * Requires: POLARSSL_ECDH_C
HannesTschofenig 0:796d0f61a05b 411 *
HannesTschofenig 0:796d0f61a05b 412 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 413 * enabled as well):
HannesTschofenig 0:796d0f61a05b 414 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 415 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 416 * TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 417 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 418 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 419 * TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 420 * TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 421 * TLS_ECDHE_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 422 */
HannesTschofenig 0:796d0f61a05b 423 //#define POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 424
HannesTschofenig 0:796d0f61a05b 425 /**
HannesTschofenig 0:796d0f61a05b 426 * \def POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 427 *
HannesTschofenig 0:796d0f61a05b 428 * Enable the RSA-PSK based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 429 *
HannesTschofenig 0:796d0f61a05b 430 * Requires: POLARSSL_RSA_C, POLARSSL_PKCS1_V15,
HannesTschofenig 0:796d0f61a05b 431 * POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 432 *
HannesTschofenig 0:796d0f61a05b 433 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 434 * enabled as well):
HannesTschofenig 0:796d0f61a05b 435 * TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 436 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 437 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 438 * TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 439 * TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 440 * TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 441 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 442 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 443 * TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 444 * TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 445 * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 446 * TLS_RSA_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 447 */
HannesTschofenig 0:796d0f61a05b 448 //#define POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED
HannesTschofenig 0:796d0f61a05b 449
HannesTschofenig 0:796d0f61a05b 450 /**
HannesTschofenig 0:796d0f61a05b 451 * \def POLARSSL_KEY_EXCHANGE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 452 *
HannesTschofenig 0:796d0f61a05b 453 * Enable the RSA-only based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 454 *
HannesTschofenig 0:796d0f61a05b 455 * Requires: POLARSSL_RSA_C, POLARSSL_PKCS1_V15,
HannesTschofenig 0:796d0f61a05b 456 * POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 457 *
HannesTschofenig 0:796d0f61a05b 458 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 459 * enabled as well):
HannesTschofenig 0:796d0f61a05b 460 * TLS_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 461 * TLS_RSA_WITH_AES_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 462 * TLS_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 463 * TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 464 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 465 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 466 * TLS_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 467 * TLS_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 468 * TLS_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 469 * TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 470 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 471 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 472 * TLS_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 473 * TLS_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 474 * TLS_RSA_WITH_RC4_128_MD5
HannesTschofenig 0:796d0f61a05b 475 */
HannesTschofenig 0:796d0f61a05b 476 //#define POLARSSL_KEY_EXCHANGE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 477
HannesTschofenig 0:796d0f61a05b 478 /**
HannesTschofenig 0:796d0f61a05b 479 * \def POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 480 *
HannesTschofenig 0:796d0f61a05b 481 * Enable the DHE-RSA based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 482 *
HannesTschofenig 0:796d0f61a05b 483 * Requires: POLARSSL_DHM_C, POLARSSL_RSA_C, POLARSSL_PKCS1_V15,
HannesTschofenig 0:796d0f61a05b 484 * POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 485 *
HannesTschofenig 0:796d0f61a05b 486 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 487 * enabled as well):
HannesTschofenig 0:796d0f61a05b 488 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 489 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 490 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 491 * TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 492 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 493 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 494 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 495 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 496 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 497 * TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 498 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 499 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 500 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 501 */
HannesTschofenig 0:796d0f61a05b 502 //#define POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 503
HannesTschofenig 0:796d0f61a05b 504 /**
HannesTschofenig 0:796d0f61a05b 505 * \def POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 506 *
HannesTschofenig 0:796d0f61a05b 507 * Enable the ECDHE-RSA based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 508 *
HannesTschofenig 0:796d0f61a05b 509 * Requires: POLARSSL_ECDH_C, POLARSSL_RSA_C, POLARSSL_PKCS1_V15,
HannesTschofenig 0:796d0f61a05b 510 * POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 511 *
HannesTschofenig 0:796d0f61a05b 512 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 513 * enabled as well):
HannesTschofenig 0:796d0f61a05b 514 * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 515 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 516 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 517 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 518 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 519 * TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 520 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 521 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 522 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 523 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 524 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 525 * TLS_ECDHE_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 526 */
HannesTschofenig 0:796d0f61a05b 527 //#define POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 528
HannesTschofenig 0:796d0f61a05b 529 /**
HannesTschofenig 0:796d0f61a05b 530 * \def POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
HannesTschofenig 0:796d0f61a05b 531 *
HannesTschofenig 0:796d0f61a05b 532 * Enable the ECDHE-ECDSA based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 533 *
HannesTschofenig 0:796d0f61a05b 534 * Requires: POLARSSL_ECDH_C, POLARSSL_ECDSA_C, POLARSSL_X509_CRT_PARSE_C,
HannesTschofenig 0:796d0f61a05b 535 *
HannesTschofenig 0:796d0f61a05b 536 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 537 * enabled as well):
HannesTschofenig 0:796d0f61a05b 538 * TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 539 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 540 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 541 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 542 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 543 * TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 544 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 545 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 546 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 547 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 548 * TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 549 * TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 550 */
HannesTschofenig 0:796d0f61a05b 551 //#define POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED
HannesTschofenig 0:796d0f61a05b 552
HannesTschofenig 0:796d0f61a05b 553 /**
HannesTschofenig 0:796d0f61a05b 554 * \def POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
HannesTschofenig 0:796d0f61a05b 555 *
HannesTschofenig 0:796d0f61a05b 556 * Enable the ECDH-ECDSA based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 557 *
HannesTschofenig 0:796d0f61a05b 558 * Requires: POLARSSL_ECDH_C, POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 559 *
HannesTschofenig 0:796d0f61a05b 560 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 561 * enabled as well):
HannesTschofenig 0:796d0f61a05b 562 * TLS_ECDH_ECDSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 563 * TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 564 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 565 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 566 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 567 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 568 * TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 569 * TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 570 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 571 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 572 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 573 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 574 */
HannesTschofenig 0:796d0f61a05b 575 //#define POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED
HannesTschofenig 0:796d0f61a05b 576
HannesTschofenig 0:796d0f61a05b 577 /**
HannesTschofenig 0:796d0f61a05b 578 * \def POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 579 *
HannesTschofenig 0:796d0f61a05b 580 * Enable the ECDH-RSA based ciphersuite modes in SSL / TLS.
HannesTschofenig 0:796d0f61a05b 581 *
HannesTschofenig 0:796d0f61a05b 582 * Requires: POLARSSL_ECDH_C, POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 583 *
HannesTschofenig 0:796d0f61a05b 584 * This enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 585 * enabled as well):
HannesTschofenig 0:796d0f61a05b 586 * TLS_ECDH_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 587 * TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 588 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 589 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 590 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 591 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 592 * TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 593 * TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 594 * TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 595 * TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 596 * TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 597 * TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 598 */
HannesTschofenig 0:796d0f61a05b 599 //#define POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED
HannesTschofenig 0:796d0f61a05b 600
HannesTschofenig 0:796d0f61a05b 601 /**
HannesTschofenig 0:796d0f61a05b 602 * \def POLARSSL_PK_PARSE_EC_EXTENDED
HannesTschofenig 0:796d0f61a05b 603 *
HannesTschofenig 0:796d0f61a05b 604 * Enhance support for reading EC keys using variants of SEC1 not allowed by
HannesTschofenig 0:796d0f61a05b 605 * RFC 5915 and RFC 5480.
HannesTschofenig 0:796d0f61a05b 606 *
HannesTschofenig 0:796d0f61a05b 607 * Currently this means parsing the SpecifiedECDomain choice of EC
HannesTschofenig 0:796d0f61a05b 608 * parameters (only known groups are supported, not arbitrary domains, to
HannesTschofenig 0:796d0f61a05b 609 * avoid validation issues).
HannesTschofenig 0:796d0f61a05b 610 *
HannesTschofenig 0:796d0f61a05b 611 * Disable if you only need to support RFC 5915 + 5480 key formats.
HannesTschofenig 0:796d0f61a05b 612 */
HannesTschofenig 0:796d0f61a05b 613 //#define POLARSSL_PK_PARSE_EC_EXTENDED
HannesTschofenig 0:796d0f61a05b 614
HannesTschofenig 0:796d0f61a05b 615 /**
HannesTschofenig 0:796d0f61a05b 616 * \def POLARSSL_ERROR_STRERROR_BC
HannesTschofenig 0:796d0f61a05b 617 *
HannesTschofenig 0:796d0f61a05b 618 * Make available the backward compatible error_strerror() next to the
HannesTschofenig 0:796d0f61a05b 619 * current polarssl_strerror().
HannesTschofenig 0:796d0f61a05b 620 *
HannesTschofenig 0:796d0f61a05b 621 * Disable if you run into name conflicts and want to really remove the
HannesTschofenig 0:796d0f61a05b 622 * error_strerror()
HannesTschofenig 0:796d0f61a05b 623 */
HannesTschofenig 0:796d0f61a05b 624 #define POLARSSL_ERROR_STRERROR_BC
HannesTschofenig 0:796d0f61a05b 625
HannesTschofenig 0:796d0f61a05b 626 /**
HannesTschofenig 0:796d0f61a05b 627 * \def POLARSSL_ERROR_STRERROR_DUMMY
HannesTschofenig 0:796d0f61a05b 628 *
HannesTschofenig 0:796d0f61a05b 629 * Enable a dummy error function to make use of polarssl_strerror() in
HannesTschofenig 0:796d0f61a05b 630 * third party libraries easier.
HannesTschofenig 0:796d0f61a05b 631 *
HannesTschofenig 0:796d0f61a05b 632 * Disable if you run into name conflicts and want to really remove the
HannesTschofenig 0:796d0f61a05b 633 * polarssl_strerror()
HannesTschofenig 0:796d0f61a05b 634 */
HannesTschofenig 0:796d0f61a05b 635 #define POLARSSL_ERROR_STRERROR_DUMMY
HannesTschofenig 0:796d0f61a05b 636
HannesTschofenig 0:796d0f61a05b 637 /**
HannesTschofenig 0:796d0f61a05b 638 * \def POLARSSL_GENPRIME
HannesTschofenig 0:796d0f61a05b 639 *
HannesTschofenig 0:796d0f61a05b 640 * Enable the prime-number generation code.
HannesTschofenig 0:796d0f61a05b 641 *
HannesTschofenig 0:796d0f61a05b 642 * Requires: POLARSSL_BIGNUM_C
HannesTschofenig 0:796d0f61a05b 643 */
HannesTschofenig 0:796d0f61a05b 644 //#define POLARSSL_GENPRIME
HannesTschofenig 0:796d0f61a05b 645
HannesTschofenig 0:796d0f61a05b 646 /**
HannesTschofenig 0:796d0f61a05b 647 * \def POLARSSL_FS_IO
HannesTschofenig 0:796d0f61a05b 648 *
HannesTschofenig 0:796d0f61a05b 649 * Enable functions that use the filesystem.
HannesTschofenig 0:796d0f61a05b 650 */
HannesTschofenig 0:796d0f61a05b 651 //#define POLARSSL_FS_IO
HannesTschofenig 0:796d0f61a05b 652
HannesTschofenig 0:796d0f61a05b 653 /**
HannesTschofenig 0:796d0f61a05b 654 * \def POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
HannesTschofenig 0:796d0f61a05b 655 *
HannesTschofenig 0:796d0f61a05b 656 * Do not add default entropy sources. These are the platform specific,
HannesTschofenig 0:796d0f61a05b 657 * hardclock and HAVEGE based poll functions.
HannesTschofenig 0:796d0f61a05b 658 *
HannesTschofenig 0:796d0f61a05b 659 * This is useful to have more control over the added entropy sources in an
HannesTschofenig 0:796d0f61a05b 660 * application.
HannesTschofenig 0:796d0f61a05b 661 *
HannesTschofenig 0:796d0f61a05b 662 * Uncomment this macro to prevent loading of default entropy functions.
HannesTschofenig 0:796d0f61a05b 663 */
HannesTschofenig 0:796d0f61a05b 664 #define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
HannesTschofenig 0:796d0f61a05b 665
HannesTschofenig 0:796d0f61a05b 666 /**
HannesTschofenig 0:796d0f61a05b 667 * \def POLARSSL_NO_PLATFORM_ENTROPY
HannesTschofenig 0:796d0f61a05b 668 *
HannesTschofenig 0:796d0f61a05b 669 * Do not use built-in platform entropy functions.
HannesTschofenig 0:796d0f61a05b 670 * This is useful if your platform does not support
HannesTschofenig 0:796d0f61a05b 671 * standards like the /dev/urandom or Windows CryptoAPI.
HannesTschofenig 0:796d0f61a05b 672 *
HannesTschofenig 0:796d0f61a05b 673 * Uncomment this macro to disable the built-in platform entropy functions.
HannesTschofenig 0:796d0f61a05b 674 */
HannesTschofenig 0:796d0f61a05b 675 #define POLARSSL_NO_PLATFORM_ENTROPY
HannesTschofenig 0:796d0f61a05b 676
HannesTschofenig 0:796d0f61a05b 677 /**
HannesTschofenig 0:796d0f61a05b 678 * \def POLARSSL_ENTROPY_FORCE_SHA256
HannesTschofenig 0:796d0f61a05b 679 *
HannesTschofenig 0:796d0f61a05b 680 * Force the entropy accumulator to use a SHA-256 accumulator instead of the
HannesTschofenig 0:796d0f61a05b 681 * default SHA-512 based one (if both are available).
HannesTschofenig 0:796d0f61a05b 682 *
HannesTschofenig 0:796d0f61a05b 683 * Requires: POLARSSL_SHA256_C
HannesTschofenig 0:796d0f61a05b 684 *
HannesTschofenig 0:796d0f61a05b 685 * On 32-bit systems SHA-256 can be much faster than SHA-512. Use this option
HannesTschofenig 0:796d0f61a05b 686 * if you have performance concerns.
HannesTschofenig 0:796d0f61a05b 687 *
HannesTschofenig 0:796d0f61a05b 688 * This option is only useful if both POLARSSL_SHA256_C and
HannesTschofenig 0:796d0f61a05b 689 * POLARSSL_SHA512_C are defined. Otherwise the available hash module is used.
HannesTschofenig 0:796d0f61a05b 690 */
HannesTschofenig 0:796d0f61a05b 691 //#define POLARSSL_ENTROPY_FORCE_SHA256
HannesTschofenig 0:796d0f61a05b 692
HannesTschofenig 0:796d0f61a05b 693 /**
HannesTschofenig 0:796d0f61a05b 694 * \def POLARSSL_MEMORY_DEBUG
HannesTschofenig 0:796d0f61a05b 695 *
HannesTschofenig 0:796d0f61a05b 696 * Enable debugging of buffer allocator memory issues. Automatically prints
HannesTschofenig 0:796d0f61a05b 697 * (to stderr) all (fatal) messages on memory allocation issues. Enables
HannesTschofenig 0:796d0f61a05b 698 * function for 'debug output' of allocated memory.
HannesTschofenig 0:796d0f61a05b 699 *
HannesTschofenig 0:796d0f61a05b 700 * Requires: POLARSSL_MEMORY_BUFFER_ALLOC_C
HannesTschofenig 0:796d0f61a05b 701 *
HannesTschofenig 0:796d0f61a05b 702 * Uncomment this macro to let the buffer allocator print out error messages.
HannesTschofenig 0:796d0f61a05b 703 */
HannesTschofenig 0:796d0f61a05b 704 #define POLARSSL_MEMORY_DEBUG
HannesTschofenig 0:796d0f61a05b 705
HannesTschofenig 0:796d0f61a05b 706 /**
HannesTschofenig 0:796d0f61a05b 707 * \def POLARSSL_MEMORY_BACKTRACE
HannesTschofenig 0:796d0f61a05b 708 *
HannesTschofenig 0:796d0f61a05b 709 * Include backtrace information with each allocated block.
HannesTschofenig 0:796d0f61a05b 710 *
HannesTschofenig 0:796d0f61a05b 711 * Requires: POLARSSL_MEMORY_BUFFER_ALLOC_C
HannesTschofenig 0:796d0f61a05b 712 * GLIBC-compatible backtrace() an backtrace_symbols() support
HannesTschofenig 0:796d0f61a05b 713 *
HannesTschofenig 0:796d0f61a05b 714 * Uncomment this macro to include backtrace information
HannesTschofenig 0:796d0f61a05b 715 */
HannesTschofenig 0:796d0f61a05b 716 //#define POLARSSL_MEMORY_BACKTRACE
HannesTschofenig 0:796d0f61a05b 717
HannesTschofenig 0:796d0f61a05b 718 /**
HannesTschofenig 0:796d0f61a05b 719 * \def POLARSSL_PKCS1_V15
HannesTschofenig 0:796d0f61a05b 720 *
HannesTschofenig 0:796d0f61a05b 721 * Enable support for PKCS#1 v1.5 encoding.
HannesTschofenig 0:796d0f61a05b 722 *
HannesTschofenig 0:796d0f61a05b 723 * Requires: POLARSSL_RSA_C
HannesTschofenig 0:796d0f61a05b 724 *
HannesTschofenig 0:796d0f61a05b 725 * This enables support for PKCS#1 v1.5 operations.
HannesTschofenig 0:796d0f61a05b 726 */
HannesTschofenig 0:796d0f61a05b 727 //#define POLARSSL_PKCS1_V15
HannesTschofenig 0:796d0f61a05b 728
HannesTschofenig 0:796d0f61a05b 729 /**
HannesTschofenig 0:796d0f61a05b 730 * \def POLARSSL_PKCS1_V21
HannesTschofenig 0:796d0f61a05b 731 *
HannesTschofenig 0:796d0f61a05b 732 * Enable support for PKCS#1 v2.1 encoding.
HannesTschofenig 0:796d0f61a05b 733 *
HannesTschofenig 0:796d0f61a05b 734 * Requires: POLARSSL_MD_C, POLARSSL_RSA_C
HannesTschofenig 0:796d0f61a05b 735 *
HannesTschofenig 0:796d0f61a05b 736 * This enables support for RSAES-OAEP and RSASSA-PSS operations.
HannesTschofenig 0:796d0f61a05b 737 */
HannesTschofenig 0:796d0f61a05b 738 //#define POLARSSL_PKCS1_V21
HannesTschofenig 0:796d0f61a05b 739
HannesTschofenig 0:796d0f61a05b 740 /**
HannesTschofenig 0:796d0f61a05b 741 * \def POLARSSL_RSA_NO_CRT
HannesTschofenig 0:796d0f61a05b 742 *
HannesTschofenig 0:796d0f61a05b 743 * Do not use the Chinese Remainder Theorem for the RSA private operation.
HannesTschofenig 0:796d0f61a05b 744 *
HannesTschofenig 0:796d0f61a05b 745 * Uncomment this macro to disable the use of CRT in RSA.
HannesTschofenig 0:796d0f61a05b 746 *
HannesTschofenig 0:796d0f61a05b 747 */
HannesTschofenig 0:796d0f61a05b 748 //#define POLARSSL_RSA_NO_CRT
HannesTschofenig 0:796d0f61a05b 749
HannesTschofenig 0:796d0f61a05b 750 /**
HannesTschofenig 0:796d0f61a05b 751 * \def POLARSSL_SELF_TEST
HannesTschofenig 0:796d0f61a05b 752 *
HannesTschofenig 0:796d0f61a05b 753 * Enable the checkup functions (*_self_test).
HannesTschofenig 0:796d0f61a05b 754 */
HannesTschofenig 0:796d0f61a05b 755 #define POLARSSL_SELF_TEST
HannesTschofenig 0:796d0f61a05b 756
HannesTschofenig 0:796d0f61a05b 757 /**
HannesTschofenig 0:796d0f61a05b 758 * \def POLARSSL_SSL_ALL_ALERT_MESSAGES
HannesTschofenig 0:796d0f61a05b 759 *
HannesTschofenig 0:796d0f61a05b 760 * Enable sending of alert messages in case of encountered errors as per RFC.
HannesTschofenig 0:796d0f61a05b 761 * If you choose not to send the alert messages, PolarSSL can still communicate
HannesTschofenig 0:796d0f61a05b 762 * with other servers, only debugging of failures is harder.
HannesTschofenig 0:796d0f61a05b 763 *
HannesTschofenig 0:796d0f61a05b 764 * The advantage of not sending alert messages, is that no information is given
HannesTschofenig 0:796d0f61a05b 765 * about reasons for failures thus preventing adversaries of gaining intel.
HannesTschofenig 0:796d0f61a05b 766 *
HannesTschofenig 0:796d0f61a05b 767 * Enable sending of all alert messages
HannesTschofenig 0:796d0f61a05b 768 */
HannesTschofenig 0:796d0f61a05b 769 #define POLARSSL_SSL_ALERT_MESSAGES
HannesTschofenig 0:796d0f61a05b 770
HannesTschofenig 0:796d0f61a05b 771 /**
HannesTschofenig 0:796d0f61a05b 772 * \def POLARSSL_SSL_DEBUG_ALL
HannesTschofenig 0:796d0f61a05b 773 *
HannesTschofenig 0:796d0f61a05b 774 * Enable the debug messages in SSL module for all issues.
HannesTschofenig 0:796d0f61a05b 775 * Debug messages have been disabled in some places to prevent timing
HannesTschofenig 0:796d0f61a05b 776 * attacks due to (unbalanced) debugging function calls.
HannesTschofenig 0:796d0f61a05b 777 *
HannesTschofenig 0:796d0f61a05b 778 * If you need all error reporting you should enable this during debugging,
HannesTschofenig 0:796d0f61a05b 779 * but remove this for production servers that should log as well.
HannesTschofenig 0:796d0f61a05b 780 *
HannesTschofenig 0:796d0f61a05b 781 * Uncomment this macro to report all debug messages on errors introducing
HannesTschofenig 0:796d0f61a05b 782 * a timing side-channel.
HannesTschofenig 0:796d0f61a05b 783 *
HannesTschofenig 0:796d0f61a05b 784 */
HannesTschofenig 0:796d0f61a05b 785 #define POLARSSL_SSL_DEBUG_ALL
HannesTschofenig 0:796d0f61a05b 786
HannesTschofenig 0:796d0f61a05b 787 /**
HannesTschofenig 0:796d0f61a05b 788 * \def POLARSSL_SSL_HW_RECORD_ACCEL
HannesTschofenig 0:796d0f61a05b 789 *
HannesTschofenig 0:796d0f61a05b 790 * Enable hooking functions in SSL module for hardware acceleration of
HannesTschofenig 0:796d0f61a05b 791 * individual records.
HannesTschofenig 0:796d0f61a05b 792 *
HannesTschofenig 0:796d0f61a05b 793 * Uncomment this macro to enable hooking functions.
HannesTschofenig 0:796d0f61a05b 794 */
HannesTschofenig 0:796d0f61a05b 795 //#define POLARSSL_SSL_HW_RECORD_ACCEL
HannesTschofenig 0:796d0f61a05b 796
HannesTschofenig 0:796d0f61a05b 797 /**
HannesTschofenig 0:796d0f61a05b 798 * \def POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
HannesTschofenig 0:796d0f61a05b 799 *
HannesTschofenig 0:796d0f61a05b 800 * Enable support for receiving and parsing SSLv2 Client Hello messages for the
HannesTschofenig 0:796d0f61a05b 801 * SSL Server module (POLARSSL_SSL_SRV_C).
HannesTschofenig 0:796d0f61a05b 802 *
HannesTschofenig 0:796d0f61a05b 803 * Comment this macro to disable support for SSLv2 Client Hello messages.
HannesTschofenig 0:796d0f61a05b 804 */
HannesTschofenig 0:796d0f61a05b 805 //#define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
HannesTschofenig 0:796d0f61a05b 806
HannesTschofenig 0:796d0f61a05b 807 /**
HannesTschofenig 0:796d0f61a05b 808 * \def POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE
HannesTschofenig 0:796d0f61a05b 809 *
HannesTschofenig 0:796d0f61a05b 810 * Pick the ciphersuite according to the client's preferences rather than ours
HannesTschofenig 0:796d0f61a05b 811 * in the SSL Server module (POLARSSL_SSL_SRV_C).
HannesTschofenig 0:796d0f61a05b 812 *
HannesTschofenig 0:796d0f61a05b 813 * Uncomment this macro to respect client's ciphersuite order
HannesTschofenig 0:796d0f61a05b 814 */
HannesTschofenig 0:796d0f61a05b 815 //#define POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE
HannesTschofenig 0:796d0f61a05b 816
HannesTschofenig 0:796d0f61a05b 817 /**
HannesTschofenig 0:796d0f61a05b 818 * \def POLARSSL_SSL_MAX_FRAGMENT_LENGTH
HannesTschofenig 0:796d0f61a05b 819 *
HannesTschofenig 0:796d0f61a05b 820 * Enable support for RFC 6066 max_fragment_length extension in SSL.
HannesTschofenig 0:796d0f61a05b 821 *
HannesTschofenig 0:796d0f61a05b 822 * Comment this macro to disable support for the max_fragment_length extension
HannesTschofenig 0:796d0f61a05b 823 */
HannesTschofenig 0:796d0f61a05b 824 #define POLARSSL_SSL_MAX_FRAGMENT_LENGTH
HannesTschofenig 0:796d0f61a05b 825
HannesTschofenig 0:796d0f61a05b 826 /**
HannesTschofenig 0:796d0f61a05b 827 * \def POLARSSL_SSL_PROTO_SSL3
HannesTschofenig 0:796d0f61a05b 828 *
HannesTschofenig 0:796d0f61a05b 829 * Enable support for SSL 3.0.
HannesTschofenig 0:796d0f61a05b 830 *
HannesTschofenig 0:796d0f61a05b 831 * Requires: POLARSSL_MD5_C
HannesTschofenig 0:796d0f61a05b 832 * POLARSSL_SHA1_C
HannesTschofenig 0:796d0f61a05b 833 *
HannesTschofenig 0:796d0f61a05b 834 * Comment this macro to disable support for SSL 3.0
HannesTschofenig 0:796d0f61a05b 835 */
HannesTschofenig 0:796d0f61a05b 836 //#define POLARSSL_SSL_PROTO_SSL3
HannesTschofenig 0:796d0f61a05b 837
HannesTschofenig 0:796d0f61a05b 838 /**
HannesTschofenig 0:796d0f61a05b 839 * \def POLARSSL_SSL_PROTO_TLS1
HannesTschofenig 0:796d0f61a05b 840 *
HannesTschofenig 0:796d0f61a05b 841 * Enable support for TLS 1.0.
HannesTschofenig 0:796d0f61a05b 842 *
HannesTschofenig 0:796d0f61a05b 843 * Requires: POLARSSL_MD5_C
HannesTschofenig 0:796d0f61a05b 844 * POLARSSL_SHA1_C
HannesTschofenig 0:796d0f61a05b 845 *
HannesTschofenig 0:796d0f61a05b 846 * Comment this macro to disable support for TLS 1.0
HannesTschofenig 0:796d0f61a05b 847 */
HannesTschofenig 0:796d0f61a05b 848 //#define POLARSSL_SSL_PROTO_TLS1
HannesTschofenig 0:796d0f61a05b 849
HannesTschofenig 0:796d0f61a05b 850 /**
HannesTschofenig 0:796d0f61a05b 851 * \def POLARSSL_SSL_PROTO_TLS1_1
HannesTschofenig 0:796d0f61a05b 852 *
HannesTschofenig 0:796d0f61a05b 853 * Enable support for TLS 1.1 (and DTLS 1.0 if DTLS is enabled).
HannesTschofenig 0:796d0f61a05b 854 *
HannesTschofenig 0:796d0f61a05b 855 * Requires: POLARSSL_MD5_C
HannesTschofenig 0:796d0f61a05b 856 * POLARSSL_SHA1_C
HannesTschofenig 0:796d0f61a05b 857 *
HannesTschofenig 0:796d0f61a05b 858 * Comment this macro to disable support for TLS 1.1 / DTLS 1.0
HannesTschofenig 0:796d0f61a05b 859 */
HannesTschofenig 0:796d0f61a05b 860 //#define POLARSSL_SSL_PROTO_TLS1_1
HannesTschofenig 0:796d0f61a05b 861
HannesTschofenig 0:796d0f61a05b 862 /**
HannesTschofenig 0:796d0f61a05b 863 * \def POLARSSL_SSL_PROTO_TLS1_2
HannesTschofenig 0:796d0f61a05b 864 *
HannesTschofenig 0:796d0f61a05b 865 * Enable support for TLS 1.2 (and DTLS 1.2 if DTLS is enabled).
HannesTschofenig 0:796d0f61a05b 866 *
HannesTschofenig 0:796d0f61a05b 867 * Requires: POLARSSL_SHA1_C or POLARSSL_SHA256_C or POLARSSL_SHA512_C
HannesTschofenig 0:796d0f61a05b 868 * (Depends on ciphersuites)
HannesTschofenig 0:796d0f61a05b 869 *
HannesTschofenig 0:796d0f61a05b 870 * Comment this macro to disable support for TLS 1.2 / DTLS 1.2
HannesTschofenig 0:796d0f61a05b 871 */
HannesTschofenig 0:796d0f61a05b 872 #define POLARSSL_SSL_PROTO_TLS1_2
HannesTschofenig 0:796d0f61a05b 873
HannesTschofenig 0:796d0f61a05b 874 /**
HannesTschofenig 0:796d0f61a05b 875 * \def POLARSSL_SSL_PROTO_DTLS
HannesTschofenig 0:796d0f61a05b 876 *
HannesTschofenig 0:796d0f61a05b 877 * Enable support for DTLS (all available versions).
HannesTschofenig 0:796d0f61a05b 878 *
HannesTschofenig 0:796d0f61a05b 879 * Enable this and POLARSSL_SSL_PROTO_TLS11 to enable DTLS 1.0,
HannesTschofenig 0:796d0f61a05b 880 * and/or this and POLARSSL_SSL_PROTO_TLS12 to enable DTLS 1.2.
HannesTschofenig 0:796d0f61a05b 881 *
HannesTschofenig 0:796d0f61a05b 882 * Requires: POLARSSL_SSL_PROTO_TLS11
HannesTschofenig 0:796d0f61a05b 883 * or POLARSSL_SSL_PROTO_TLS12
HannesTschofenig 0:796d0f61a05b 884 *
HannesTschofenig 0:796d0f61a05b 885 * Comment this macro to disable support for DTLS
HannesTschofenig 0:796d0f61a05b 886 */
HannesTschofenig 0:796d0f61a05b 887 #define POLARSSL_SSL_PROTO_DTLS
HannesTschofenig 0:796d0f61a05b 888
HannesTschofenig 0:796d0f61a05b 889 /**
HannesTschofenig 0:796d0f61a05b 890 * \def POLARSSL_SSL_SESSION_TICKETS
HannesTschofenig 0:796d0f61a05b 891 *
HannesTschofenig 0:796d0f61a05b 892 * Enable support for RFC 5077 session tickets in SSL.
HannesTschofenig 0:796d0f61a05b 893 *
HannesTschofenig 0:796d0f61a05b 894 * Requires: POLARSSL_AES_C
HannesTschofenig 0:796d0f61a05b 895 * POLARSSL_SHA256_C
HannesTschofenig 0:796d0f61a05b 896 * POLARSSL_CIPHER_MODE_CBC
HannesTschofenig 0:796d0f61a05b 897 *
HannesTschofenig 0:796d0f61a05b 898 * Comment this macro to disable support for SSL session tickets
HannesTschofenig 0:796d0f61a05b 899 */
HannesTschofenig 0:796d0f61a05b 900 //#define POLARSSL_SSL_SESSION_TICKETS
HannesTschofenig 0:796d0f61a05b 901
HannesTschofenig 0:796d0f61a05b 902 /**
HannesTschofenig 0:796d0f61a05b 903 * \def POLARSSL_SSL_SERVER_NAME_INDICATION
HannesTschofenig 0:796d0f61a05b 904 *
HannesTschofenig 0:796d0f61a05b 905 * Enable support for RFC 6066 server name indication (SNI) in SSL.
HannesTschofenig 0:796d0f61a05b 906 *
HannesTschofenig 0:796d0f61a05b 907 * Comment this macro to disable support for server name indication in SSL
HannesTschofenig 0:796d0f61a05b 908 */
HannesTschofenig 0:796d0f61a05b 909 //#define POLARSSL_SSL_SERVER_NAME_INDICATION
HannesTschofenig 0:796d0f61a05b 910
HannesTschofenig 0:796d0f61a05b 911 /**
HannesTschofenig 0:796d0f61a05b 912 * \def POLARSSL_SSL_TRUNCATED_HMAC
HannesTschofenig 0:796d0f61a05b 913 *
HannesTschofenig 0:796d0f61a05b 914 * Enable support for RFC 6066 truncated HMAC in SSL.
HannesTschofenig 0:796d0f61a05b 915 *
HannesTschofenig 0:796d0f61a05b 916 * Comment this macro to disable support for truncated HMAC in SSL
HannesTschofenig 0:796d0f61a05b 917 */
HannesTschofenig 0:796d0f61a05b 918 #define POLARSSL_SSL_TRUNCATED_HMAC
HannesTschofenig 0:796d0f61a05b 919
HannesTschofenig 0:796d0f61a05b 920 /**
HannesTschofenig 0:796d0f61a05b 921 * \def POLARSSL_SSL_SET_CURVES
HannesTschofenig 0:796d0f61a05b 922 *
HannesTschofenig 0:796d0f61a05b 923 * Enable ssl_set_curves().
HannesTschofenig 0:796d0f61a05b 924 *
HannesTschofenig 0:796d0f61a05b 925 * This is disabled by default since it breaks binary compatibility with the
HannesTschofenig 0:796d0f61a05b 926 * 1.3.x line. If you choose to enable it, you will need to rebuild your
HannesTschofenig 0:796d0f61a05b 927 * application against the new header files, relinking will not be enough.
HannesTschofenig 0:796d0f61a05b 928 * It will be enabled by default, or no longer an option, in the 1.4 branch.
HannesTschofenig 0:796d0f61a05b 929 *
HannesTschofenig 0:796d0f61a05b 930 * Uncomment to make ssl_set_curves() available.
HannesTschofenig 0:796d0f61a05b 931 */
HannesTschofenig 0:796d0f61a05b 932 //#define POLARSSL_SSL_SET_CURVES
HannesTschofenig 0:796d0f61a05b 933
HannesTschofenig 0:796d0f61a05b 934 /**
HannesTschofenig 0:796d0f61a05b 935 * \def POLARSSL_THREADING_ALT
HannesTschofenig 0:796d0f61a05b 936 *
HannesTschofenig 0:796d0f61a05b 937 * Provide your own alternate threading implementation.
HannesTschofenig 0:796d0f61a05b 938 *
HannesTschofenig 0:796d0f61a05b 939 * Requires: POLARSSL_THREADING_C
HannesTschofenig 0:796d0f61a05b 940 *
HannesTschofenig 0:796d0f61a05b 941 * Uncomment this to allow your own alternate threading implementation.
HannesTschofenig 0:796d0f61a05b 942 */
HannesTschofenig 0:796d0f61a05b 943 //#define POLARSSL_THREADING_ALT
HannesTschofenig 0:796d0f61a05b 944
HannesTschofenig 0:796d0f61a05b 945 /**
HannesTschofenig 0:796d0f61a05b 946 * \def POLARSSL_THREADING_PTHREAD
HannesTschofenig 0:796d0f61a05b 947 *
HannesTschofenig 0:796d0f61a05b 948 * Enable the pthread wrapper layer for the threading layer.
HannesTschofenig 0:796d0f61a05b 949 *
HannesTschofenig 0:796d0f61a05b 950 * Requires: POLARSSL_THREADING_C
HannesTschofenig 0:796d0f61a05b 951 *
HannesTschofenig 0:796d0f61a05b 952 * Uncomment this to enable pthread mutexes.
HannesTschofenig 0:796d0f61a05b 953 */
HannesTschofenig 0:796d0f61a05b 954 //#define POLARSSL_THREADING_PTHREAD
HannesTschofenig 0:796d0f61a05b 955
HannesTschofenig 0:796d0f61a05b 956 /**
HannesTschofenig 0:796d0f61a05b 957 * \def POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3
HannesTschofenig 0:796d0f61a05b 958 *
HannesTschofenig 0:796d0f61a05b 959 * If set, the X509 parser will not break-off when parsing an X509 certificate
HannesTschofenig 0:796d0f61a05b 960 * and encountering an extension in a v1 or v2 certificate.
HannesTschofenig 0:796d0f61a05b 961 *
HannesTschofenig 0:796d0f61a05b 962 * Uncomment to prevent an error.
HannesTschofenig 0:796d0f61a05b 963 */
HannesTschofenig 0:796d0f61a05b 964 //#define POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3
HannesTschofenig 0:796d0f61a05b 965
HannesTschofenig 0:796d0f61a05b 966 /**
HannesTschofenig 0:796d0f61a05b 967 * \def POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
HannesTschofenig 0:796d0f61a05b 968 *
HannesTschofenig 0:796d0f61a05b 969 * If set, the X509 parser will not break-off when parsing an X509 certificate
HannesTschofenig 0:796d0f61a05b 970 * and encountering an unknown critical extension.
HannesTschofenig 0:796d0f61a05b 971 *
HannesTschofenig 0:796d0f61a05b 972 * Uncomment to prevent an error.
HannesTschofenig 0:796d0f61a05b 973 */
HannesTschofenig 0:796d0f61a05b 974 //#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
HannesTschofenig 0:796d0f61a05b 975
HannesTschofenig 0:796d0f61a05b 976 /**
HannesTschofenig 0:796d0f61a05b 977 * \def POLARSSL_ZLIB_SUPPORT
HannesTschofenig 0:796d0f61a05b 978 *
HannesTschofenig 0:796d0f61a05b 979 * If set, the SSL/TLS module uses ZLIB to support compression and
HannesTschofenig 0:796d0f61a05b 980 * decompression of packet data.
HannesTschofenig 0:796d0f61a05b 981 *
HannesTschofenig 0:796d0f61a05b 982 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
HannesTschofenig 0:796d0f61a05b 983 * CRIME attack. Before enabling this option, you should examine with care if
HannesTschofenig 0:796d0f61a05b 984 * CRIME or similar exploits may be a applicable to your use case.
HannesTschofenig 0:796d0f61a05b 985 *
HannesTschofenig 0:796d0f61a05b 986 * Used in: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 987 * library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 988 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 989 *
HannesTschofenig 0:796d0f61a05b 990 * This feature requires zlib library and headers to be present.
HannesTschofenig 0:796d0f61a05b 991 *
HannesTschofenig 0:796d0f61a05b 992 * Uncomment to enable use of ZLIB
HannesTschofenig 0:796d0f61a05b 993 */
HannesTschofenig 0:796d0f61a05b 994 //#define POLARSSL_ZLIB_SUPPORT
HannesTschofenig 0:796d0f61a05b 995 /* \} name SECTION: PolarSSL feature support */
HannesTschofenig 0:796d0f61a05b 996
HannesTschofenig 0:796d0f61a05b 997 /**
HannesTschofenig 0:796d0f61a05b 998 * \name SECTION: PolarSSL modules
HannesTschofenig 0:796d0f61a05b 999 *
HannesTschofenig 0:796d0f61a05b 1000 * This section enables or disables entire modules in PolarSSL
HannesTschofenig 0:796d0f61a05b 1001 * \{
HannesTschofenig 0:796d0f61a05b 1002 */
HannesTschofenig 0:796d0f61a05b 1003
HannesTschofenig 0:796d0f61a05b 1004 /**
HannesTschofenig 0:796d0f61a05b 1005 * \def POLARSSL_AESNI_C
HannesTschofenig 0:796d0f61a05b 1006 *
HannesTschofenig 0:796d0f61a05b 1007 * Enable AES-NI support on x86-64.
HannesTschofenig 0:796d0f61a05b 1008 *
HannesTschofenig 0:796d0f61a05b 1009 * Module: library/aesni.c
HannesTschofenig 0:796d0f61a05b 1010 * Caller: library/aes.c
HannesTschofenig 0:796d0f61a05b 1011 *
HannesTschofenig 0:796d0f61a05b 1012 * Requires: POLARSSL_HAVE_ASM
HannesTschofenig 0:796d0f61a05b 1013 *
HannesTschofenig 0:796d0f61a05b 1014 * This modules adds support for the AES-NI instructions on x86-64
HannesTschofenig 0:796d0f61a05b 1015 */
HannesTschofenig 0:796d0f61a05b 1016 //#define POLARSSL_AESNI_C
HannesTschofenig 0:796d0f61a05b 1017
HannesTschofenig 0:796d0f61a05b 1018 /**
HannesTschofenig 0:796d0f61a05b 1019 * \def POLARSSL_AES_C
HannesTschofenig 0:796d0f61a05b 1020 *
HannesTschofenig 0:796d0f61a05b 1021 * Enable the AES block cipher.
HannesTschofenig 0:796d0f61a05b 1022 *
HannesTschofenig 0:796d0f61a05b 1023 * Module: library/aes.c
HannesTschofenig 0:796d0f61a05b 1024 * Caller: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1025 * library/pem.c
HannesTschofenig 0:796d0f61a05b 1026 * library/ctr_drbg.c
HannesTschofenig 0:796d0f61a05b 1027 *
HannesTschofenig 0:796d0f61a05b 1028 * This module enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 1029 * enabled as well):
HannesTschofenig 0:796d0f61a05b 1030 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1031 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1032 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1033 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1034 * TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1035 * TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1036 * TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1037 * TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1038 * TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1039 * TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1040 * TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1041 * TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1042 * TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1043 * TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1044 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1045 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1046 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1047 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1048 * TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1049 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1050 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1051 * TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1052 * TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1053 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1054 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1055 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1056 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1057 * TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1058 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1059 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1060 * TLS_DHE_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1061 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1062 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1063 * TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1064 * TLS_DHE_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1065 * TLS_DHE_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1066 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1067 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1068 * TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1069 * TLS_DHE_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1070 * TLS_RSA_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1071 * TLS_RSA_WITH_AES_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1072 * TLS_RSA_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1073 * TLS_RSA_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1074 * TLS_RSA_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1075 * TLS_RSA_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1076 * TLS_RSA_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1077 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1078 * TLS_RSA_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1079 * TLS_RSA_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1080 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1081 * TLS_RSA_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1082 * TLS_PSK_WITH_AES_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1083 * TLS_PSK_WITH_AES_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1084 * TLS_PSK_WITH_AES_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1085 * TLS_PSK_WITH_AES_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1086 * TLS_PSK_WITH_AES_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1087 * TLS_PSK_WITH_AES_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1088 *
HannesTschofenig 0:796d0f61a05b 1089 * PEM_PARSE uses AES for decrypting encrypted keys.
HannesTschofenig 0:796d0f61a05b 1090 */
HannesTschofenig 0:796d0f61a05b 1091 #define POLARSSL_AES_C
HannesTschofenig 0:796d0f61a05b 1092
HannesTschofenig 0:796d0f61a05b 1093 /**
HannesTschofenig 0:796d0f61a05b 1094 * \def POLARSSL_ARC4_C
HannesTschofenig 0:796d0f61a05b 1095 *
HannesTschofenig 0:796d0f61a05b 1096 * Enable the ARCFOUR stream cipher.
HannesTschofenig 0:796d0f61a05b 1097 *
HannesTschofenig 0:796d0f61a05b 1098 * Module: library/arc4.c
HannesTschofenig 0:796d0f61a05b 1099 * Caller: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1100 *
HannesTschofenig 0:796d0f61a05b 1101 * This module enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 1102 * enabled as well):
HannesTschofenig 0:796d0f61a05b 1103 * TLS_ECDH_ECDSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1104 * TLS_ECDH_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1105 * TLS_ECDHE_ECDSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1106 * TLS_ECDHE_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1107 * TLS_ECDHE_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1108 * TLS_DHE_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1109 * TLS_RSA_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1110 * TLS_RSA_WITH_RC4_128_MD5
HannesTschofenig 0:796d0f61a05b 1111 * TLS_RSA_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1112 * TLS_PSK_WITH_RC4_128_SHA
HannesTschofenig 0:796d0f61a05b 1113 */
HannesTschofenig 0:796d0f61a05b 1114 //#define POLARSSL_ARC4_C
HannesTschofenig 0:796d0f61a05b 1115
HannesTschofenig 0:796d0f61a05b 1116 /**
HannesTschofenig 0:796d0f61a05b 1117 * \def POLARSSL_ASN1_PARSE_C
HannesTschofenig 0:796d0f61a05b 1118 *
HannesTschofenig 0:796d0f61a05b 1119 * Enable the generic ASN1 parser.
HannesTschofenig 0:796d0f61a05b 1120 *
HannesTschofenig 0:796d0f61a05b 1121 * Module: library/asn1.c
HannesTschofenig 0:796d0f61a05b 1122 * Caller: library/x509.c
HannesTschofenig 0:796d0f61a05b 1123 * library/dhm.c
HannesTschofenig 0:796d0f61a05b 1124 * library/pkcs12.c
HannesTschofenig 0:796d0f61a05b 1125 * library/pkcs5.c
HannesTschofenig 0:796d0f61a05b 1126 * library/pkparse.c
HannesTschofenig 0:796d0f61a05b 1127 */
HannesTschofenig 0:796d0f61a05b 1128 //#define POLARSSL_ASN1_PARSE_C
HannesTschofenig 0:796d0f61a05b 1129
HannesTschofenig 0:796d0f61a05b 1130 /**
HannesTschofenig 0:796d0f61a05b 1131 * \def POLARSSL_ASN1_WRITE_C
HannesTschofenig 0:796d0f61a05b 1132 *
HannesTschofenig 0:796d0f61a05b 1133 * Enable the generic ASN1 writer.
HannesTschofenig 0:796d0f61a05b 1134 *
HannesTschofenig 0:796d0f61a05b 1135 * Module: library/asn1write.c
HannesTschofenig 0:796d0f61a05b 1136 * Caller: library/ecdsa.c
HannesTschofenig 0:796d0f61a05b 1137 * library/pkwrite.c
HannesTschofenig 0:796d0f61a05b 1138 * library/x509_create.c
HannesTschofenig 0:796d0f61a05b 1139 * library/x509write_crt.c
HannesTschofenig 0:796d0f61a05b 1140 * library/x509write_csr.c
HannesTschofenig 0:796d0f61a05b 1141 */
HannesTschofenig 0:796d0f61a05b 1142 //#define POLARSSL_ASN1_WRITE_C
HannesTschofenig 0:796d0f61a05b 1143
HannesTschofenig 0:796d0f61a05b 1144 /**
HannesTschofenig 0:796d0f61a05b 1145 * \def POLARSSL_BASE64_C
HannesTschofenig 0:796d0f61a05b 1146 *
HannesTschofenig 0:796d0f61a05b 1147 * Enable the Base64 module.
HannesTschofenig 0:796d0f61a05b 1148 *
HannesTschofenig 0:796d0f61a05b 1149 * Module: library/base64.c
HannesTschofenig 0:796d0f61a05b 1150 * Caller: library/pem.c
HannesTschofenig 0:796d0f61a05b 1151 *
HannesTschofenig 0:796d0f61a05b 1152 * This module is required for PEM support (required by X.509).
HannesTschofenig 0:796d0f61a05b 1153 */
HannesTschofenig 0:796d0f61a05b 1154 //#define POLARSSL_BASE64_C
HannesTschofenig 0:796d0f61a05b 1155
HannesTschofenig 0:796d0f61a05b 1156 /**
HannesTschofenig 0:796d0f61a05b 1157 * \def POLARSSL_BIGNUM_C
HannesTschofenig 0:796d0f61a05b 1158 *
HannesTschofenig 0:796d0f61a05b 1159 * Enable the multi-precision integer library.
HannesTschofenig 0:796d0f61a05b 1160 *
HannesTschofenig 0:796d0f61a05b 1161 * Module: library/bignum.c
HannesTschofenig 0:796d0f61a05b 1162 * Caller: library/dhm.c
HannesTschofenig 0:796d0f61a05b 1163 * library/ecp.c
HannesTschofenig 0:796d0f61a05b 1164 * library/rsa.c
HannesTschofenig 0:796d0f61a05b 1165 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1166 *
HannesTschofenig 0:796d0f61a05b 1167 * This module is required for RSA and DHM support.
HannesTschofenig 0:796d0f61a05b 1168 */
HannesTschofenig 0:796d0f61a05b 1169 //#define POLARSSL_BIGNUM_C
HannesTschofenig 0:796d0f61a05b 1170
HannesTschofenig 0:796d0f61a05b 1171 /**
HannesTschofenig 0:796d0f61a05b 1172 * \def POLARSSL_BLOWFISH_C
HannesTschofenig 0:796d0f61a05b 1173 *
HannesTschofenig 0:796d0f61a05b 1174 * Enable the Blowfish block cipher.
HannesTschofenig 0:796d0f61a05b 1175 *
HannesTschofenig 0:796d0f61a05b 1176 * Module: library/blowfish.c
HannesTschofenig 0:796d0f61a05b 1177 */
HannesTschofenig 0:796d0f61a05b 1178 //#define POLARSSL_BLOWFISH_C
HannesTschofenig 0:796d0f61a05b 1179
HannesTschofenig 0:796d0f61a05b 1180 /**
HannesTschofenig 0:796d0f61a05b 1181 * \def POLARSSL_CAMELLIA_C
HannesTschofenig 0:796d0f61a05b 1182 *
HannesTschofenig 0:796d0f61a05b 1183 * Enable the Camellia block cipher.
HannesTschofenig 0:796d0f61a05b 1184 *
HannesTschofenig 0:796d0f61a05b 1185 * Module: library/camellia.c
HannesTschofenig 0:796d0f61a05b 1186 * Caller: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1187 *
HannesTschofenig 0:796d0f61a05b 1188 * This module enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 1189 * enabled as well):
HannesTschofenig 0:796d0f61a05b 1190 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1191 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1192 * TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1193 * TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1194 * TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1195 * TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1196 * TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1197 * TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1198 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1199 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1200 * TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1201 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1202 * TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1203 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1204 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1205 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1206 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1207 * TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1208 * TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1209 * TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1210 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1211 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1212 * TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1213 * TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1214 * TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1215 * TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1216 * TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1217 * TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1218 * TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1219 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1220 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1221 * TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1222 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1223 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1224 * TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1225 * TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1226 * TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1227 * TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1228 * TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384
HannesTschofenig 0:796d0f61a05b 1229 * TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384
HannesTschofenig 0:796d0f61a05b 1230 * TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256
HannesTschofenig 0:796d0f61a05b 1231 * TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256
HannesTschofenig 0:796d0f61a05b 1232 */
HannesTschofenig 0:796d0f61a05b 1233 //#define POLARSSL_CAMELLIA_C
HannesTschofenig 0:796d0f61a05b 1234
HannesTschofenig 0:796d0f61a05b 1235 /**
HannesTschofenig 0:796d0f61a05b 1236 * \def POLARSSL_CERTS_C
HannesTschofenig 0:796d0f61a05b 1237 *
HannesTschofenig 0:796d0f61a05b 1238 * Enable the test certificates.
HannesTschofenig 0:796d0f61a05b 1239 *
HannesTschofenig 0:796d0f61a05b 1240 * Module: library/certs.c
HannesTschofenig 0:796d0f61a05b 1241 * Caller:
HannesTschofenig 0:796d0f61a05b 1242 *
HannesTschofenig 0:796d0f61a05b 1243 * Requires: POLARSSL_PEM_PARSE_C
HannesTschofenig 0:796d0f61a05b 1244 *
HannesTschofenig 0:796d0f61a05b 1245 * This module is used for testing (ssl_client/server).
HannesTschofenig 0:796d0f61a05b 1246 */
HannesTschofenig 0:796d0f61a05b 1247 //#define POLARSSL_CERTS_C
HannesTschofenig 0:796d0f61a05b 1248
HannesTschofenig 0:796d0f61a05b 1249 /**
HannesTschofenig 0:796d0f61a05b 1250 * \def POLARSSL_CIPHER_C
HannesTschofenig 0:796d0f61a05b 1251 *
HannesTschofenig 0:796d0f61a05b 1252 * Enable the generic cipher layer.
HannesTschofenig 0:796d0f61a05b 1253 *
HannesTschofenig 0:796d0f61a05b 1254 * Module: library/cipher.c
HannesTschofenig 0:796d0f61a05b 1255 * Caller: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1256 *
HannesTschofenig 0:796d0f61a05b 1257 * Uncomment to enable generic cipher wrappers.
HannesTschofenig 0:796d0f61a05b 1258 */
HannesTschofenig 0:796d0f61a05b 1259 #define POLARSSL_CIPHER_C
HannesTschofenig 0:796d0f61a05b 1260
HannesTschofenig 0:796d0f61a05b 1261 /**
HannesTschofenig 0:796d0f61a05b 1262 * \def POLARSSL_CTR_DRBG_C
HannesTschofenig 0:796d0f61a05b 1263 *
HannesTschofenig 0:796d0f61a05b 1264 * Enable the CTR_DRBG AES-256-based random generator.
HannesTschofenig 0:796d0f61a05b 1265 *
HannesTschofenig 0:796d0f61a05b 1266 * Module: library/ctr_drbg.c
HannesTschofenig 0:796d0f61a05b 1267 * Caller:
HannesTschofenig 0:796d0f61a05b 1268 *
HannesTschofenig 0:796d0f61a05b 1269 * Requires: POLARSSL_AES_C
HannesTschofenig 0:796d0f61a05b 1270 *
HannesTschofenig 0:796d0f61a05b 1271 * This module provides the CTR_DRBG AES-256 random number generator.
HannesTschofenig 0:796d0f61a05b 1272 */
HannesTschofenig 0:796d0f61a05b 1273 //#define POLARSSL_CTR_DRBG_C
HannesTschofenig 0:796d0f61a05b 1274
HannesTschofenig 0:796d0f61a05b 1275 /**
HannesTschofenig 0:796d0f61a05b 1276 * \def POLARSSL_DEBUG_C
HannesTschofenig 0:796d0f61a05b 1277 *
HannesTschofenig 0:796d0f61a05b 1278 * Enable the debug functions.
HannesTschofenig 0:796d0f61a05b 1279 *
HannesTschofenig 0:796d0f61a05b 1280 * Module: library/debug.c
HannesTschofenig 0:796d0f61a05b 1281 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1282 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1283 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1284 *
HannesTschofenig 0:796d0f61a05b 1285 * This module provides debugging functions.
HannesTschofenig 0:796d0f61a05b 1286 */
HannesTschofenig 0:796d0f61a05b 1287 #define POLARSSL_DEBUG_C
HannesTschofenig 0:796d0f61a05b 1288
HannesTschofenig 0:796d0f61a05b 1289 /**
HannesTschofenig 0:796d0f61a05b 1290 * \def POLARSSL_DES_C
HannesTschofenig 0:796d0f61a05b 1291 *
HannesTschofenig 0:796d0f61a05b 1292 * Enable the DES block cipher.
HannesTschofenig 0:796d0f61a05b 1293 *
HannesTschofenig 0:796d0f61a05b 1294 * Module: library/des.c
HannesTschofenig 0:796d0f61a05b 1295 * Caller: library/pem.c
HannesTschofenig 0:796d0f61a05b 1296 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1297 *
HannesTschofenig 0:796d0f61a05b 1298 * This module enables the following ciphersuites (if other requisites are
HannesTschofenig 0:796d0f61a05b 1299 * enabled as well):
HannesTschofenig 0:796d0f61a05b 1300 * TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1301 * TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1302 * TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1303 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1304 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1305 * TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1306 * TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1307 * TLS_RSA_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1308 * TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1309 * TLS_PSK_WITH_3DES_EDE_CBC_SHA
HannesTschofenig 0:796d0f61a05b 1310 *
HannesTschofenig 0:796d0f61a05b 1311 * PEM_PARSE uses DES/3DES for decrypting encrypted keys.
HannesTschofenig 0:796d0f61a05b 1312 */
HannesTschofenig 0:796d0f61a05b 1313 //#define POLARSSL_DES_C
HannesTschofenig 0:796d0f61a05b 1314
HannesTschofenig 0:796d0f61a05b 1315 /**
HannesTschofenig 0:796d0f61a05b 1316 * \def POLARSSL_DHM_C
HannesTschofenig 0:796d0f61a05b 1317 *
HannesTschofenig 0:796d0f61a05b 1318 * Enable the Diffie-Hellman-Merkle module.
HannesTschofenig 0:796d0f61a05b 1319 *
HannesTschofenig 0:796d0f61a05b 1320 * Module: library/dhm.c
HannesTschofenig 0:796d0f61a05b 1321 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1322 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1323 *
HannesTschofenig 0:796d0f61a05b 1324 * This module is used by the following key exchanges:
HannesTschofenig 0:796d0f61a05b 1325 * DHE-RSA, DHE-PSK
HannesTschofenig 0:796d0f61a05b 1326 */
HannesTschofenig 0:796d0f61a05b 1327 //#define POLARSSL_DHM_C
HannesTschofenig 0:796d0f61a05b 1328
HannesTschofenig 0:796d0f61a05b 1329 /**
HannesTschofenig 0:796d0f61a05b 1330 * \def POLARSSL_ECDH_C
HannesTschofenig 0:796d0f61a05b 1331 *
HannesTschofenig 0:796d0f61a05b 1332 * Enable the elliptic curve Diffie-Hellman library.
HannesTschofenig 0:796d0f61a05b 1333 *
HannesTschofenig 0:796d0f61a05b 1334 * Module: library/ecdh.c
HannesTschofenig 0:796d0f61a05b 1335 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1336 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1337 *
HannesTschofenig 0:796d0f61a05b 1338 * This module is used by the following key exchanges:
HannesTschofenig 0:796d0f61a05b 1339 * ECDHE-ECDSA, ECDHE-RSA, DHE-PSK
HannesTschofenig 0:796d0f61a05b 1340 *
HannesTschofenig 0:796d0f61a05b 1341 * Requires: POLARSSL_ECP_C
HannesTschofenig 0:796d0f61a05b 1342 */
HannesTschofenig 0:796d0f61a05b 1343 //#define POLARSSL_ECDH_C
HannesTschofenig 0:796d0f61a05b 1344
HannesTschofenig 0:796d0f61a05b 1345 /**
HannesTschofenig 0:796d0f61a05b 1346 * \def POLARSSL_ECDSA_C
HannesTschofenig 0:796d0f61a05b 1347 *
HannesTschofenig 0:796d0f61a05b 1348 * Enable the elliptic curve DSA library.
HannesTschofenig 0:796d0f61a05b 1349 *
HannesTschofenig 0:796d0f61a05b 1350 * Module: library/ecdsa.c
HannesTschofenig 0:796d0f61a05b 1351 * Caller:
HannesTschofenig 0:796d0f61a05b 1352 *
HannesTschofenig 0:796d0f61a05b 1353 * This module is used by the following key exchanges:
HannesTschofenig 0:796d0f61a05b 1354 * ECDHE-ECDSA
HannesTschofenig 0:796d0f61a05b 1355 *
HannesTschofenig 0:796d0f61a05b 1356 * Requires: POLARSSL_ECP_C, POLARSSL_ASN1_WRITE_C, POLARSSL_ASN1_PARSE_C
HannesTschofenig 0:796d0f61a05b 1357 */
HannesTschofenig 0:796d0f61a05b 1358 //#define POLARSSL_ECDSA_C
HannesTschofenig 0:796d0f61a05b 1359
HannesTschofenig 0:796d0f61a05b 1360 /**
HannesTschofenig 0:796d0f61a05b 1361 * \def POLARSSL_ECP_C
HannesTschofenig 0:796d0f61a05b 1362 *
HannesTschofenig 0:796d0f61a05b 1363 * Enable the elliptic curve over GF(p) library.
HannesTschofenig 0:796d0f61a05b 1364 *
HannesTschofenig 0:796d0f61a05b 1365 * Module: library/ecp.c
HannesTschofenig 0:796d0f61a05b 1366 * Caller: library/ecdh.c
HannesTschofenig 0:796d0f61a05b 1367 * library/ecdsa.c
HannesTschofenig 0:796d0f61a05b 1368 *
HannesTschofenig 0:796d0f61a05b 1369 * Requires: POLARSSL_BIGNUM_C and at least one POLARSSL_ECP_DP_XXX_ENABLED
HannesTschofenig 0:796d0f61a05b 1370 */
HannesTschofenig 0:796d0f61a05b 1371 //#define POLARSSL_ECP_C
HannesTschofenig 0:796d0f61a05b 1372
HannesTschofenig 0:796d0f61a05b 1373 /**
HannesTschofenig 0:796d0f61a05b 1374 * \def POLARSSL_ENTROPY_C
HannesTschofenig 0:796d0f61a05b 1375 *
HannesTschofenig 0:796d0f61a05b 1376 * Enable the platform-specific entropy code.
HannesTschofenig 0:796d0f61a05b 1377 *
HannesTschofenig 0:796d0f61a05b 1378 * Module: library/entropy.c
HannesTschofenig 0:796d0f61a05b 1379 * Caller:
HannesTschofenig 0:796d0f61a05b 1380 *
HannesTschofenig 0:796d0f61a05b 1381 * Requires: POLARSSL_SHA512_C or POLARSSL_SHA256_C
HannesTschofenig 0:796d0f61a05b 1382 *
HannesTschofenig 0:796d0f61a05b 1383 * This module provides a generic entropy pool
HannesTschofenig 0:796d0f61a05b 1384 */
HannesTschofenig 0:796d0f61a05b 1385 //#define POLARSSL_ENTROPY_C
HannesTschofenig 0:796d0f61a05b 1386
HannesTschofenig 0:796d0f61a05b 1387 /**
HannesTschofenig 0:796d0f61a05b 1388 * \def POLARSSL_ERROR_C
HannesTschofenig 0:796d0f61a05b 1389 *
HannesTschofenig 0:796d0f61a05b 1390 * Enable error code to error string conversion.
HannesTschofenig 0:796d0f61a05b 1391 *
HannesTschofenig 0:796d0f61a05b 1392 * Module: library/error.c
HannesTschofenig 0:796d0f61a05b 1393 * Caller:
HannesTschofenig 0:796d0f61a05b 1394 *
HannesTschofenig 0:796d0f61a05b 1395 * This module enables err_strerror().
HannesTschofenig 0:796d0f61a05b 1396 */
HannesTschofenig 0:796d0f61a05b 1397 //#define POLARSSL_ERROR_C
HannesTschofenig 0:796d0f61a05b 1398
HannesTschofenig 0:796d0f61a05b 1399 /**
HannesTschofenig 0:796d0f61a05b 1400 * \def POLARSSL_GCM_C
HannesTschofenig 0:796d0f61a05b 1401 *
HannesTschofenig 0:796d0f61a05b 1402 * Enable the Galois/Counter Mode (GCM) for AES.
HannesTschofenig 0:796d0f61a05b 1403 *
HannesTschofenig 0:796d0f61a05b 1404 * Module: library/gcm.c
HannesTschofenig 0:796d0f61a05b 1405 *
HannesTschofenig 0:796d0f61a05b 1406 * Requires: POLARSSL_AES_C or POLARSSL_CAMELLIA_C
HannesTschofenig 0:796d0f61a05b 1407 *
HannesTschofenig 0:796d0f61a05b 1408 * This module enables the AES-GCM and CAMELLIA-GCM ciphersuites, if other
HannesTschofenig 0:796d0f61a05b 1409 * requisites are enabled as well.
HannesTschofenig 0:796d0f61a05b 1410 */
HannesTschofenig 0:796d0f61a05b 1411 #define POLARSSL_GCM_C
HannesTschofenig 0:796d0f61a05b 1412
HannesTschofenig 0:796d0f61a05b 1413 /**
HannesTschofenig 0:796d0f61a05b 1414 * \def POLARSSL_HAVEGE_C
HannesTschofenig 0:796d0f61a05b 1415 *
HannesTschofenig 0:796d0f61a05b 1416 * Enable the HAVEGE random generator.
HannesTschofenig 0:796d0f61a05b 1417 *
HannesTschofenig 0:796d0f61a05b 1418 * Warning: the HAVEGE random generator is not suitable for virtualized
HannesTschofenig 0:796d0f61a05b 1419 * environments
HannesTschofenig 0:796d0f61a05b 1420 *
HannesTschofenig 0:796d0f61a05b 1421 * Warning: the HAVEGE random generator is dependent on timing and specific
HannesTschofenig 0:796d0f61a05b 1422 * processor traits. It is therefore not advised to use HAVEGE as
HannesTschofenig 0:796d0f61a05b 1423 * your applications primary random generator or primary entropy pool
HannesTschofenig 0:796d0f61a05b 1424 * input. As a secondary input to your entropy pool, it IS able add
HannesTschofenig 0:796d0f61a05b 1425 * the (limited) extra entropy it provides.
HannesTschofenig 0:796d0f61a05b 1426 *
HannesTschofenig 0:796d0f61a05b 1427 * Module: library/havege.c
HannesTschofenig 0:796d0f61a05b 1428 * Caller:
HannesTschofenig 0:796d0f61a05b 1429 *
HannesTschofenig 0:796d0f61a05b 1430 * Requires: POLARSSL_TIMING_C
HannesTschofenig 0:796d0f61a05b 1431 *
HannesTschofenig 0:796d0f61a05b 1432 * Uncomment to enable the HAVEGE random generator.
HannesTschofenig 0:796d0f61a05b 1433 */
HannesTschofenig 0:796d0f61a05b 1434 //#define POLARSSL_HAVEGE_C
HannesTschofenig 0:796d0f61a05b 1435
HannesTschofenig 0:796d0f61a05b 1436 /**
HannesTschofenig 0:796d0f61a05b 1437 * \def POLARSSL_HMAC_DRBG_C
HannesTschofenig 0:796d0f61a05b 1438 *
HannesTschofenig 0:796d0f61a05b 1439 * Enable the HMAC_DRBG random generator.
HannesTschofenig 0:796d0f61a05b 1440 *
HannesTschofenig 0:796d0f61a05b 1441 * Module: library/hmac_drbg.c
HannesTschofenig 0:796d0f61a05b 1442 * Caller:
HannesTschofenig 0:796d0f61a05b 1443 *
HannesTschofenig 0:796d0f61a05b 1444 * Requires: POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1445 *
HannesTschofenig 0:796d0f61a05b 1446 * Uncomment to enable the HMAC_DRBG random number geerator.
HannesTschofenig 0:796d0f61a05b 1447 */
HannesTschofenig 0:796d0f61a05b 1448 //#define POLARSSL_HMAC_DRBG_C
HannesTschofenig 0:796d0f61a05b 1449
HannesTschofenig 0:796d0f61a05b 1450 /**
HannesTschofenig 0:796d0f61a05b 1451 * \def POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1452 *
HannesTschofenig 0:796d0f61a05b 1453 * Enable the generic message digest layer.
HannesTschofenig 0:796d0f61a05b 1454 *
HannesTschofenig 0:796d0f61a05b 1455 * Module: library/md.c
HannesTschofenig 0:796d0f61a05b 1456 * Caller:
HannesTschofenig 0:796d0f61a05b 1457 *
HannesTschofenig 0:796d0f61a05b 1458 * Uncomment to enable generic message digest wrappers.
HannesTschofenig 0:796d0f61a05b 1459 */
HannesTschofenig 0:796d0f61a05b 1460 #define POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1461
HannesTschofenig 0:796d0f61a05b 1462 /**
HannesTschofenig 0:796d0f61a05b 1463 * \def POLARSSL_MD2_C
HannesTschofenig 0:796d0f61a05b 1464 *
HannesTschofenig 0:796d0f61a05b 1465 * Enable the MD2 hash algorithm.
HannesTschofenig 0:796d0f61a05b 1466 *
HannesTschofenig 0:796d0f61a05b 1467 * Module: library/md2.c
HannesTschofenig 0:796d0f61a05b 1468 * Caller:
HannesTschofenig 0:796d0f61a05b 1469 *
HannesTschofenig 0:796d0f61a05b 1470 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
HannesTschofenig 0:796d0f61a05b 1471 */
HannesTschofenig 0:796d0f61a05b 1472 //#define POLARSSL_MD2_C
HannesTschofenig 0:796d0f61a05b 1473
HannesTschofenig 0:796d0f61a05b 1474 /**
HannesTschofenig 0:796d0f61a05b 1475 * \def POLARSSL_MD4_C
HannesTschofenig 0:796d0f61a05b 1476 *
HannesTschofenig 0:796d0f61a05b 1477 * Enable the MD4 hash algorithm.
HannesTschofenig 0:796d0f61a05b 1478 *
HannesTschofenig 0:796d0f61a05b 1479 * Module: library/md4.c
HannesTschofenig 0:796d0f61a05b 1480 * Caller:
HannesTschofenig 0:796d0f61a05b 1481 *
HannesTschofenig 0:796d0f61a05b 1482 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
HannesTschofenig 0:796d0f61a05b 1483 */
HannesTschofenig 0:796d0f61a05b 1484 //#define POLARSSL_MD4_C
HannesTschofenig 0:796d0f61a05b 1485
HannesTschofenig 0:796d0f61a05b 1486 /**
HannesTschofenig 0:796d0f61a05b 1487 * \def POLARSSL_MD5_C
HannesTschofenig 0:796d0f61a05b 1488 *
HannesTschofenig 0:796d0f61a05b 1489 * Enable the MD5 hash algorithm.
HannesTschofenig 0:796d0f61a05b 1490 *
HannesTschofenig 0:796d0f61a05b 1491 * Module: library/md5.c
HannesTschofenig 0:796d0f61a05b 1492 * Caller: library/md.c
HannesTschofenig 0:796d0f61a05b 1493 * library/pem.c
HannesTschofenig 0:796d0f61a05b 1494 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1495 *
HannesTschofenig 0:796d0f61a05b 1496 * This module is required for SSL/TLS and X.509.
HannesTschofenig 0:796d0f61a05b 1497 * PEM_PARSE uses MD5 for decrypting encrypted keys.
HannesTschofenig 0:796d0f61a05b 1498 */
HannesTschofenig 0:796d0f61a05b 1499 //#define POLARSSL_MD5_C
HannesTschofenig 0:796d0f61a05b 1500
HannesTschofenig 0:796d0f61a05b 1501 /**
HannesTschofenig 0:796d0f61a05b 1502 * \def POLARSSL_MEMORY_C
HannesTschofenig 0:796d0f61a05b 1503 * Deprecated since 1.3.5. Please use POLARSSL_PLATFORM_MEMORY instead.
HannesTschofenig 0:796d0f61a05b 1504 */
HannesTschofenig 0:796d0f61a05b 1505 //#define POLARSSL_MEMORY_C
HannesTschofenig 0:796d0f61a05b 1506
HannesTschofenig 0:796d0f61a05b 1507 /**
HannesTschofenig 0:796d0f61a05b 1508 * \def POLARSSL_MEMORY_BUFFER_ALLOC_C
HannesTschofenig 0:796d0f61a05b 1509 *
HannesTschofenig 0:796d0f61a05b 1510 * Enable the buffer allocator implementation that makes use of a (stack)
HannesTschofenig 0:796d0f61a05b 1511 * based buffer to 'allocate' dynamic memory. (replaces malloc() and free()
HannesTschofenig 0:796d0f61a05b 1512 * calls)
HannesTschofenig 0:796d0f61a05b 1513 *
HannesTschofenig 0:796d0f61a05b 1514 * Module: library/memory_buffer_alloc.c
HannesTschofenig 0:796d0f61a05b 1515 *
HannesTschofenig 0:796d0f61a05b 1516 * Requires: POLARSSL_PLATFORM_C
HannesTschofenig 0:796d0f61a05b 1517 * POLARSSL_PLATFORM_MEMORY (to use it within PolarSSL)
HannesTschofenig 0:796d0f61a05b 1518 *
HannesTschofenig 0:796d0f61a05b 1519 * Enable this module to enable the buffer memory allocator.
HannesTschofenig 0:796d0f61a05b 1520 */
HannesTschofenig 0:796d0f61a05b 1521 //#define POLARSSL_MEMORY_BUFFER_ALLOC_C
HannesTschofenig 0:796d0f61a05b 1522
HannesTschofenig 0:796d0f61a05b 1523 /**
HannesTschofenig 0:796d0f61a05b 1524 * \def POLARSSL_NET_C
HannesTschofenig 0:796d0f61a05b 1525 *
HannesTschofenig 0:796d0f61a05b 1526 * Enable the TCP/IP networking routines.
HannesTschofenig 0:796d0f61a05b 1527 *
HannesTschofenig 0:796d0f61a05b 1528 * Module: library/net.c
HannesTschofenig 0:796d0f61a05b 1529 *
HannesTschofenig 0:796d0f61a05b 1530 * This module provides TCP/IP networking routines.
HannesTschofenig 0:796d0f61a05b 1531 */
HannesTschofenig 0:796d0f61a05b 1532 //#define POLARSSL_NET_C
HannesTschofenig 0:796d0f61a05b 1533
HannesTschofenig 0:796d0f61a05b 1534 /**
HannesTschofenig 0:796d0f61a05b 1535 * \def POLARSSL_OID_C
HannesTschofenig 0:796d0f61a05b 1536 *
HannesTschofenig 0:796d0f61a05b 1537 * Enable the OID database.
HannesTschofenig 0:796d0f61a05b 1538 *
HannesTschofenig 0:796d0f61a05b 1539 * Module: library/oid.c
HannesTschofenig 0:796d0f61a05b 1540 * Caller: library/asn1write.c
HannesTschofenig 0:796d0f61a05b 1541 * library/pkcs5.c
HannesTschofenig 0:796d0f61a05b 1542 * library/pkparse.c
HannesTschofenig 0:796d0f61a05b 1543 * library/pkwrite.c
HannesTschofenig 0:796d0f61a05b 1544 * library/rsa.c
HannesTschofenig 0:796d0f61a05b 1545 * library/x509.c
HannesTschofenig 0:796d0f61a05b 1546 * library/x509_create.c
HannesTschofenig 0:796d0f61a05b 1547 * library/x509_crl.c
HannesTschofenig 0:796d0f61a05b 1548 * library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1549 * library/x509_csr.c
HannesTschofenig 0:796d0f61a05b 1550 * library/x509write_crt.c
HannesTschofenig 0:796d0f61a05b 1551 * library/x509write_csr.c
HannesTschofenig 0:796d0f61a05b 1552 *
HannesTschofenig 0:796d0f61a05b 1553 * This modules translates between OIDs and internal values.
HannesTschofenig 0:796d0f61a05b 1554 */
HannesTschofenig 0:796d0f61a05b 1555 //#define POLARSSL_OID_C
HannesTschofenig 0:796d0f61a05b 1556
HannesTschofenig 0:796d0f61a05b 1557 /**
HannesTschofenig 0:796d0f61a05b 1558 * \def POLARSSL_PADLOCK_C
HannesTschofenig 0:796d0f61a05b 1559 *
HannesTschofenig 0:796d0f61a05b 1560 * Enable VIA Padlock support on x86.
HannesTschofenig 0:796d0f61a05b 1561 *
HannesTschofenig 0:796d0f61a05b 1562 * Module: library/padlock.c
HannesTschofenig 0:796d0f61a05b 1563 * Caller: library/aes.c
HannesTschofenig 0:796d0f61a05b 1564 *
HannesTschofenig 0:796d0f61a05b 1565 * Requires: POLARSSL_HAVE_ASM
HannesTschofenig 0:796d0f61a05b 1566 *
HannesTschofenig 0:796d0f61a05b 1567 * This modules adds support for the VIA PadLock on x86.
HannesTschofenig 0:796d0f61a05b 1568 */
HannesTschofenig 0:796d0f61a05b 1569 //#define POLARSSL_PADLOCK_C
HannesTschofenig 0:796d0f61a05b 1570
HannesTschofenig 0:796d0f61a05b 1571 /**
HannesTschofenig 0:796d0f61a05b 1572 * \def POLARSSL_PBKDF2_C
HannesTschofenig 0:796d0f61a05b 1573 *
HannesTschofenig 0:796d0f61a05b 1574 * Enable PKCS#5 PBKDF2 key derivation function.
HannesTschofenig 0:796d0f61a05b 1575 * DEPRECATED: Use POLARSSL_PKCS5_C instead
HannesTschofenig 0:796d0f61a05b 1576 *
HannesTschofenig 0:796d0f61a05b 1577 * Module: library/pbkdf2.c
HannesTschofenig 0:796d0f61a05b 1578 *
HannesTschofenig 0:796d0f61a05b 1579 * Requires: POLARSSL_PKCS5_C
HannesTschofenig 0:796d0f61a05b 1580 *
HannesTschofenig 0:796d0f61a05b 1581 * This module adds support for the PKCS#5 PBKDF2 key derivation function.
HannesTschofenig 0:796d0f61a05b 1582 */
HannesTschofenig 0:796d0f61a05b 1583 //#define POLARSSL_PBKDF2_C
HannesTschofenig 0:796d0f61a05b 1584
HannesTschofenig 0:796d0f61a05b 1585 /**
HannesTschofenig 0:796d0f61a05b 1586 * \def POLARSSL_PEM_PARSE_C
HannesTschofenig 0:796d0f61a05b 1587 *
HannesTschofenig 0:796d0f61a05b 1588 * Enable PEM decoding / parsing.
HannesTschofenig 0:796d0f61a05b 1589 *
HannesTschofenig 0:796d0f61a05b 1590 * Module: library/pem.c
HannesTschofenig 0:796d0f61a05b 1591 * Caller: library/dhm.c
HannesTschofenig 0:796d0f61a05b 1592 * library/pkparse.c
HannesTschofenig 0:796d0f61a05b 1593 * library/x509_crl.c
HannesTschofenig 0:796d0f61a05b 1594 * library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1595 * library/x509_csr.c
HannesTschofenig 0:796d0f61a05b 1596 *
HannesTschofenig 0:796d0f61a05b 1597 * Requires: POLARSSL_BASE64_C
HannesTschofenig 0:796d0f61a05b 1598 *
HannesTschofenig 0:796d0f61a05b 1599 * This modules adds support for decoding / parsing PEM files.
HannesTschofenig 0:796d0f61a05b 1600 */
HannesTschofenig 0:796d0f61a05b 1601 //#define POLARSSL_PEM_PARSE_C
HannesTschofenig 0:796d0f61a05b 1602
HannesTschofenig 0:796d0f61a05b 1603 /**
HannesTschofenig 0:796d0f61a05b 1604 * \def POLARSSL_PEM_WRITE_C
HannesTschofenig 0:796d0f61a05b 1605 *
HannesTschofenig 0:796d0f61a05b 1606 * Enable PEM encoding / writing.
HannesTschofenig 0:796d0f61a05b 1607 *
HannesTschofenig 0:796d0f61a05b 1608 * Module: library/pem.c
HannesTschofenig 0:796d0f61a05b 1609 * Caller: library/pkwrite.c
HannesTschofenig 0:796d0f61a05b 1610 * library/x509write_crt.c
HannesTschofenig 0:796d0f61a05b 1611 * library/x509write_csr.c
HannesTschofenig 0:796d0f61a05b 1612 *
HannesTschofenig 0:796d0f61a05b 1613 * Requires: POLARSSL_BASE64_C
HannesTschofenig 0:796d0f61a05b 1614 *
HannesTschofenig 0:796d0f61a05b 1615 * This modules adds support for encoding / writing PEM files.
HannesTschofenig 0:796d0f61a05b 1616 */
HannesTschofenig 0:796d0f61a05b 1617 //#define POLARSSL_PEM_WRITE_C
HannesTschofenig 0:796d0f61a05b 1618
HannesTschofenig 0:796d0f61a05b 1619 /**
HannesTschofenig 0:796d0f61a05b 1620 * \def POLARSSL_PK_C
HannesTschofenig 0:796d0f61a05b 1621 *
HannesTschofenig 0:796d0f61a05b 1622 * Enable the generic public (asymetric) key layer.
HannesTschofenig 0:796d0f61a05b 1623 *
HannesTschofenig 0:796d0f61a05b 1624 * Module: library/pk.c
HannesTschofenig 0:796d0f61a05b 1625 * Caller: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1626 * library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1627 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1628 *
HannesTschofenig 0:796d0f61a05b 1629 * Requires: POLARSSL_RSA_C or POLARSSL_ECP_C
HannesTschofenig 0:796d0f61a05b 1630 *
HannesTschofenig 0:796d0f61a05b 1631 * Uncomment to enable generic public key wrappers.
HannesTschofenig 0:796d0f61a05b 1632 */
HannesTschofenig 0:796d0f61a05b 1633 //#define POLARSSL_PK_C
HannesTschofenig 0:796d0f61a05b 1634
HannesTschofenig 0:796d0f61a05b 1635 /**
HannesTschofenig 0:796d0f61a05b 1636 * \def POLARSSL_PK_PARSE_C
HannesTschofenig 0:796d0f61a05b 1637 *
HannesTschofenig 0:796d0f61a05b 1638 * Enable the generic public (asymetric) key parser.
HannesTschofenig 0:796d0f61a05b 1639 *
HannesTschofenig 0:796d0f61a05b 1640 * Module: library/pkparse.c
HannesTschofenig 0:796d0f61a05b 1641 * Caller: library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1642 * library/x509_csr.c
HannesTschofenig 0:796d0f61a05b 1643 *
HannesTschofenig 0:796d0f61a05b 1644 * Requires: POLARSSL_PK_C
HannesTschofenig 0:796d0f61a05b 1645 *
HannesTschofenig 0:796d0f61a05b 1646 * Uncomment to enable generic public key parse functions.
HannesTschofenig 0:796d0f61a05b 1647 */
HannesTschofenig 0:796d0f61a05b 1648 //#define POLARSSL_PK_PARSE_C
HannesTschofenig 0:796d0f61a05b 1649
HannesTschofenig 0:796d0f61a05b 1650 /**
HannesTschofenig 0:796d0f61a05b 1651 * \def POLARSSL_PK_WRITE_C
HannesTschofenig 0:796d0f61a05b 1652 *
HannesTschofenig 0:796d0f61a05b 1653 * Enable the generic public (asymetric) key writer.
HannesTschofenig 0:796d0f61a05b 1654 *
HannesTschofenig 0:796d0f61a05b 1655 * Module: library/pkwrite.c
HannesTschofenig 0:796d0f61a05b 1656 * Caller: library/x509write.c
HannesTschofenig 0:796d0f61a05b 1657 *
HannesTschofenig 0:796d0f61a05b 1658 * Requires: POLARSSL_PK_C
HannesTschofenig 0:796d0f61a05b 1659 *
HannesTschofenig 0:796d0f61a05b 1660 * Uncomment to enable generic public key write functions.
HannesTschofenig 0:796d0f61a05b 1661 */
HannesTschofenig 0:796d0f61a05b 1662 //#define POLARSSL_PK_WRITE_C
HannesTschofenig 0:796d0f61a05b 1663
HannesTschofenig 0:796d0f61a05b 1664 /**
HannesTschofenig 0:796d0f61a05b 1665 * \def POLARSSL_PKCS5_C
HannesTschofenig 0:796d0f61a05b 1666 *
HannesTschofenig 0:796d0f61a05b 1667 * Enable PKCS#5 functions.
HannesTschofenig 0:796d0f61a05b 1668 *
HannesTschofenig 0:796d0f61a05b 1669 * Module: library/pkcs5.c
HannesTschofenig 0:796d0f61a05b 1670 *
HannesTschofenig 0:796d0f61a05b 1671 * Requires: POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1672 *
HannesTschofenig 0:796d0f61a05b 1673 * This module adds support for the PKCS#5 functions.
HannesTschofenig 0:796d0f61a05b 1674 */
HannesTschofenig 0:796d0f61a05b 1675 //#define POLARSSL_PKCS5_C
HannesTschofenig 0:796d0f61a05b 1676
HannesTschofenig 0:796d0f61a05b 1677 /**
HannesTschofenig 0:796d0f61a05b 1678 * \def POLARSSL_PKCS11_C
HannesTschofenig 0:796d0f61a05b 1679 *
HannesTschofenig 0:796d0f61a05b 1680 * Enable wrapper for PKCS#11 smartcard support.
HannesTschofenig 0:796d0f61a05b 1681 *
HannesTschofenig 0:796d0f61a05b 1682 * Module: library/pkcs11.c
HannesTschofenig 0:796d0f61a05b 1683 * Caller: library/pk.c
HannesTschofenig 0:796d0f61a05b 1684 *
HannesTschofenig 0:796d0f61a05b 1685 * Requires: POLARSSL_PK_C
HannesTschofenig 0:796d0f61a05b 1686 *
HannesTschofenig 0:796d0f61a05b 1687 * This module enables SSL/TLS PKCS #11 smartcard support.
HannesTschofenig 0:796d0f61a05b 1688 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper)
HannesTschofenig 0:796d0f61a05b 1689 */
HannesTschofenig 0:796d0f61a05b 1690 //#define POLARSSL_PKCS11_C
HannesTschofenig 0:796d0f61a05b 1691
HannesTschofenig 0:796d0f61a05b 1692 /**
HannesTschofenig 0:796d0f61a05b 1693 * \def POLARSSL_PKCS12_C
HannesTschofenig 0:796d0f61a05b 1694 *
HannesTschofenig 0:796d0f61a05b 1695 * Enable PKCS#12 PBE functions.
HannesTschofenig 0:796d0f61a05b 1696 * Adds algorithms for parsing PKCS#8 encrypted private keys
HannesTschofenig 0:796d0f61a05b 1697 *
HannesTschofenig 0:796d0f61a05b 1698 * Module: library/pkcs12.c
HannesTschofenig 0:796d0f61a05b 1699 * Caller: library/pkparse.c
HannesTschofenig 0:796d0f61a05b 1700 *
HannesTschofenig 0:796d0f61a05b 1701 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_CIPHER_C, POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1702 * Can use: POLARSSL_ARC4_C
HannesTschofenig 0:796d0f61a05b 1703 *
HannesTschofenig 0:796d0f61a05b 1704 * This module enables PKCS#12 functions.
HannesTschofenig 0:796d0f61a05b 1705 */
HannesTschofenig 0:796d0f61a05b 1706 //#define POLARSSL_PKCS12_C
HannesTschofenig 0:796d0f61a05b 1707
HannesTschofenig 0:796d0f61a05b 1708 /**
HannesTschofenig 0:796d0f61a05b 1709 * \def POLARSSL_PLATFORM_C
HannesTschofenig 0:796d0f61a05b 1710 *
HannesTschofenig 0:796d0f61a05b 1711 * Enable the platform abstraction layer that allows you to re-assign
HannesTschofenig 0:796d0f61a05b 1712 * functions like malloc(), free(), printf(), fprintf()
HannesTschofenig 0:796d0f61a05b 1713 *
HannesTschofenig 0:796d0f61a05b 1714 * Module: library/platform.c
HannesTschofenig 0:796d0f61a05b 1715 * Caller: Most other .c files
HannesTschofenig 0:796d0f61a05b 1716 *
HannesTschofenig 0:796d0f61a05b 1717 * This module enables abstraction of common (libc) functions.
HannesTschofenig 0:796d0f61a05b 1718 */
HannesTschofenig 0:796d0f61a05b 1719 #define POLARSSL_PLATFORM_C
HannesTschofenig 0:796d0f61a05b 1720
HannesTschofenig 0:796d0f61a05b 1721 /**
HannesTschofenig 0:796d0f61a05b 1722 * \def POLARSSL_RIPEMD160_C
HannesTschofenig 0:796d0f61a05b 1723 *
HannesTschofenig 0:796d0f61a05b 1724 * Enable the RIPEMD-160 hash algorithm.
HannesTschofenig 0:796d0f61a05b 1725 *
HannesTschofenig 0:796d0f61a05b 1726 * Module: library/ripemd160.c
HannesTschofenig 0:796d0f61a05b 1727 * Caller: library/md.c
HannesTschofenig 0:796d0f61a05b 1728 *
HannesTschofenig 0:796d0f61a05b 1729 */
HannesTschofenig 0:796d0f61a05b 1730 //#define POLARSSL_RIPEMD160_C
HannesTschofenig 0:796d0f61a05b 1731
HannesTschofenig 0:796d0f61a05b 1732 /**
HannesTschofenig 0:796d0f61a05b 1733 * \def POLARSSL_RSA_C
HannesTschofenig 0:796d0f61a05b 1734 *
HannesTschofenig 0:796d0f61a05b 1735 * Enable the RSA public-key cryptosystem.
HannesTschofenig 0:796d0f61a05b 1736 *
HannesTschofenig 0:796d0f61a05b 1737 * Module: library/rsa.c
HannesTschofenig 0:796d0f61a05b 1738 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1739 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1740 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1741 * library/x509.c
HannesTschofenig 0:796d0f61a05b 1742 *
HannesTschofenig 0:796d0f61a05b 1743 * This module is used by the following key exchanges:
HannesTschofenig 0:796d0f61a05b 1744 * RSA, DHE-RSA, ECDHE-RSA, RSA-PSK
HannesTschofenig 0:796d0f61a05b 1745 *
HannesTschofenig 0:796d0f61a05b 1746 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C
HannesTschofenig 0:796d0f61a05b 1747 */
HannesTschofenig 0:796d0f61a05b 1748 //#define POLARSSL_RSA_C
HannesTschofenig 0:796d0f61a05b 1749
HannesTschofenig 0:796d0f61a05b 1750 /**
HannesTschofenig 0:796d0f61a05b 1751 * \def POLARSSL_SHA1_C
HannesTschofenig 0:796d0f61a05b 1752 *
HannesTschofenig 0:796d0f61a05b 1753 * Enable the SHA1 cryptographic hash algorithm.
HannesTschofenig 0:796d0f61a05b 1754 *
HannesTschofenig 0:796d0f61a05b 1755 * Module: library/sha1.c
HannesTschofenig 0:796d0f61a05b 1756 * Caller: library/md.c
HannesTschofenig 0:796d0f61a05b 1757 * library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1758 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1759 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1760 * library/x509write_crt.c
HannesTschofenig 0:796d0f61a05b 1761 *
HannesTschofenig 0:796d0f61a05b 1762 * This module is required for SSL/TLS and SHA1-signed certificates.
HannesTschofenig 0:796d0f61a05b 1763 */
HannesTschofenig 0:796d0f61a05b 1764 //#define POLARSSL_SHA1_C
HannesTschofenig 0:796d0f61a05b 1765
HannesTschofenig 0:796d0f61a05b 1766 /**
HannesTschofenig 0:796d0f61a05b 1767 * \def POLARSSL_SHA256_C
HannesTschofenig 0:796d0f61a05b 1768 *
HannesTschofenig 0:796d0f61a05b 1769 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
HannesTschofenig 0:796d0f61a05b 1770 * (Used to be POLARSSL_SHA2_C)
HannesTschofenig 0:796d0f61a05b 1771 *
HannesTschofenig 0:796d0f61a05b 1772 * Module: library/sha256.c
HannesTschofenig 0:796d0f61a05b 1773 * Caller: library/entropy.c
HannesTschofenig 0:796d0f61a05b 1774 * library/md.c
HannesTschofenig 0:796d0f61a05b 1775 * library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1776 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1777 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1778 *
HannesTschofenig 0:796d0f61a05b 1779 * This module adds support for SHA-224 and SHA-256.
HannesTschofenig 0:796d0f61a05b 1780 * This module is required for the SSL/TLS 1.2 PRF function.
HannesTschofenig 0:796d0f61a05b 1781 */
HannesTschofenig 0:796d0f61a05b 1782 #define POLARSSL_SHA256_C
HannesTschofenig 0:796d0f61a05b 1783
HannesTschofenig 0:796d0f61a05b 1784 /**
HannesTschofenig 0:796d0f61a05b 1785 * \def POLARSSL_SHA512_C
HannesTschofenig 0:796d0f61a05b 1786 *
HannesTschofenig 0:796d0f61a05b 1787 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
HannesTschofenig 0:796d0f61a05b 1788 * (Used to be POLARSSL_SHA4_C)
HannesTschofenig 0:796d0f61a05b 1789 *
HannesTschofenig 0:796d0f61a05b 1790 * Module: library/sha512.c
HannesTschofenig 0:796d0f61a05b 1791 * Caller: library/entropy.c
HannesTschofenig 0:796d0f61a05b 1792 * library/md.c
HannesTschofenig 0:796d0f61a05b 1793 * library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1794 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1795 *
HannesTschofenig 0:796d0f61a05b 1796 * This module adds support for SHA-384 and SHA-512.
HannesTschofenig 0:796d0f61a05b 1797 */
HannesTschofenig 0:796d0f61a05b 1798 //#define POLARSSL_SHA512_C
HannesTschofenig 0:796d0f61a05b 1799
HannesTschofenig 0:796d0f61a05b 1800 /**
HannesTschofenig 0:796d0f61a05b 1801 * \def POLARSSL_SSL_CACHE_C
HannesTschofenig 0:796d0f61a05b 1802 *
HannesTschofenig 0:796d0f61a05b 1803 * Enable simple SSL cache implementation.
HannesTschofenig 0:796d0f61a05b 1804 *
HannesTschofenig 0:796d0f61a05b 1805 * Module: library/ssl_cache.c
HannesTschofenig 0:796d0f61a05b 1806 * Caller:
HannesTschofenig 0:796d0f61a05b 1807 *
HannesTschofenig 0:796d0f61a05b 1808 * Requires: POLARSSL_SSL_CACHE_C
HannesTschofenig 0:796d0f61a05b 1809 */
HannesTschofenig 0:796d0f61a05b 1810 #define POLARSSL_SSL_CACHE_C
HannesTschofenig 0:796d0f61a05b 1811
HannesTschofenig 0:796d0f61a05b 1812 /**
HannesTschofenig 0:796d0f61a05b 1813 * \def POLARSSL_SSL_CLI_C
HannesTschofenig 0:796d0f61a05b 1814 *
HannesTschofenig 0:796d0f61a05b 1815 * Enable the SSL/TLS client code.
HannesTschofenig 0:796d0f61a05b 1816 *
HannesTschofenig 0:796d0f61a05b 1817 * Module: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1818 * Caller:
HannesTschofenig 0:796d0f61a05b 1819 *
HannesTschofenig 0:796d0f61a05b 1820 * Requires: POLARSSL_SSL_TLS_C
HannesTschofenig 0:796d0f61a05b 1821 *
HannesTschofenig 0:796d0f61a05b 1822 * This module is required for SSL/TLS client support.
HannesTschofenig 0:796d0f61a05b 1823 */
HannesTschofenig 0:796d0f61a05b 1824 #define POLARSSL_SSL_CLI_C
HannesTschofenig 0:796d0f61a05b 1825
HannesTschofenig 0:796d0f61a05b 1826 /**
HannesTschofenig 0:796d0f61a05b 1827 * \def POLARSSL_SSL_SRV_C
HannesTschofenig 0:796d0f61a05b 1828 *
HannesTschofenig 0:796d0f61a05b 1829 * Enable the SSL/TLS server code.
HannesTschofenig 0:796d0f61a05b 1830 *
HannesTschofenig 0:796d0f61a05b 1831 * Module: library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1832 * Caller:
HannesTschofenig 0:796d0f61a05b 1833 *
HannesTschofenig 0:796d0f61a05b 1834 * Requires: POLARSSL_SSL_TLS_C
HannesTschofenig 0:796d0f61a05b 1835 *
HannesTschofenig 0:796d0f61a05b 1836 * This module is required for SSL/TLS server support.
HannesTschofenig 0:796d0f61a05b 1837 */
HannesTschofenig 0:796d0f61a05b 1838 //#define POLARSSL_SSL_SRV_C
HannesTschofenig 0:796d0f61a05b 1839
HannesTschofenig 0:796d0f61a05b 1840 /**
HannesTschofenig 0:796d0f61a05b 1841 * \def POLARSSL_SSL_TLS_C
HannesTschofenig 0:796d0f61a05b 1842 *
HannesTschofenig 0:796d0f61a05b 1843 * Enable the generic SSL/TLS code.
HannesTschofenig 0:796d0f61a05b 1844 *
HannesTschofenig 0:796d0f61a05b 1845 * Module: library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1846 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1847 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1848 *
HannesTschofenig 0:796d0f61a05b 1849 * Requires: POLARSSL_CIPHER_C, POLARSSL_MD_C
HannesTschofenig 0:796d0f61a05b 1850 * and at least one of the POLARSSL_SSL_PROTO_* defines
HannesTschofenig 0:796d0f61a05b 1851 *
HannesTschofenig 0:796d0f61a05b 1852 * This module is required for SSL/TLS.
HannesTschofenig 0:796d0f61a05b 1853 */
HannesTschofenig 0:796d0f61a05b 1854 #define POLARSSL_SSL_TLS_C
HannesTschofenig 0:796d0f61a05b 1855
HannesTschofenig 0:796d0f61a05b 1856 /**
HannesTschofenig 0:796d0f61a05b 1857 * \def POLARSSL_THREADING_C
HannesTschofenig 0:796d0f61a05b 1858 *
HannesTschofenig 0:796d0f61a05b 1859 * Enable the threading abstraction layer.
HannesTschofenig 0:796d0f61a05b 1860 * By default PolarSSL assumes it is used in a non-threaded environment or that
HannesTschofenig 0:796d0f61a05b 1861 * contexts are not shared between threads. If you do intend to use contexts
HannesTschofenig 0:796d0f61a05b 1862 * between threads, you will need to enable this layer to prevent race
HannesTschofenig 0:796d0f61a05b 1863 * conditions.
HannesTschofenig 0:796d0f61a05b 1864 *
HannesTschofenig 0:796d0f61a05b 1865 * Module: library/threading.c
HannesTschofenig 0:796d0f61a05b 1866 *
HannesTschofenig 0:796d0f61a05b 1867 * This allows different threading implementations (self-implemented or
HannesTschofenig 0:796d0f61a05b 1868 * provided).
HannesTschofenig 0:796d0f61a05b 1869 *
HannesTschofenig 0:796d0f61a05b 1870 * You will have to enable either POLARSSL_THREADING_ALT or
HannesTschofenig 0:796d0f61a05b 1871 * POLARSSL_THREADING_PTHREAD.
HannesTschofenig 0:796d0f61a05b 1872 *
HannesTschofenig 0:796d0f61a05b 1873 * Enable this layer to allow use of mutexes within PolarSSL
HannesTschofenig 0:796d0f61a05b 1874 */
HannesTschofenig 0:796d0f61a05b 1875 //#define POLARSSL_THREADING_C
HannesTschofenig 0:796d0f61a05b 1876
HannesTschofenig 0:796d0f61a05b 1877 /**
HannesTschofenig 0:796d0f61a05b 1878 * \def POLARSSL_TIMING_C
HannesTschofenig 0:796d0f61a05b 1879 *
HannesTschofenig 0:796d0f61a05b 1880 * Enable the portable timing interface.
HannesTschofenig 0:796d0f61a05b 1881 *
HannesTschofenig 0:796d0f61a05b 1882 * Module: library/timing.c
HannesTschofenig 0:796d0f61a05b 1883 * Caller: library/havege.c
HannesTschofenig 0:796d0f61a05b 1884 *
HannesTschofenig 0:796d0f61a05b 1885 * This module is used by the HAVEGE random number generator.
HannesTschofenig 0:796d0f61a05b 1886 */
HannesTschofenig 0:796d0f61a05b 1887 //#define POLARSSL_TIMING_C
HannesTschofenig 0:796d0f61a05b 1888
HannesTschofenig 0:796d0f61a05b 1889 /**
HannesTschofenig 0:796d0f61a05b 1890 * \def POLARSSL_VERSION_C
HannesTschofenig 0:796d0f61a05b 1891 *
HannesTschofenig 0:796d0f61a05b 1892 * Enable run-time version information.
HannesTschofenig 0:796d0f61a05b 1893 *
HannesTschofenig 0:796d0f61a05b 1894 * Module: library/version.c
HannesTschofenig 0:796d0f61a05b 1895 *
HannesTschofenig 0:796d0f61a05b 1896 * This module provides run-time version information.
HannesTschofenig 0:796d0f61a05b 1897 */
HannesTschofenig 0:796d0f61a05b 1898 //#define POLARSSL_VERSION_C
HannesTschofenig 0:796d0f61a05b 1899
HannesTschofenig 0:796d0f61a05b 1900 /**
HannesTschofenig 0:796d0f61a05b 1901 * \def POLARSSL_X509_USE_C
HannesTschofenig 0:796d0f61a05b 1902 *
HannesTschofenig 0:796d0f61a05b 1903 * Enable X.509 core for using certificates.
HannesTschofenig 0:796d0f61a05b 1904 *
HannesTschofenig 0:796d0f61a05b 1905 * Module: library/x509.c
HannesTschofenig 0:796d0f61a05b 1906 * Caller: library/x509_crl.c
HannesTschofenig 0:796d0f61a05b 1907 * library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1908 * library/x509_csr.c
HannesTschofenig 0:796d0f61a05b 1909 *
HannesTschofenig 0:796d0f61a05b 1910 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_BIGNUM_C, POLARSSL_OID_C,
HannesTschofenig 0:796d0f61a05b 1911 * POLARSSL_PK_PARSE_C
HannesTschofenig 0:796d0f61a05b 1912 *
HannesTschofenig 0:796d0f61a05b 1913 * This module is required for the X.509 parsing modules.
HannesTschofenig 0:796d0f61a05b 1914 */
HannesTschofenig 0:796d0f61a05b 1915 //#define POLARSSL_X509_USE_C
HannesTschofenig 0:796d0f61a05b 1916
HannesTschofenig 0:796d0f61a05b 1917 /**
HannesTschofenig 0:796d0f61a05b 1918 * \def POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 1919 *
HannesTschofenig 0:796d0f61a05b 1920 * Enable X.509 certificate parsing.
HannesTschofenig 0:796d0f61a05b 1921 *
HannesTschofenig 0:796d0f61a05b 1922 * Module: library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1923 * Caller: library/ssl_cli.c
HannesTschofenig 0:796d0f61a05b 1924 * library/ssl_srv.c
HannesTschofenig 0:796d0f61a05b 1925 * library/ssl_tls.c
HannesTschofenig 0:796d0f61a05b 1926 *
HannesTschofenig 0:796d0f61a05b 1927 * Requires: POLARSSL_X509_USE_C
HannesTschofenig 0:796d0f61a05b 1928 *
HannesTschofenig 0:796d0f61a05b 1929 * This module is required for X.509 certificate parsing.
HannesTschofenig 0:796d0f61a05b 1930 */
HannesTschofenig 0:796d0f61a05b 1931 //#define POLARSSL_X509_CRT_PARSE_C
HannesTschofenig 0:796d0f61a05b 1932
HannesTschofenig 0:796d0f61a05b 1933 /**
HannesTschofenig 0:796d0f61a05b 1934 * \def POLARSSL_X509_CRL_PARSE_C
HannesTschofenig 0:796d0f61a05b 1935 *
HannesTschofenig 0:796d0f61a05b 1936 * Enable X.509 CRL parsing.
HannesTschofenig 0:796d0f61a05b 1937 *
HannesTschofenig 0:796d0f61a05b 1938 * Module: library/x509_crl.c
HannesTschofenig 0:796d0f61a05b 1939 * Caller: library/x509_crt.c
HannesTschofenig 0:796d0f61a05b 1940 *
HannesTschofenig 0:796d0f61a05b 1941 * Requires: POLARSSL_X509_USE_C
HannesTschofenig 0:796d0f61a05b 1942 *
HannesTschofenig 0:796d0f61a05b 1943 * This module is required for X.509 CRL parsing.
HannesTschofenig 0:796d0f61a05b 1944 */
HannesTschofenig 0:796d0f61a05b 1945 //#define POLARSSL_X509_CRL_PARSE_C
HannesTschofenig 0:796d0f61a05b 1946
HannesTschofenig 0:796d0f61a05b 1947 /**
HannesTschofenig 0:796d0f61a05b 1948 * \def POLARSSL_X509_CSR_PARSE_C
HannesTschofenig 0:796d0f61a05b 1949 *
HannesTschofenig 0:796d0f61a05b 1950 * Enable X.509 Certificate Signing Request (CSR) parsing.
HannesTschofenig 0:796d0f61a05b 1951 *
HannesTschofenig 0:796d0f61a05b 1952 * Module: library/x509_csr.c
HannesTschofenig 0:796d0f61a05b 1953 * Caller: library/x509_crt_write.c
HannesTschofenig 0:796d0f61a05b 1954 *
HannesTschofenig 0:796d0f61a05b 1955 * Requires: POLARSSL_X509_USE_C
HannesTschofenig 0:796d0f61a05b 1956 *
HannesTschofenig 0:796d0f61a05b 1957 * This module is used for reading X.509 certificate request.
HannesTschofenig 0:796d0f61a05b 1958 */
HannesTschofenig 0:796d0f61a05b 1959 //#define POLARSSL_X509_CSR_PARSE_C
HannesTschofenig 0:796d0f61a05b 1960
HannesTschofenig 0:796d0f61a05b 1961 /**
HannesTschofenig 0:796d0f61a05b 1962 * \def POLARSSL_X509_CREATE_C
HannesTschofenig 0:796d0f61a05b 1963 *
HannesTschofenig 0:796d0f61a05b 1964 * Enable X.509 core for creating certificates.
HannesTschofenig 0:796d0f61a05b 1965 *
HannesTschofenig 0:796d0f61a05b 1966 * Module: library/x509_create.c
HannesTschofenig 0:796d0f61a05b 1967 *
HannesTschofenig 0:796d0f61a05b 1968 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C, POLARSSL_PK_WRITE_C
HannesTschofenig 0:796d0f61a05b 1969 *
HannesTschofenig 0:796d0f61a05b 1970 * This module is the basis for creating X.509 certificates and CSRs.
HannesTschofenig 0:796d0f61a05b 1971 */
HannesTschofenig 0:796d0f61a05b 1972 //#define POLARSSL_X509_CREATE_C
HannesTschofenig 0:796d0f61a05b 1973
HannesTschofenig 0:796d0f61a05b 1974 /**
HannesTschofenig 0:796d0f61a05b 1975 * \def POLARSSL_X509_CRT_WRITE_C
HannesTschofenig 0:796d0f61a05b 1976 *
HannesTschofenig 0:796d0f61a05b 1977 * Enable creating X.509 certificates.
HannesTschofenig 0:796d0f61a05b 1978 *
HannesTschofenig 0:796d0f61a05b 1979 * Module: library/x509_crt_write.c
HannesTschofenig 0:796d0f61a05b 1980 *
HannesTschofenig 0:796d0f61a05b 1981 * Requires: POLARSSL_CREATE_C
HannesTschofenig 0:796d0f61a05b 1982 *
HannesTschofenig 0:796d0f61a05b 1983 * This module is required for X.509 certificate creation.
HannesTschofenig 0:796d0f61a05b 1984 */
HannesTschofenig 0:796d0f61a05b 1985 //#define POLARSSL_X509_CRT_WRITE_C
HannesTschofenig 0:796d0f61a05b 1986
HannesTschofenig 0:796d0f61a05b 1987 /**
HannesTschofenig 0:796d0f61a05b 1988 * \def POLARSSL_X509_CSR_WRITE_C
HannesTschofenig 0:796d0f61a05b 1989 *
HannesTschofenig 0:796d0f61a05b 1990 * Enable creating X.509 Certificate Signing Requests (CSR).
HannesTschofenig 0:796d0f61a05b 1991 *
HannesTschofenig 0:796d0f61a05b 1992 * Module: library/x509_csr_write.c
HannesTschofenig 0:796d0f61a05b 1993 *
HannesTschofenig 0:796d0f61a05b 1994 * Requires: POLARSSL_CREATE_C
HannesTschofenig 0:796d0f61a05b 1995 *
HannesTschofenig 0:796d0f61a05b 1996 * This module is required for X.509 certificate request writing.
HannesTschofenig 0:796d0f61a05b 1997 */
HannesTschofenig 0:796d0f61a05b 1998 //#define POLARSSL_X509_CSR_WRITE_C
HannesTschofenig 0:796d0f61a05b 1999
HannesTschofenig 0:796d0f61a05b 2000 /**
HannesTschofenig 0:796d0f61a05b 2001 * \def POLARSSL_XTEA_C
HannesTschofenig 0:796d0f61a05b 2002 *
HannesTschofenig 0:796d0f61a05b 2003 * Enable the XTEA block cipher.
HannesTschofenig 0:796d0f61a05b 2004 *
HannesTschofenig 0:796d0f61a05b 2005 * Module: library/xtea.c
HannesTschofenig 0:796d0f61a05b 2006 * Caller:
HannesTschofenig 0:796d0f61a05b 2007 */
HannesTschofenig 0:796d0f61a05b 2008 //#define POLARSSL_XTEA_C
HannesTschofenig 0:796d0f61a05b 2009
HannesTschofenig 0:796d0f61a05b 2010 /* \} name SECTION: PolarSSL modules */
HannesTschofenig 0:796d0f61a05b 2011
HannesTschofenig 0:796d0f61a05b 2012 /**
HannesTschofenig 0:796d0f61a05b 2013 * \name SECTION: Module configuration options
HannesTschofenig 0:796d0f61a05b 2014 *
HannesTschofenig 0:796d0f61a05b 2015 * This section allows for the setting of module specific sizes and
HannesTschofenig 0:796d0f61a05b 2016 * configuration options. The default values are already present in the
HannesTschofenig 0:796d0f61a05b 2017 * relevant header files and should suffice for the regular use cases.
HannesTschofenig 0:796d0f61a05b 2018 * Our advice is to enable POLARSSL_CONFIG_OPTIONS and change values here
HannesTschofenig 0:796d0f61a05b 2019 * only if you have a good reason and know the consequences.
HannesTschofenig 0:796d0f61a05b 2020 *
HannesTschofenig 0:796d0f61a05b 2021 * If POLARSSL_CONFIG_OPTIONS is undefined here the options in the module
HannesTschofenig 0:796d0f61a05b 2022 * header file take precedence.
HannesTschofenig 0:796d0f61a05b 2023 *
HannesTschofenig 0:796d0f61a05b 2024 * Please check the respective header file for documentation on these
HannesTschofenig 0:796d0f61a05b 2025 * parameters (to prevent duplicate documentation).
HannesTschofenig 0:796d0f61a05b 2026 *
HannesTschofenig 0:796d0f61a05b 2027 * Uncomment POLARSSL_CONFIG_OPTIONS to enable using the values defined here.
HannesTschofenig 0:796d0f61a05b 2028 * \{
HannesTschofenig 0:796d0f61a05b 2029 */
HannesTschofenig 0:796d0f61a05b 2030 #define POLARSSL_CONFIG_OPTIONS /**< Enable config.h module value configuration */
HannesTschofenig 0:796d0f61a05b 2031
HannesTschofenig 0:796d0f61a05b 2032 #if defined(POLARSSL_CONFIG_OPTIONS)
HannesTschofenig 0:796d0f61a05b 2033
HannesTschofenig 0:796d0f61a05b 2034 // MPI / BIGNUM options
HannesTschofenig 0:796d0f61a05b 2035 //
HannesTschofenig 0:796d0f61a05b 2036 #define POLARSSL_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */
HannesTschofenig 0:796d0f61a05b 2037 #define POLARSSL_MPI_MAX_SIZE 512 /**< Maximum number of bytes for usable MPIs. */
HannesTschofenig 0:796d0f61a05b 2038
HannesTschofenig 0:796d0f61a05b 2039 // CTR_DRBG options
HannesTschofenig 0:796d0f61a05b 2040 //
HannesTschofenig 0:796d0f61a05b 2041 #define CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default (48 with SHA-512, 32 with SHA-256) */
HannesTschofenig 0:796d0f61a05b 2042 #define CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
HannesTschofenig 0:796d0f61a05b 2043 #define CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
HannesTschofenig 0:796d0f61a05b 2044 #define CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
HannesTschofenig 0:796d0f61a05b 2045 #define CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
HannesTschofenig 0:796d0f61a05b 2046
HannesTschofenig 0:796d0f61a05b 2047 // HMAC_DRBG options
HannesTschofenig 0:796d0f61a05b 2048 //
HannesTschofenig 0:796d0f61a05b 2049 #define POLARSSL_HMAC_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
HannesTschofenig 0:796d0f61a05b 2050 #define POLARSSL_HMAC_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
HannesTschofenig 0:796d0f61a05b 2051 #define POLARSSL_HMAC_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
HannesTschofenig 0:796d0f61a05b 2052 #define POLARSSL_HMAC_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
HannesTschofenig 0:796d0f61a05b 2053
HannesTschofenig 0:796d0f61a05b 2054 // ECP options
HannesTschofenig 0:796d0f61a05b 2055 //
HannesTschofenig 0:796d0f61a05b 2056 #define POLARSSL_ECP_MAX_BITS 521 /**< Maximum bit size of groups */
HannesTschofenig 0:796d0f61a05b 2057 #define POLARSSL_ECP_WINDOW_SIZE 6 /**< Maximum window size used */
HannesTschofenig 0:796d0f61a05b 2058 #define POLARSSL_ECP_FIXED_POINT_OPTIM 1 /**< Enable fixed-point speed-up */
HannesTschofenig 0:796d0f61a05b 2059
HannesTschofenig 0:796d0f61a05b 2060 // Entropy options
HannesTschofenig 0:796d0f61a05b 2061 //
HannesTschofenig 0:796d0f61a05b 2062 #define ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */
HannesTschofenig 0:796d0f61a05b 2063 #define ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */
HannesTschofenig 0:796d0f61a05b 2064
HannesTschofenig 0:796d0f61a05b 2065 // Memory buffer allocator options
HannesTschofenig 0:796d0f61a05b 2066 #define MEMORY_ALIGN_MULTIPLE 4 /**< Align on multiples of this value */
HannesTschofenig 0:796d0f61a05b 2067
HannesTschofenig 0:796d0f61a05b 2068 // Platform options
HannesTschofenig 0:796d0f61a05b 2069 #define POLARSSL_PLATFORM_STD_MALLOC malloc /**< Default allocator to use, can be undefined */
HannesTschofenig 0:796d0f61a05b 2070 #define POLARSSL_PLATFORM_STD_FREE free /**< Default free to use, can be undefined */
HannesTschofenig 0:796d0f61a05b 2071 #define POLARSSL_PLATFORM_STD_PRINTF printf /**< Default printf to use, can be undefined */
HannesTschofenig 0:796d0f61a05b 2072 #define POLARSSL_PLATFORM_STD_FPRINTF fprintf /**< Default fprintf to use, can be undefined */
HannesTschofenig 0:796d0f61a05b 2073
HannesTschofenig 0:796d0f61a05b 2074 // SSL Cache options
HannesTschofenig 0:796d0f61a05b 2075 //
HannesTschofenig 0:796d0f61a05b 2076 #define SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */
HannesTschofenig 0:796d0f61a05b 2077 #define SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */
HannesTschofenig 0:796d0f61a05b 2078
HannesTschofenig 0:796d0f61a05b 2079 // SSL options
HannesTschofenig 0:796d0f61a05b 2080 //
HannesTschofenig 0:796d0f61a05b 2081 //#define SSL_MAX_CONTENT_LEN 16384 /**< Size of the input / output buffer */
HannesTschofenig 0:796d0f61a05b 2082 #define SSL_MAX_CONTENT_LEN 1024 /**< Size of the input / output buffer */
HannesTschofenig 0:796d0f61a05b 2083 #define SSL_DEFAULT_TICKET_LIFETIME 86400 /**< Lifetime of session tickets (if enabled) */
HannesTschofenig 0:796d0f61a05b 2084
HannesTschofenig 0:796d0f61a05b 2085 #endif /* POLARSSL_CONFIG_OPTIONS */
HannesTschofenig 0:796d0f61a05b 2086
HannesTschofenig 0:796d0f61a05b 2087 /* \} name */
HannesTschofenig 0:796d0f61a05b 2088
HannesTschofenig 0:796d0f61a05b 2089 /*
HannesTschofenig 0:796d0f61a05b 2090 * Sanity checks on defines and dependencies
HannesTschofenig 0:796d0f61a05b 2091 */
HannesTschofenig 0:796d0f61a05b 2092 #if defined(POLARSSL_AESNI_C) && !defined(POLARSSL_HAVE_ASM)
HannesTschofenig 0:796d0f61a05b 2093 #error "POLARSSL_AESNI_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2094 #endif
HannesTschofenig 0:796d0f61a05b 2095
HannesTschofenig 0:796d0f61a05b 2096 #if defined(POLARSSL_CERTS_C) && !defined(POLARSSL_PEM_PARSE_C)
HannesTschofenig 0:796d0f61a05b 2097 #error "POLARSSL_CERTS_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2098 #endif
HannesTschofenig 0:796d0f61a05b 2099
HannesTschofenig 0:796d0f61a05b 2100 #if defined(POLARSSL_CTR_DRBG_C) && !defined(POLARSSL_AES_C)
HannesTschofenig 0:796d0f61a05b 2101 #error "POLARSSL_CTR_DRBG_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2102 #endif
HannesTschofenig 0:796d0f61a05b 2103
HannesTschofenig 0:796d0f61a05b 2104 #if defined(POLARSSL_DHM_C) && !defined(POLARSSL_BIGNUM_C)
HannesTschofenig 0:796d0f61a05b 2105 #error "POLARSSL_DHM_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2106 #endif
HannesTschofenig 0:796d0f61a05b 2107
HannesTschofenig 0:796d0f61a05b 2108 #if defined(POLARSSL_ECDH_C) && !defined(POLARSSL_ECP_C)
HannesTschofenig 0:796d0f61a05b 2109 #error "POLARSSL_ECDH_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2110 #endif
HannesTschofenig 0:796d0f61a05b 2111
HannesTschofenig 0:796d0f61a05b 2112 #if defined(POLARSSL_ECDSA_C) && \
HannesTschofenig 0:796d0f61a05b 2113 ( !defined(POLARSSL_ECP_C) || \
HannesTschofenig 0:796d0f61a05b 2114 !defined(POLARSSL_ASN1_PARSE_C) || \
HannesTschofenig 0:796d0f61a05b 2115 !defined(POLARSSL_ASN1_WRITE_C) )
HannesTschofenig 0:796d0f61a05b 2116 #error "POLARSSL_ECDSA_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2117 #endif
HannesTschofenig 0:796d0f61a05b 2118
HannesTschofenig 0:796d0f61a05b 2119 #if defined(POLARSSL_ECDSA_DETERMINISTIC) && !defined(POLARSSL_HMAC_DRBG_C)
HannesTschofenig 0:796d0f61a05b 2120 #error "POLARSSL_ECDSA_DETERMINISTIC defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2121 #endif
HannesTschofenig 0:796d0f61a05b 2122
HannesTschofenig 0:796d0f61a05b 2123 #if defined(POLARSSL_ECP_C) && ( !defined(POLARSSL_BIGNUM_C) || ( \
HannesTschofenig 0:796d0f61a05b 2124 !defined(POLARSSL_ECP_DP_SECP192R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2125 !defined(POLARSSL_ECP_DP_SECP224R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2126 !defined(POLARSSL_ECP_DP_SECP256R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2127 !defined(POLARSSL_ECP_DP_SECP384R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2128 !defined(POLARSSL_ECP_DP_SECP521R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2129 !defined(POLARSSL_ECP_DP_BP256R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2130 !defined(POLARSSL_ECP_DP_BP384R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2131 !defined(POLARSSL_ECP_DP_BP512R1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2132 !defined(POLARSSL_ECP_DP_M255_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2133 !defined(POLARSSL_ECP_DP_SECP192K1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2134 !defined(POLARSSL_ECP_DP_SECP224K1_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2135 !defined(POLARSSL_ECP_DP_SECP256K1_ENABLED) ) )
HannesTschofenig 0:796d0f61a05b 2136 #error "POLARSSL_ECP_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2137 #endif
HannesTschofenig 0:796d0f61a05b 2138
HannesTschofenig 0:796d0f61a05b 2139 #if defined(POLARSSL_ENTROPY_C) && (!defined(POLARSSL_SHA512_C) && \
HannesTschofenig 0:796d0f61a05b 2140 !defined(POLARSSL_SHA256_C))
HannesTschofenig 0:796d0f61a05b 2141 #error "POLARSSL_ENTROPY_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2142 #endif
HannesTschofenig 0:796d0f61a05b 2143 #if defined(POLARSSL_ENTROPY_C) && defined(POLARSSL_SHA512_C) && \
HannesTschofenig 0:796d0f61a05b 2144 defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 64)
HannesTschofenig 0:796d0f61a05b 2145 #error "CTR_DRBG_ENTROPY_LEN value too high"
HannesTschofenig 0:796d0f61a05b 2146 #endif
HannesTschofenig 0:796d0f61a05b 2147 #if defined(POLARSSL_ENTROPY_C) && !defined(POLARSSL_SHA512_C) && \
HannesTschofenig 0:796d0f61a05b 2148 defined(POLARSSL_CONFIG_OPTIONS) && (CTR_DRBG_ENTROPY_LEN > 32)
HannesTschofenig 0:796d0f61a05b 2149 #error "CTR_DRBG_ENTROPY_LEN value too high"
HannesTschofenig 0:796d0f61a05b 2150 #endif
HannesTschofenig 0:796d0f61a05b 2151 #if defined(POLARSSL_ENTROPY_C) && \
HannesTschofenig 0:796d0f61a05b 2152 defined(POLARSSL_ENTROPY_FORCE_SHA256) && !defined(POLARSSL_SHA256_C)
HannesTschofenig 0:796d0f61a05b 2153 #error "POLARSSL_ENTROPY_FORCE_SHA256 defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2154 #endif
HannesTschofenig 0:796d0f61a05b 2155
HannesTschofenig 0:796d0f61a05b 2156 #if defined(POLARSSL_GCM_C) && ( \
HannesTschofenig 0:796d0f61a05b 2157 !defined(POLARSSL_AES_C) && !defined(POLARSSL_CAMELLIA_C) )
HannesTschofenig 0:796d0f61a05b 2158 #error "POLARSSL_GCM_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2159 #endif
HannesTschofenig 0:796d0f61a05b 2160
HannesTschofenig 0:796d0f61a05b 2161 #if defined(POLARSSL_HAVEGE_C) && !defined(POLARSSL_TIMING_C)
HannesTschofenig 0:796d0f61a05b 2162 #error "POLARSSL_HAVEGE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2163 #endif
HannesTschofenig 0:796d0f61a05b 2164
HannesTschofenig 0:796d0f61a05b 2165 #if defined(POLARSSL_HMAC_DRBG) && !defined(POLARSSL_MD_C)
HannesTschofenig 0:796d0f61a05b 2166 #error "POLARSSL_HMAC_DRBG_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2167 #endif
HannesTschofenig 0:796d0f61a05b 2168
HannesTschofenig 0:796d0f61a05b 2169 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2170 ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_X509_CRT_PARSE_C) )
HannesTschofenig 0:796d0f61a05b 2171 #error "POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2172 #endif
HannesTschofenig 0:796d0f61a05b 2173
HannesTschofenig 0:796d0f61a05b 2174 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2175 ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_X509_CRT_PARSE_C) )
HannesTschofenig 0:796d0f61a05b 2176 #error "POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2177 #endif
HannesTschofenig 0:796d0f61a05b 2178
HannesTschofenig 0:796d0f61a05b 2179 #if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(POLARSSL_DHM_C)
HannesTschofenig 0:796d0f61a05b 2180 #error "POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2181 #endif
HannesTschofenig 0:796d0f61a05b 2182
HannesTschofenig 0:796d0f61a05b 2183 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2184 !defined(POLARSSL_ECDH_C)
HannesTschofenig 0:796d0f61a05b 2185 #error "POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2186 #endif
HannesTschofenig 0:796d0f61a05b 2187
HannesTschofenig 0:796d0f61a05b 2188 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2189 ( !defined(POLARSSL_DHM_C) || !defined(POLARSSL_RSA_C) || \
HannesTschofenig 0:796d0f61a05b 2190 !defined(POLARSSL_X509_CRT_PARSE_C) || !defined(POLARSSL_PKCS1_V15) )
HannesTschofenig 0:796d0f61a05b 2191 #error "POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2192 #endif
HannesTschofenig 0:796d0f61a05b 2193
HannesTschofenig 0:796d0f61a05b 2194 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2195 ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_RSA_C) || \
HannesTschofenig 0:796d0f61a05b 2196 !defined(POLARSSL_X509_CRT_PARSE_C) || !defined(POLARSSL_PKCS1_V15) )
HannesTschofenig 0:796d0f61a05b 2197 #error "POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2198 #endif
HannesTschofenig 0:796d0f61a05b 2199
HannesTschofenig 0:796d0f61a05b 2200 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2201 ( !defined(POLARSSL_ECDH_C) || !defined(POLARSSL_ECDSA_C) || \
HannesTschofenig 0:796d0f61a05b 2202 !defined(POLARSSL_X509_CRT_PARSE_C) )
HannesTschofenig 0:796d0f61a05b 2203 #error "POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2204 #endif
HannesTschofenig 0:796d0f61a05b 2205
HannesTschofenig 0:796d0f61a05b 2206 #if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2207 ( !defined(POLARSSL_RSA_C) || !defined(POLARSSL_X509_CRT_PARSE_C) ||\
HannesTschofenig 0:796d0f61a05b 2208 !defined(POLARSSL_PKCS1_V15) )
HannesTschofenig 0:796d0f61a05b 2209 #error "POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2210 #endif
HannesTschofenig 0:796d0f61a05b 2211
HannesTschofenig 0:796d0f61a05b 2212 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED) && \
HannesTschofenig 0:796d0f61a05b 2213 ( !defined(POLARSSL_RSA_C) || !defined(POLARSSL_X509_CRT_PARSE_C) ||\
HannesTschofenig 0:796d0f61a05b 2214 !defined(POLARSSL_PKCS1_V15) )
HannesTschofenig 0:796d0f61a05b 2215 #error "POLARSSL_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2216 #endif
HannesTschofenig 0:796d0f61a05b 2217
HannesTschofenig 0:796d0f61a05b 2218 #if defined(POLARSSL_MEMORY_BUFFER_ALLOC_C) && \
HannesTschofenig 0:796d0f61a05b 2219 ( !defined(POLARSSL_PLATFORM_C) || !defined(POLARSSL_PLATFORM_MEMORY) )
HannesTschofenig 0:796d0f61a05b 2220 #error "POLARSSL_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2221 #endif
HannesTschofenig 0:796d0f61a05b 2222
HannesTschofenig 0:796d0f61a05b 2223 #if defined(POLARSSL_PADLOCK_C) && !defined(POLARSSL_HAVE_ASM)
HannesTschofenig 0:796d0f61a05b 2224 #error "POLARSSL_PADLOCK_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2225 #endif
HannesTschofenig 0:796d0f61a05b 2226
HannesTschofenig 0:796d0f61a05b 2227 #if defined(POLARSSL_PBKDF2_C) && !defined(POLARSSL_MD_C)
HannesTschofenig 0:796d0f61a05b 2228 #error "POLARSSL_PBKDF2_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2229 #endif
HannesTschofenig 0:796d0f61a05b 2230
HannesTschofenig 0:796d0f61a05b 2231 #if defined(POLARSSL_PEM_PARSE_C) && !defined(POLARSSL_BASE64_C)
HannesTschofenig 0:796d0f61a05b 2232 #error "POLARSSL_PEM_PARSE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2233 #endif
HannesTschofenig 0:796d0f61a05b 2234
HannesTschofenig 0:796d0f61a05b 2235 #if defined(POLARSSL_PEM_WRITE_C) && !defined(POLARSSL_BASE64_C)
HannesTschofenig 0:796d0f61a05b 2236 #error "POLARSSL_PEM_WRITE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2237 #endif
HannesTschofenig 0:796d0f61a05b 2238
HannesTschofenig 0:796d0f61a05b 2239 #if defined(POLARSSL_PK_PARSE_C) && !defined(POLARSSL_PK_C)
HannesTschofenig 0:796d0f61a05b 2240 #error "POLARSSL_PK_PARSE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2241 #endif
HannesTschofenig 0:796d0f61a05b 2242
HannesTschofenig 0:796d0f61a05b 2243 #if defined(POLARSSL_PK_WRITE_C) && !defined(POLARSSL_PK_C)
HannesTschofenig 0:796d0f61a05b 2244 #error "POLARSSL_PK_WRITE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2245 #endif
HannesTschofenig 0:796d0f61a05b 2246
HannesTschofenig 0:796d0f61a05b 2247 #if defined(POLARSSL_PKCS11_C) && !defined(POLARSSL_PK_C)
HannesTschofenig 0:796d0f61a05b 2248 #error "POLARSSL_PKCS11_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2249 #endif
HannesTschofenig 0:796d0f61a05b 2250
HannesTschofenig 0:796d0f61a05b 2251 #if defined(POLARSSL_RSA_C) && ( !defined(POLARSSL_BIGNUM_C) || \
HannesTschofenig 0:796d0f61a05b 2252 !defined(POLARSSL_OID_C) )
HannesTschofenig 0:796d0f61a05b 2253 #error "POLARSSL_RSA_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2254 #endif
HannesTschofenig 0:796d0f61a05b 2255
HannesTschofenig 0:796d0f61a05b 2256 #if defined(POLARSSL_SSL_PROTO_SSL3) && ( !defined(POLARSSL_MD5_C) || \
HannesTschofenig 0:796d0f61a05b 2257 !defined(POLARSSL_SHA1_C) )
HannesTschofenig 0:796d0f61a05b 2258 #error "POLARSSL_SSL_PROTO_SSL3 defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2259 #endif
HannesTschofenig 0:796d0f61a05b 2260
HannesTschofenig 0:796d0f61a05b 2261 #if defined(POLARSSL_SSL_PROTO_TLS1) && ( !defined(POLARSSL_MD5_C) || \
HannesTschofenig 0:796d0f61a05b 2262 !defined(POLARSSL_SHA1_C) )
HannesTschofenig 0:796d0f61a05b 2263 #error "POLARSSL_SSL_PROTO_TLS1 defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2264 #endif
HannesTschofenig 0:796d0f61a05b 2265
HannesTschofenig 0:796d0f61a05b 2266 #if defined(POLARSSL_SSL_PROTO_TLS1_1) && ( !defined(POLARSSL_MD5_C) || \
HannesTschofenig 0:796d0f61a05b 2267 !defined(POLARSSL_SHA1_C) )
HannesTschofenig 0:796d0f61a05b 2268 #error "POLARSSL_SSL_PROTO_TLS1_1 defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2269 #endif
HannesTschofenig 0:796d0f61a05b 2270
HannesTschofenig 0:796d0f61a05b 2271 #if defined(POLARSSL_SSL_PROTO_TLS1_2) && ( !defined(POLARSSL_SHA1_C) && \
HannesTschofenig 0:796d0f61a05b 2272 !defined(POLARSSL_SHA256_C) && !defined(POLARSSL_SHA512_C) )
HannesTschofenig 0:796d0f61a05b 2273 #error "POLARSSL_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2274 #endif
HannesTschofenig 0:796d0f61a05b 2275
HannesTschofenig 0:796d0f61a05b 2276 #if defined(POLARSSL_SSL_PROTO_DTLS) && ( \
HannesTschofenig 0:796d0f61a05b 2277 !defined(POLARSSL_SSL_PROTO_TLS1_1) && \
HannesTschofenig 0:796d0f61a05b 2278 !defined(POLARSSL_SSL_PROTO_TLS1_2) )
HannesTschofenig 0:796d0f61a05b 2279 #error "POLARSSL_SSL_PROTO_DTLS defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2280 #endif
HannesTschofenig 0:796d0f61a05b 2281
HannesTschofenig 0:796d0f61a05b 2282 #if defined(POLARSSL_SSL_CLI_C) && !defined(POLARSSL_SSL_TLS_C)
HannesTschofenig 0:796d0f61a05b 2283 #error "POLARSSL_SSL_CLI_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2284 #endif
HannesTschofenig 0:796d0f61a05b 2285
HannesTschofenig 0:796d0f61a05b 2286 #if defined(POLARSSL_SSL_TLS_C) && ( !defined(POLARSSL_CIPHER_C) || \
HannesTschofenig 0:796d0f61a05b 2287 !defined(POLARSSL_MD_C) )
HannesTschofenig 0:796d0f61a05b 2288 #error "POLARSSL_SSL_TLS_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2289 #endif
HannesTschofenig 0:796d0f61a05b 2290
HannesTschofenig 0:796d0f61a05b 2291 #if defined(POLARSSL_SSL_SRV_C) && !defined(POLARSSL_SSL_TLS_C)
HannesTschofenig 0:796d0f61a05b 2292 #error "POLARSSL_SSL_SRV_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2293 #endif
HannesTschofenig 0:796d0f61a05b 2294
HannesTschofenig 0:796d0f61a05b 2295 #if defined(POLARSSL_SSL_TLS_C) && (!defined(POLARSSL_SSL_PROTO_SSL3) && \
HannesTschofenig 0:796d0f61a05b 2296 !defined(POLARSSL_SSL_PROTO_TLS1) && !defined(POLARSSL_SSL_PROTO_TLS1_1) && \
HannesTschofenig 0:796d0f61a05b 2297 !defined(POLARSSL_SSL_PROTO_TLS1_2))
HannesTschofenig 0:796d0f61a05b 2298 #error "POLARSSL_SSL_TLS_C defined, but no protocols are active"
HannesTschofenig 0:796d0f61a05b 2299 #endif
HannesTschofenig 0:796d0f61a05b 2300
HannesTschofenig 0:796d0f61a05b 2301 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_SSL3) && \
HannesTschofenig 0:796d0f61a05b 2302 defined(POLARSSL_SSL_PROTO_TLS1_1) && !defined(POLARSSL_SSL_PROTO_TLS1))
HannesTschofenig 0:796d0f61a05b 2303 #error "Illegal protocol selection"
HannesTschofenig 0:796d0f61a05b 2304 #endif
HannesTschofenig 0:796d0f61a05b 2305
HannesTschofenig 0:796d0f61a05b 2306 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_TLS1) && \
HannesTschofenig 0:796d0f61a05b 2307 defined(POLARSSL_SSL_PROTO_TLS1_2) && !defined(POLARSSL_SSL_PROTO_TLS1_1))
HannesTschofenig 0:796d0f61a05b 2308 #error "Illegal protocol selection"
HannesTschofenig 0:796d0f61a05b 2309 #endif
HannesTschofenig 0:796d0f61a05b 2310
HannesTschofenig 0:796d0f61a05b 2311 #if defined(POLARSSL_SSL_TLS_C) && (defined(POLARSSL_SSL_PROTO_SSL3) && \
HannesTschofenig 0:796d0f61a05b 2312 defined(POLARSSL_SSL_PROTO_TLS1_2) && (!defined(POLARSSL_SSL_PROTO_TLS1) || \
HannesTschofenig 0:796d0f61a05b 2313 !defined(POLARSSL_SSL_PROTO_TLS1_1)))
HannesTschofenig 0:796d0f61a05b 2314 #error "Illegal protocol selection"
HannesTschofenig 0:796d0f61a05b 2315 #endif
HannesTschofenig 0:796d0f61a05b 2316
HannesTschofenig 0:796d0f61a05b 2317 #if defined(POLARSSL_SSL_SESSION_TICKETS) && defined(POLARSSL_SSL_TLS_C) && \
HannesTschofenig 0:796d0f61a05b 2318 ( !defined(POLARSSL_AES_C) || !defined(POLARSSL_SHA256_C) || \
HannesTschofenig 0:796d0f61a05b 2319 !defined(POLARSSL_CIPHER_MODE_CBC) )
HannesTschofenig 0:796d0f61a05b 2320 #error "POLARSSL_SSL_SESSION_TICKETS_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2321 #endif
HannesTschofenig 0:796d0f61a05b 2322
HannesTschofenig 0:796d0f61a05b 2323 #if defined(POLARSSL_SSL_SERVER_NAME_INDICATION) && \
HannesTschofenig 0:796d0f61a05b 2324 !defined(POLARSSL_X509_CRT_PARSE_C)
HannesTschofenig 0:796d0f61a05b 2325 #error "POLARSSL_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2326 #endif
HannesTschofenig 0:796d0f61a05b 2327
HannesTschofenig 0:796d0f61a05b 2328 #if defined(POLARSSL_THREADING_PTHREAD)
HannesTschofenig 0:796d0f61a05b 2329 #if !defined(POLARSSL_THREADING_C) || defined(POLARSSL_THREADING_IMPL)
HannesTschofenig 0:796d0f61a05b 2330 #error "POLARSSL_THREADING_PTHREAD defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2331 #endif
HannesTschofenig 0:796d0f61a05b 2332 #define POLARSSL_THREADING_IMPL
HannesTschofenig 0:796d0f61a05b 2333 #endif
HannesTschofenig 0:796d0f61a05b 2334
HannesTschofenig 0:796d0f61a05b 2335 #if defined(POLARSSL_THREADING_ALT)
HannesTschofenig 0:796d0f61a05b 2336 #if !defined(POLARSSL_THREADING_C) || defined(POLARSSL_THREADING_IMPL)
HannesTschofenig 0:796d0f61a05b 2337 #error "POLARSSL_THREADING_ALT defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2338 #endif
HannesTschofenig 0:796d0f61a05b 2339 #define POLARSSL_THREADING_IMPL
HannesTschofenig 0:796d0f61a05b 2340 #endif
HannesTschofenig 0:796d0f61a05b 2341
HannesTschofenig 0:796d0f61a05b 2342 #if defined(POLARSSL_THREADING_C) && !defined(POLARSSL_THREADING_IMPL)
HannesTschofenig 0:796d0f61a05b 2343 #error "POLARSSL_THREADING_C defined, single threading implementation required"
HannesTschofenig 0:796d0f61a05b 2344 #endif
HannesTschofenig 0:796d0f61a05b 2345 #undef POLARSSL_THREADING_IMPL
HannesTschofenig 0:796d0f61a05b 2346
HannesTschofenig 0:796d0f61a05b 2347 #if defined(POLARSSL_X509_USE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
HannesTschofenig 0:796d0f61a05b 2348 !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_PARSE_C) || \
HannesTschofenig 0:796d0f61a05b 2349 !defined(POLARSSL_PK_PARSE_C) )
HannesTschofenig 0:796d0f61a05b 2350 #error "POLARSSL_X509_USE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2351 #endif
HannesTschofenig 0:796d0f61a05b 2352
HannesTschofenig 0:796d0f61a05b 2353 #if defined(POLARSSL_X509_CREATE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
HannesTschofenig 0:796d0f61a05b 2354 !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_WRITE_C) || \
HannesTschofenig 0:796d0f61a05b 2355 !defined(POLARSSL_PK_WRITE_C) )
HannesTschofenig 0:796d0f61a05b 2356 #error "POLARSSL_X509_CREATE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2357 #endif
HannesTschofenig 0:796d0f61a05b 2358
HannesTschofenig 0:796d0f61a05b 2359 #if defined(POLARSSL_X509_CRT_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
HannesTschofenig 0:796d0f61a05b 2360 #error "POLARSSL_X509_CRT_PARSE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2361 #endif
HannesTschofenig 0:796d0f61a05b 2362
HannesTschofenig 0:796d0f61a05b 2363 #if defined(POLARSSL_X509_CRL_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
HannesTschofenig 0:796d0f61a05b 2364 #error "POLARSSL_X509_CRL_PARSE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2365 #endif
HannesTschofenig 0:796d0f61a05b 2366
HannesTschofenig 0:796d0f61a05b 2367 #if defined(POLARSSL_X509_CSR_PARSE_C) && ( !defined(POLARSSL_X509_USE_C) )
HannesTschofenig 0:796d0f61a05b 2368 #error "POLARSSL_X509_CSR_PARSE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2369 #endif
HannesTschofenig 0:796d0f61a05b 2370
HannesTschofenig 0:796d0f61a05b 2371 #if defined(POLARSSL_X509_CRT_WRITE_C) && ( !defined(POLARSSL_X509_CREATE_C) )
HannesTschofenig 0:796d0f61a05b 2372 #error "POLARSSL_X509_CRT_WRITE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2373 #endif
HannesTschofenig 0:796d0f61a05b 2374
HannesTschofenig 0:796d0f61a05b 2375 #if defined(POLARSSL_X509_CSR_WRITE_C) && ( !defined(POLARSSL_X509_CREATE_C) )
HannesTschofenig 0:796d0f61a05b 2376 #error "POLARSSL_X509_CSR_WRITE_C defined, but not all prerequisites"
HannesTschofenig 0:796d0f61a05b 2377 #endif
HannesTschofenig 0:796d0f61a05b 2378
HannesTschofenig 0:796d0f61a05b 2379 #endif /* config.h */
HannesTschofenig 0:796d0f61a05b 2380