blob: 10b4fb1d02ebb0e735347c821ef150a6d57d4898 [file] [log] [blame]
Paul Bakker5121ce52009-01-03 21:22:43 +00001/**
2 * \file config.h
3 *
Paul Bakker37ca75d2011-01-06 12:28:03 +00004 * \brief Configuration options (set of defines)
5 *
Paul Bakker530927b2015-02-13 14:24:10 +01006 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
Paul Bakkerb96f1542010-07-18 20:36:00 +00007 *
Manuel Pégourié-Gonnarde12abf92015-01-28 17:13:45 +00008 * This file is part of mbed TLS (https://polarssl.org)
Paul Bakkere0ccd0a2009-01-04 16:27:10 +00009 *
Paul Bakkere0ccd0a2009-01-04 16:27:10 +000010 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License along
21 * with this program; if not, write to the Free Software Foundation, Inc.,
22 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
23 *
Paul Bakker5121ce52009-01-03 21:22:43 +000024 * This set of compile-time options may be used to enable
25 * or disable features selectively, and reduce the global
26 * memory footprint.
27 */
Paul Bakker40e46942009-01-03 21:51:57 +000028#ifndef POLARSSL_CONFIG_H
29#define POLARSSL_CONFIG_H
Paul Bakker5121ce52009-01-03 21:22:43 +000030
Paul Bakkercce9d772011-11-18 14:26:47 +000031#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
Paul Bakker5121ce52009-01-03 21:22:43 +000032#define _CRT_SECURE_NO_DEPRECATE 1
33#endif
34
Paul Bakkerf3b86c12011-01-27 15:24:17 +000035/**
Paul Bakker0a62cd12011-01-21 11:00:08 +000036 * \name SECTION: System support
37 *
38 * This section sets system specific settings.
39 * \{
40 */
41
Paul Bakkerf3b86c12011-01-27 15:24:17 +000042/**
43 * \def POLARSSL_HAVE_INT8
Paul Bakker5121ce52009-01-03 21:22:43 +000044 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +000045 * The system uses 8-bit wide native integers.
46 *
47 * Uncomment if native integers are 8-bit wide.
Paul Bakker40e46942009-01-03 21:51:57 +000048#define POLARSSL_HAVE_INT8
Paul Bakker5121ce52009-01-03 21:22:43 +000049 */
50
Paul Bakkerf3b86c12011-01-27 15:24:17 +000051/**
52 * \def POLARSSL_HAVE_INT16
Paul Bakker5121ce52009-01-03 21:22:43 +000053 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +000054 * The system uses 16-bit wide native integers.
55 *
56 * Uncomment if native integers are 16-bit wide.
Paul Bakker40e46942009-01-03 21:51:57 +000057#define POLARSSL_HAVE_INT16
Paul Bakker5121ce52009-01-03 21:22:43 +000058 */
59
Paul Bakkerf3b86c12011-01-27 15:24:17 +000060/**
Paul Bakker62261d62012-10-02 12:19:31 +000061 * \def POLARSSL_HAVE_LONGLONG
Paul Bakker5121ce52009-01-03 21:22:43 +000062 *
Paul Bakker62261d62012-10-02 12:19:31 +000063 * The compiler supports the 'long long' type.
64 * (Only used on 32-bit platforms)
Paul Bakker5121ce52009-01-03 21:22:43 +000065 */
Paul Bakker62261d62012-10-02 12:19:31 +000066#define POLARSSL_HAVE_LONGLONG
Paul Bakker5121ce52009-01-03 21:22:43 +000067
Paul Bakkerf3b86c12011-01-27 15:24:17 +000068/**
69 * \def POLARSSL_HAVE_ASM
70 *
71 * The compiler has support for asm()
72 *
Paul Bakker5121ce52009-01-03 21:22:43 +000073 * Uncomment to enable the use of assembly code.
Paul Bakker68041ec2009-04-19 21:17:55 +000074 *
75 * Requires support for asm() in compiler.
76 *
77 * Used in:
78 * library/timing.c
79 * library/padlock.c
80 * include/polarssl/bn_mul.h
81 *
Paul Bakker5121ce52009-01-03 21:22:43 +000082 */
Paul Bakker40e46942009-01-03 21:51:57 +000083#define POLARSSL_HAVE_ASM
Paul Bakker5121ce52009-01-03 21:22:43 +000084
Paul Bakkerf3b86c12011-01-27 15:24:17 +000085/**
86 * \def POLARSSL_HAVE_SSE2
87 *
Paul Bakkere23c3152012-10-01 14:42:47 +000088 * CPU supports SSE2 instruction set.
Paul Bakkerf3b86c12011-01-27 15:24:17 +000089 *
Paul Bakker5121ce52009-01-03 21:22:43 +000090 * Uncomment if the CPU supports SSE2 (IA-32 specific).
91 *
Paul Bakker40e46942009-01-03 21:51:57 +000092#define POLARSSL_HAVE_SSE2
Paul Bakker5121ce52009-01-03 21:22:43 +000093 */
Paul Bakker9ccb2112014-07-07 13:43:31 +020094
95/**
96 * \def POLARSSL_HAVE_READDIR_R
97 *
98 * (Non Windows) System has readdir_r().
99 *
100 * Required for x509_crt_parse_path() in non-Windows systems.
101 *
102 * Comment if your system does not have support.
103 */
104#define POLARSSL_HAVE_READDIR_R
Paul Bakker0a62cd12011-01-21 11:00:08 +0000105/* \} name */
106
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000107/**
Paul Bakker0a62cd12011-01-21 11:00:08 +0000108 * \name SECTION: PolarSSL feature support
109 *
110 * This section sets support for features that are or are not needed
111 * within the modules that are enabled.
112 * \{
113 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000114
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000115/**
Paul Bakker4087c472013-06-12 16:49:10 +0200116 * \def POLARSSL_XXX_ALT
117 *
118 * Uncomment a macro to let PolarSSL use your alternate core implementation of
119 * a symmetric or hash algorithm (e.g. platform specific assembly optimized
120 * implementations). Keep in mind that the function prototypes should remain
121 * the same.
122 *
123 * Example: In case you uncomment POLARSSL_AES_ALT, PolarSSL will no longer
124 * provide the "struct aes_context" definition and omit the base function
125 * declarations and implementations. "aes_alt.h" will be included from
126 * "aes.h" to include the new function definitions.
127 *
128 * Uncomment a macro to enable alternate implementation for core algorithm
129 * functions
130#define POLARSSL_AES_ALT
131#define POLARSSL_ARC4_ALT
132#define POLARSSL_BLOWFISH_ALT
133#define POLARSSL_CAMELLIA_ALT
134#define POLARSSL_DES_ALT
135#define POLARSSL_XTEA_ALT
136#define POLARSSL_MD2_ALT
137#define POLARSSL_MD4_ALT
138#define POLARSSL_MD5_ALT
139#define POLARSSL_SHA1_ALT
140#define POLARSSL_SHA2_ALT
141#define POLARSSL_SHA4_ALT
142 */
143
144/**
Paul Bakker15566e42011-04-24 21:19:15 +0000145 * \def POLARSSL_AES_ROM_TABLES
146 *
147 * Store the AES tables in ROM.
148 *
149 * Uncomment this macro to store the AES tables in ROM.
150 *
151#define POLARSSL_AES_ROM_TABLES
152 */
153
154/**
Paul Bakkerb6ecaf52011-04-19 14:29:23 +0000155 * \def POLARSSL_CIPHER_MODE_CFB
156 *
157 * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
158 */
159#define POLARSSL_CIPHER_MODE_CFB
160
161/**
162 * \def POLARSSL_CIPHER_MODE_CTR
163 *
164 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
165 */
166#define POLARSSL_CIPHER_MODE_CTR
167
168/**
Paul Bakkerfab5c822012-02-06 16:45:10 +0000169 * \def POLARSSL_CIPHER_NULL_CIPHER
170 *
171 * Enable NULL cipher.
172 * Warning: Only do so when you know what you are doing. This allows for
173 * encryption or channels without any security!
174 *
175 * Requires POLARSSL_ENABLE_WEAK_CIPHERSUITES as well to enable
176 * the following ciphersuites:
Paul Bakker645ce3a2012-10-31 12:32:41 +0000177 * TLS_RSA_WITH_NULL_MD5
178 * TLS_RSA_WITH_NULL_SHA
179 * TLS_RSA_WITH_NULL_SHA256
Paul Bakkerfab5c822012-02-06 16:45:10 +0000180 *
181 * Uncomment this macro to enable the NULL cipher and ciphersuites
182#define POLARSSL_CIPHER_NULL_CIPHER
183 */
184
185/**
Paul Bakkerfab5c822012-02-06 16:45:10 +0000186 * \def POLARSSL_ENABLE_WEAK_CIPHERSUITES
187 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000188 * Enable weak ciphersuites in SSL / TLS
Paul Bakkerfab5c822012-02-06 16:45:10 +0000189 * Warning: Only do so when you know what you are doing. This allows for
Paul Bakker9a736322012-11-14 12:39:52 +0000190 * channels with virtually no security at all!
Paul Bakkerfab5c822012-02-06 16:45:10 +0000191 *
192 * This enables the following ciphersuites:
Paul Bakker645ce3a2012-10-31 12:32:41 +0000193 * TLS_RSA_WITH_DES_CBC_SHA
194 * TLS_DHE_RSA_WITH_DES_CBC_SHA
Paul Bakkerfab5c822012-02-06 16:45:10 +0000195 *
196 * Uncomment this macro to enable weak ciphersuites
197#define POLARSSL_ENABLE_WEAK_CIPHERSUITES
198 */
199
200/**
Paul Bakker8fe40dc2013-02-02 12:43:08 +0100201 * \def POLARSSL_ERROR_STRERROR_DUMMY
202 *
203 * Enable a dummy error function to make use of error_strerror() in
204 * third party libraries easier.
205 *
206 * Disable if you run into name conflicts and want to really remove the
207 * error_strerror()
208 */
209#define POLARSSL_ERROR_STRERROR_DUMMY
210
211/**
Paul Bakker15566e42011-04-24 21:19:15 +0000212 * \def POLARSSL_GENPRIME
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000213 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000214 * Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C
215 *
Paul Bakker15566e42011-04-24 21:19:15 +0000216 * Enable the RSA prime-number generation code.
Paul Bakker5121ce52009-01-03 21:22:43 +0000217 */
Paul Bakker15566e42011-04-24 21:19:15 +0000218#define POLARSSL_GENPRIME
Paul Bakker5121ce52009-01-03 21:22:43 +0000219
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000220/**
Paul Bakker335db3f2011-04-25 15:28:35 +0000221 * \def POLARSSL_FS_IO
222 *
223 * Enable functions that use the filesystem.
224 */
225#define POLARSSL_FS_IO
226
227/**
Paul Bakker43655f42011-12-15 20:11:16 +0000228 * \def POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
229 *
230 * Do not add default entropy sources. These are the platform specific,
231 * hardclock and HAVEGE based poll functions.
232 *
233 * This is useful to have more control over the added entropy sources in an
234 * application.
235 *
236 * Uncomment this macro to prevent loading of default entropy functions.
237#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
238 */
239
240/**
Paul Bakker6083fd22011-12-03 21:45:14 +0000241 * \def POLARSSL_NO_PLATFORM_ENTROPY
242 *
243 * Do not use built-in platform entropy functions.
244 * This is useful if your platform does not support
245 * standards like the /dev/urandom or Windows CryptoAPI.
246 *
247 * Uncomment this macro to disable the built-in platform entropy functions.
248#define POLARSSL_NO_PLATFORM_ENTROPY
249 */
250
251/**
Paul Bakker9dcc3222011-03-08 14:16:06 +0000252 * \def POLARSSL_PKCS1_V21
253 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000254 * Requires: POLARSSL_MD_C, POLARSSL_RSA_C
255 *
Paul Bakker9dcc3222011-03-08 14:16:06 +0000256 * Enable support for PKCS#1 v2.1 encoding.
257 * This enables support for RSAES-OAEP and RSASSA-PSS operations.
258 */
259#define POLARSSL_PKCS1_V21
260
261/**
Paul Bakker0216cc12011-03-26 13:40:23 +0000262 * \def POLARSSL_RSA_NO_CRT
263 *
264 * Do not use the Chinese Remainder Theorem for the RSA private operation.
265 *
266 * Uncomment this macro to disable the use of CRT in RSA.
267 *
268#define POLARSSL_RSA_NO_CRT
269 */
Paul Bakker15566e42011-04-24 21:19:15 +0000270
271/**
272 * \def POLARSSL_SELF_TEST
273 *
274 * Enable the checkup functions (*_self_test).
275 */
276#define POLARSSL_SELF_TEST
Paul Bakker5c721f92011-07-27 16:51:09 +0000277
278/**
Paul Bakker40865c82013-01-31 17:13:13 +0100279 * \def POLARSSL_SSL_ALL_ALERT_MESSAGES
280 *
281 * Enable sending of alert messages in case of encountered errors as per RFC.
282 * If you choose not to send the alert messages, PolarSSL can still communicate
283 * with other servers, only debugging of failures is harder.
284 *
285 * The advantage of not sending alert messages, is that no information is given
286 * about reasons for failures thus preventing adversaries of gaining intel.
287 *
288 * Enable sending of all alert messages
289 */
290#define POLARSSL_SSL_ALERT_MESSAGES
291
292/**
Paul Bakkerd66f0702013-01-31 16:57:45 +0100293 * \def POLARSSL_SSL_DEBUG_ALL
294 *
295 * Enable the debug messages in SSL module for all issues.
296 * Debug messages have been disabled in some places to prevent timing
297 * attacks due to (unbalanced) debugging function calls.
298 *
299 * If you need all error reporting you should enable this during debugging,
300 * but remove this for production servers that should log as well.
301 *
302 * Uncomment this macro to report all debug messages on errors introducing
303 * a timing side-channel.
304 *
305#define POLARSSL_SSL_DEBUG_ALL
306 */
307
308/**
Paul Bakker05ef8352012-05-08 09:17:57 +0000309 * \def POLARSSL_SSL_HW_RECORD_ACCEL
310 *
311 * Enable hooking functions in SSL module for hardware acceleration of
312 * individual records.
313 *
314 * Uncomment this macro to enable hooking functions.
315#define POLARSSL_SSL_HW_RECORD_ACCEL
316 */
317
318/**
Paul Bakker78a8c712013-03-06 17:01:52 +0100319 * \def POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
320 *
321 * Enable support for receiving and parsing SSLv2 Client Hello messages for the
322 * SSL Server module (POLARSSL_SSL_SRV_C)
323 *
324 * Comment this macro to disable support for SSLv2 Client Hello messages.
325 */
326#define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
327
328/**
Paul Bakker5c721f92011-07-27 16:51:09 +0000329 * \def POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
330 *
331 * If set, the X509 parser will not break-off when parsing an X509 certificate
332 * and encountering an unknown critical extension.
333 *
334 * Uncomment to prevent an error.
335 *
336#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
337 */
Paul Bakker2770fbd2012-07-03 13:30:23 +0000338
339/**
340 * \def POLARSSL_ZLIB_SUPPORT
341 *
342 * If set, the SSL/TLS module uses ZLIB to support compression and
343 * decompression of packet data.
344 *
Manuel Pégourié-Gonnard588b66f2014-03-11 10:30:38 +0100345 * \warning TLS-level compression MAY REDUCE SECURITY! See for example the
346 * CRIME attack. Before enabling this option, you should examine with care if
347 * CRIME or similar exploits may be a applicable to your use case.
348 *
Paul Bakker2770fbd2012-07-03 13:30:23 +0000349 * Used in: library/ssl_tls.c
350 * library/ssl_cli.c
351 * library/ssl_srv.c
352 *
353 * This feature requires zlib library and headers to be present.
354 *
355 * Uncomment to enable use of ZLIB
356#define POLARSSL_ZLIB_SUPPORT
357 */
Paul Bakker0a62cd12011-01-21 11:00:08 +0000358/* \} name */
359
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000360/**
Paul Bakker0a62cd12011-01-21 11:00:08 +0000361 * \name SECTION: PolarSSL modules
362 *
363 * This section enables or disables entire modules in PolarSSL
364 * \{
365 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000366
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000367/**
368 * \def POLARSSL_AES_C
369 *
370 * Enable the AES block cipher.
371 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000372 * Module: library/aes.c
373 * Caller: library/ssl_tls.c
Paul Bakker96743fc2011-02-12 14:30:57 +0000374 * library/pem.c
Paul Bakker6083fd22011-12-03 21:45:14 +0000375 * library/ctr_drbg.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000376 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000377 * This module enables the following ciphersuites (if other requisites are
378 * enabled as well):
379 * TLS_RSA_WITH_AES_128_CBC_SHA
380 * TLS_RSA_WITH_AES_256_CBC_SHA
381 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
382 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
383 * TLS_RSA_WITH_AES_128_CBC_SHA256
384 * TLS_RSA_WITH_AES_256_CBC_SHA256
385 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
386 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
387 * TLS_RSA_WITH_AES_128_GCM_SHA256
388 * TLS_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker6deb37e2013-02-19 13:17:08 +0100389 *
390 * PEM uses AES for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000391 */
Paul Bakker40e46942009-01-03 21:51:57 +0000392#define POLARSSL_AES_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000393
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000394/**
395 * \def POLARSSL_ARC4_C
396 *
397 * Enable the ARCFOUR stream cipher.
398 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000399 * Module: library/arc4.c
400 * Caller: library/ssl_tls.c
401 *
402 * This module enables the following ciphersuites:
Paul Bakker645ce3a2012-10-31 12:32:41 +0000403 * TLS_RSA_WITH_RC4_128_MD5
404 * TLS_RSA_WITH_RC4_128_SHA
Paul Bakker5121ce52009-01-03 21:22:43 +0000405 */
Paul Bakker40e46942009-01-03 21:51:57 +0000406#define POLARSSL_ARC4_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000407
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000408/**
Paul Bakkerefc30292011-11-10 14:43:23 +0000409 * \def POLARSSL_ASN1_PARSE_C
410 *
411 * Enable the generic ASN1 parser.
412 *
413 * Module: library/asn1.c
414 * Caller: library/x509parse.c
415 */
416#define POLARSSL_ASN1_PARSE_C
417
418/**
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000419 * \def POLARSSL_ASN1_WRITE_C
420 *
421 * Enable the generic ASN1 writer.
422 *
423 * Module: library/asn1write.c
424 */
425#define POLARSSL_ASN1_WRITE_C
426
427/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000428 * \def POLARSSL_BASE64_C
429 *
430 * Enable the Base64 module.
431 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000432 * Module: library/base64.c
Paul Bakker5690efc2011-05-26 13:16:06 +0000433 * Caller: library/pem.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000434 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000435 * This module is required for PEM support (required by X.509).
Paul Bakker5121ce52009-01-03 21:22:43 +0000436 */
Paul Bakker40e46942009-01-03 21:51:57 +0000437#define POLARSSL_BASE64_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000438
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000439/**
440 * \def POLARSSL_BIGNUM_C
441 *
Paul Bakker9a736322012-11-14 12:39:52 +0000442 * Enable the multi-precision integer library.
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000443 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000444 * Module: library/bignum.c
445 * Caller: library/dhm.c
446 * library/rsa.c
447 * library/ssl_tls.c
448 * library/x509parse.c
449 *
450 * This module is required for RSA and DHM support.
451 */
Paul Bakker40e46942009-01-03 21:51:57 +0000452#define POLARSSL_BIGNUM_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000453
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000454/**
Paul Bakkera9379c02012-07-04 11:02:11 +0000455 * \def POLARSSL_BLOWFISH_C
456 *
457 * Enable the Blowfish block cipher.
458 *
459 * Module: library/blowfish.c
460 */
461#define POLARSSL_BLOWFISH_C
462
463/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000464 * \def POLARSSL_CAMELLIA_C
465 *
466 * Enable the Camellia block cipher.
467 *
Paul Bakker38119b12009-01-10 23:31:23 +0000468 * Module: library/camellia.c
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000469 * Caller: library/ssl_tls.c
Paul Bakker38119b12009-01-10 23:31:23 +0000470 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000471 * This module enables the following ciphersuites (if other requisites are
472 * enabled as well):
473 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
474 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
475 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
476 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
477 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
478 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
479 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
480 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
Paul Bakker38119b12009-01-10 23:31:23 +0000481 */
482#define POLARSSL_CAMELLIA_C
483
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000484/**
485 * \def POLARSSL_CERTS_C
486 *
487 * Enable the test certificates.
488 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000489 * Module: library/certs.c
490 * Caller:
491 *
492 * This module is used for testing (ssl_client/server).
493 */
Paul Bakker40e46942009-01-03 21:51:57 +0000494#define POLARSSL_CERTS_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000495
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000496/**
497 * \def POLARSSL_CIPHER_C
498 *
499 * Enable the generic cipher layer.
500 *
Paul Bakker8123e9d2011-01-06 15:37:30 +0000501 * Module: library/cipher.c
502 * Caller:
503 *
504 * Uncomment to enable generic cipher wrappers.
505 */
506#define POLARSSL_CIPHER_C
507
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000508/**
Paul Bakker0e04d0e2011-11-27 14:46:59 +0000509 * \def POLARSSL_CTR_DRBG_C
510 *
511 * Enable the CTR_DRBG AES-256-based random generator
512 *
513 * Module: library/ctr_drbg.c
514 * Caller:
515 *
Paul Bakker6083fd22011-12-03 21:45:14 +0000516 * Requires: POLARSSL_AES_C
517 *
Paul Bakker0e04d0e2011-11-27 14:46:59 +0000518 * This module provides the CTR_DRBG AES-256 random number generator.
519 */
520#define POLARSSL_CTR_DRBG_C
521
522/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000523 * \def POLARSSL_DEBUG_C
524 *
525 * Enable the debug functions.
526 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000527 * Module: library/debug.c
528 * Caller: library/ssl_cli.c
529 * library/ssl_srv.c
530 * library/ssl_tls.c
531 *
532 * This module provides debugging functions.
533 */
Paul Bakker40e46942009-01-03 21:51:57 +0000534#define POLARSSL_DEBUG_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000535
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000536/**
537 * \def POLARSSL_DES_C
538 *
539 * Enable the DES block cipher.
540 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000541 * Module: library/des.c
Paul Bakker6deb37e2013-02-19 13:17:08 +0100542 * Caller: library/pem.c
543 * library/ssl_tls.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000544 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000545 * This module enables the following ciphersuites (if other requisites are
546 * enabled as well):
547 * TLS_RSA_WITH_3DES_EDE_CBC_SHA
548 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
Paul Bakker6deb37e2013-02-19 13:17:08 +0100549 *
550 * PEM uses DES/3DES for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000551 */
Paul Bakker40e46942009-01-03 21:51:57 +0000552#define POLARSSL_DES_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000553
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000554/**
555 * \def POLARSSL_DHM_C
556 *
557 * Enable the Diffie-Hellman-Merkle key exchange.
558 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000559 * Module: library/dhm.c
560 * Caller: library/ssl_cli.c
561 * library/ssl_srv.c
562 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000563 * This module enables the following ciphersuites (if other requisites are
564 * enabled as well):
565 * TLS_DHE_RSA_WITH_DES_CBC_SHA
566 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
567 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
568 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
569 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
570 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
571 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
572 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
573 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
574 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
575 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
576 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker5121ce52009-01-03 21:22:43 +0000577 */
Paul Bakker40e46942009-01-03 21:51:57 +0000578#define POLARSSL_DHM_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000579
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000580/**
Paul Bakker6083fd22011-12-03 21:45:14 +0000581 * \def POLARSSL_ENTROPY_C
582 *
583 * Enable the platform-specific entropy code.
584 *
585 * Module: library/entropy.c
586 * Caller:
587 *
588 * Requires: POLARSSL_SHA4_C
589 *
590 * This module provides a generic entropy pool
591 */
592#define POLARSSL_ENTROPY_C
593
594/**
Paul Bakker9d781402011-05-09 16:17:09 +0000595 * \def POLARSSL_ERROR_C
596 *
597 * Enable error code to error string conversion.
598 *
599 * Module: library/error.c
600 * Caller:
601 *
602 * This module enables err_strerror().
603 */
604#define POLARSSL_ERROR_C
605
606/**
Paul Bakker89e80c92012-03-20 13:50:09 +0000607 * \def POLARSSL_GCM_C
608 *
609 * Enable the Galois/Counter Mode (GCM) for AES
610 *
611 * Module: library/gcm.c
612 *
613 * Requires: POLARSSL_AES_C
Paul Bakker645ce3a2012-10-31 12:32:41 +0000614 *
615 * This module enables the following ciphersuites (if other requisites are
616 * enabled as well):
617 * TLS_RSA_WITH_AES_128_GCM_SHA256
618 * TLS_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker89e80c92012-03-20 13:50:09 +0000619 */
620#define POLARSSL_GCM_C
621
622/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000623 * \def POLARSSL_HAVEGE_C
624 *
625 * Enable the HAVEGE random generator.
626 *
Paul Bakker08f06cf2013-06-06 14:05:26 +0200627 * Warning: the HAVEGE random generator is not suitable for virtualized
628 * environments
629 *
630 * Warning: the HAVEGE random generator is dependent on timing and specific
631 * processor traits. It is therefore not advised to use HAVEGE as
632 * your applications primary random generator or primary entropy pool
633 * input. As a secondary input to your entropy pool, it IS able add
634 * the (limited) extra entropy it provides.
635 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000636 * Module: library/havege.c
637 * Caller:
638 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000639 * Requires: POLARSSL_TIMING_C
640 *
Paul Bakker08f06cf2013-06-06 14:05:26 +0200641 * Uncomment to enable the HAVEGE random generator.
Paul Bakker40e46942009-01-03 21:51:57 +0000642#define POLARSSL_HAVEGE_C
Paul Bakker08f06cf2013-06-06 14:05:26 +0200643 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000644
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000645/**
646 * \def POLARSSL_MD_C
647 *
648 * Enable the generic message digest layer.
649 *
Paul Bakker17373852011-01-06 14:20:01 +0000650 * Module: library/md.c
651 * Caller:
652 *
653 * Uncomment to enable generic message digest wrappers.
654 */
655#define POLARSSL_MD_C
656
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000657/**
658 * \def POLARSSL_MD2_C
659 *
660 * Enable the MD2 hash algorithm
661 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000662 * Module: library/md2.c
663 * Caller: library/x509parse.c
664 *
665 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
666 *
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000667#define POLARSSL_MD2_C
Paul Bakker6506aff2009-07-28 20:52:02 +0000668 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000669
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000670/**
671 * \def POLARSSL_MD4_C
672 *
673 * Enable the MD4 hash algorithm
674 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000675 * Module: library/md4.c
676 * Caller: library/x509parse.c
677 *
678 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
679 *
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000680#define POLARSSL_MD4_C
Paul Bakker6506aff2009-07-28 20:52:02 +0000681 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000682
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000683/**
684 * \def POLARSSL_MD5_C
685 *
686 * Enable the MD5 hash algorithm
687 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000688 * Module: library/md5.c
Paul Bakker6deb37e2013-02-19 13:17:08 +0100689 * Caller: library/pem.c
690 * library/ssl_tls.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000691 * library/x509parse.c
692 *
693 * This module is required for SSL/TLS and X.509.
Paul Bakker6deb37e2013-02-19 13:17:08 +0100694 * PEM uses MD5 for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000695 */
Paul Bakker40e46942009-01-03 21:51:57 +0000696#define POLARSSL_MD5_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000697
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000698/**
699 * \def POLARSSL_NET_C
700 *
701 * Enable the TCP/IP networking routines.
702 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000703 * Module: library/net.c
704 * Caller:
705 *
706 * This module provides TCP/IP networking routines.
707 */
Paul Bakker40e46942009-01-03 21:51:57 +0000708#define POLARSSL_NET_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000709
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000710/**
711 * \def POLARSSL_PADLOCK_C
712 *
713 * Enable VIA Padlock support on x86.
714 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000715 * Module: library/padlock.c
716 * Caller: library/aes.c
717 *
718 * This modules adds support for the VIA PadLock on x86.
719 */
Paul Bakker40e46942009-01-03 21:51:57 +0000720#define POLARSSL_PADLOCK_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000721
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000722/**
Paul Bakkerf518b162012-08-23 13:03:18 +0000723 * \def POLARSSL_PBKDF2_C
724 *
725 * Enable PKCS#5 PBKDF2 key derivation function
Paul Bakker19bd2972013-06-14 12:06:45 +0200726 * DEPRECATED: Use POLARSSL_PKCS5_C instead
Paul Bakkerf518b162012-08-23 13:03:18 +0000727 *
728 * Module: library/pbkdf2.c
729 *
Paul Bakker19bd2972013-06-14 12:06:45 +0200730 * Requires: POLARSSL_PKCS5_C
Paul Bakkerf518b162012-08-23 13:03:18 +0000731 *
732 * This module adds support for the PKCS#5 PBKDF2 key derivation function.
733#define POLARSSL_PBKDF2_C
734 */
735
736/**
Paul Bakker96743fc2011-02-12 14:30:57 +0000737 * \def POLARSSL_PEM_C
738 *
739 * Enable PEM decoding
740 *
741 * Module: library/pem.c
742 * Caller: library/x509parse.c
743 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000744 * Requires: POLARSSL_BASE64_C
745 *
Paul Bakker96743fc2011-02-12 14:30:57 +0000746 * This modules adds support for decoding PEM files.
747 */
748#define POLARSSL_PEM_C
749
750/**
Paul Bakker19bd2972013-06-14 12:06:45 +0200751 * \def POLARSSL_PKCS5_C
752 *
753 * Enable PKCS#5 functions
754 *
755 * Module: library/pkcs5.c
756 *
757 * Requires: POLARSSL_MD_C
758 *
759 * This module adds support for the PKCS#5 functions.
760 */
761#define POLARSSL_PKCS5_C
762
763/**
Paul Bakker5690efc2011-05-26 13:16:06 +0000764 * \def POLARSSL_PKCS11_C
765 *
Paul Bakkereb2c6582012-09-27 19:15:01 +0000766 * Enable wrapper for PKCS#11 smartcard support.
Paul Bakker5690efc2011-05-26 13:16:06 +0000767 *
768 * Module: library/ssl_srv.c
769 * Caller: library/ssl_cli.c
770 * library/ssl_srv.c
771 *
772 * Requires: POLARSSL_SSL_TLS_C
773 *
Paul Bakkereb2c6582012-09-27 19:15:01 +0000774 * This module enables SSL/TLS PKCS #11 smartcard support.
Paul Bakker5690efc2011-05-26 13:16:06 +0000775 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper)
776#define POLARSSL_PKCS11_C
777 */
778
779/**
Paul Bakkercf6e95d2013-06-12 13:18:15 +0200780 * \def POLARSSL_PKCS12_C
781 *
782 * Enable PKCS#12 PBE functions
783 * Adds algorithms for parsing PKCS#8 encrypted private keys
784 *
785 * Module: library/pkcs12.c
786 * Caller: library/x509parse.c
787 *
Paul Bakker602c31b2013-06-18 16:49:18 +0200788 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_CIPHER_C, POLARSSL_MD_C
789 * Can use: POLARSSL_ARC4_C
Paul Bakkercf6e95d2013-06-12 13:18:15 +0200790 *
791 * This module enables PKCS#12 functions.
792 */
793#define POLARSSL_PKCS12_C
794
795/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000796 * \def POLARSSL_RSA_C
797 *
798 * Enable the RSA public-key cryptosystem.
799 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000800 * Module: library/rsa.c
801 * Caller: library/ssl_cli.c
802 * library/ssl_srv.c
803 * library/ssl_tls.c
804 * library/x509.c
805 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000806 * Requires: POLARSSL_BIGNUM_C
807 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000808 * This module is required for SSL/TLS and MD5-signed certificates.
809 */
Paul Bakker40e46942009-01-03 21:51:57 +0000810#define POLARSSL_RSA_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000811
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000812/**
813 * \def POLARSSL_SHA1_C
814 *
815 * Enable the SHA1 cryptographic hash algorithm.
816 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000817 * Module: library/sha1.c
818 * Caller: library/ssl_cli.c
819 * library/ssl_srv.c
820 * library/ssl_tls.c
821 * library/x509parse.c
822 *
823 * This module is required for SSL/TLS and SHA1-signed certificates.
824 */
Paul Bakker40e46942009-01-03 21:51:57 +0000825#define POLARSSL_SHA1_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000826
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000827/**
828 * \def POLARSSL_SHA2_C
829 *
830 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
831 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000832 * Module: library/sha2.c
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000833 * Caller: library/md_wrap.c
834 * library/x509parse.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000835 *
836 * This module adds support for SHA-224 and SHA-256.
Paul Bakker769075d2012-11-24 11:26:46 +0100837 * This module is required for the SSL/TLS 1.2 PRF function.
Paul Bakker5121ce52009-01-03 21:22:43 +0000838 */
Paul Bakker40e46942009-01-03 21:51:57 +0000839#define POLARSSL_SHA2_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000840
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000841/**
842 * \def POLARSSL_SHA4_C
843 *
844 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
845 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000846 * Module: library/sha4.c
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000847 * Caller: library/md_wrap.c
848 * library/x509parse.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000849 *
850 * This module adds support for SHA-384 and SHA-512.
851 */
Paul Bakker40e46942009-01-03 21:51:57 +0000852#define POLARSSL_SHA4_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000853
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000854/**
Paul Bakker0a597072012-09-25 21:55:46 +0000855 * \def POLARSSL_SSL_CACHE_C
856 *
857 * Enable simple SSL cache implementation.
858 *
859 * Module: library/ssl_cache.c
860 * Caller:
861 *
862 * Requires: POLARSSL_SSL_CACHE_C
863 */
864#define POLARSSL_SSL_CACHE_C
865
866/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000867 * \def POLARSSL_SSL_CLI_C
868 *
869 * Enable the SSL/TLS client code.
870 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000871 * Module: library/ssl_cli.c
872 * Caller:
873 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000874 * Requires: POLARSSL_SSL_TLS_C
875 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000876 * This module is required for SSL/TLS client support.
877 */
Paul Bakker40e46942009-01-03 21:51:57 +0000878#define POLARSSL_SSL_CLI_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000879
Paul Bakker9a736322012-11-14 12:39:52 +0000880/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000881 * \def POLARSSL_SSL_SRV_C
882 *
883 * Enable the SSL/TLS server code.
884 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000885 * Module: library/ssl_srv.c
886 * Caller:
887 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000888 * Requires: POLARSSL_SSL_TLS_C
889 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000890 * This module is required for SSL/TLS server support.
891 */
Paul Bakker40e46942009-01-03 21:51:57 +0000892#define POLARSSL_SSL_SRV_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000893
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000894/**
895 * \def POLARSSL_SSL_TLS_C
896 *
Paul Bakkere29ab062011-05-18 13:26:54 +0000897 * Enable the generic SSL/TLS code.
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000898 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000899 * Module: library/ssl_tls.c
900 * Caller: library/ssl_cli.c
901 * library/ssl_srv.c
902 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000903 * Requires: POLARSSL_MD5_C, POLARSSL_SHA1_C, POLARSSL_X509_PARSE_C
904 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000905 * This module is required for SSL/TLS.
906 */
Paul Bakker40e46942009-01-03 21:51:57 +0000907#define POLARSSL_SSL_TLS_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000908
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000909/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000910 * \def POLARSSL_TIMING_C
911 *
912 * Enable the portable timing interface.
913 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000914 * Module: library/timing.c
915 * Caller: library/havege.c
916 *
917 * This module is used by the HAVEGE random number generator.
918 */
Paul Bakker40e46942009-01-03 21:51:57 +0000919#define POLARSSL_TIMING_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000920
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000921/**
922 * \def POLARSSL_VERSION_C
923 *
924 * Enable run-time version information.
925 *
Paul Bakker0a62cd12011-01-21 11:00:08 +0000926 * Module: library/version.c
927 *
928 * This module provides run-time version information.
929 */
930#define POLARSSL_VERSION_C
931
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000932/**
933 * \def POLARSSL_X509_PARSE_C
934 *
935 * Enable X.509 certificate parsing.
936 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000937 * Module: library/x509parse.c
938 * Caller: library/ssl_cli.c
939 * library/ssl_srv.c
940 * library/ssl_tls.c
941 *
Paul Bakkerefc30292011-11-10 14:43:23 +0000942 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_BIGNUM_C, POLARSSL_RSA_C
Paul Bakker5690efc2011-05-26 13:16:06 +0000943 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000944 * This module is required for X.509 certificate parsing.
945 */
Paul Bakker40e46942009-01-03 21:51:57 +0000946#define POLARSSL_X509_PARSE_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000947
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000948/**
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000949 * \def POLARSSL_X509_WRITE_C
950 *
951 * Enable X.509 buffer writing.
952 *
953 * Module: library/x509write.c
954 *
955 * Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C
956 *
957 * This module is required for X.509 certificate request writing.
958 */
959#define POLARSSL_X509_WRITE_C
960
961/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000962 * \def POLARSSL_XTEA_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000963 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000964 * Enable the XTEA block cipher.
965 *
Paul Bakker7a7c78f2009-01-04 18:15:48 +0000966 * Module: library/xtea.c
967 * Caller:
968 */
969#define POLARSSL_XTEA_C
Paul Bakker0a62cd12011-01-21 11:00:08 +0000970/* \} name */
Paul Bakker7a7c78f2009-01-04 18:15:48 +0000971
Paul Bakker6fa54882013-06-17 15:44:03 +0200972/**
973 * \name SECTION: Module configuration options
974 *
975 * This section allows for the setting of module specific sizes and
976 * configuration options. The default values are already present in the
977 * relevant header files and should suffice for the regular use cases.
978 * Our advice is to enable POLARSSL_CONFIG_OPTIONS and change values here
979 * only if you have a good reason and know the consequences.
980 *
981 * If POLARSSL_CONFIG_OPTIONS is undefined here the options in the module
982 * header file take precedence.
983 *
984 * Please check the respective header file for documentation on these
985 * parameters (to prevent duplicate documentation).
986 *
987 * Uncomment POLARSSL_CONFIG_OPTIONS to enable using the values defined here.
988 * \{
989 */
990//#define POLARSSL_CONFIG_OPTIONS /**< Enable config.h module value configuration */
991
992#if defined(POLARSSL_CONFIG_OPTIONS)
993
994// MPI / BIGNUM options
995//
996#define POLARSSL_MPI_WINDOW_SIZE 6 /**< Maximum windows size used. */
997#define POLARSSL_MPI_MAX_SIZE 512 /**< Maximum number of bytes for usable MPIs. */
998
999// CTR_DRBG options
1000//
1001#define CTR_DRBG_ENTROPY_LEN 48 /**< Amount of entropy used per seed by default */
1002#define CTR_DRBG_RESEED_INTERVAL 10000 /**< Interval before reseed is performed by default */
1003#define CTR_DRBG_MAX_INPUT 256 /**< Maximum number of additional input bytes */
1004#define CTR_DRBG_MAX_REQUEST 1024 /**< Maximum number of requested bytes per call */
1005#define CTR_DRBG_MAX_SEED_INPUT 384 /**< Maximum size of (re)seed buffer */
1006
1007// Entropy options
1008//
1009#define ENTROPY_MAX_SOURCES 20 /**< Maximum number of sources supported */
1010#define ENTROPY_MAX_GATHER 128 /**< Maximum amount requested from entropy sources */
1011
1012// SSL Cache options
1013//
1014#define SSL_CACHE_DEFAULT_TIMEOUT 86400 /**< 1 day */
1015#define SSL_CACHE_DEFAULT_MAX_ENTRIES 50 /**< Maximum entries in cache */
1016
1017// SSL options
1018//
1019#define SSL_MAX_CONTENT_LEN 16384 /**< Size of the input / output buffer */
1020
Manuel Pégourié-Gonnard4cdb3ba2014-11-20 17:12:15 +01001021// X509 options
1022//
1023#define POLARSSL_X509_MAX_INTERMEDIATE_CA 8 /**< Maximum number of intermediate CAs in a verification chain. */
1024
Paul Bakker6fa54882013-06-17 15:44:03 +02001025#endif /* POLARSSL_CONFIG_OPTIONS */
1026
1027/* \} name */
Paul Bakker5121ce52009-01-03 21:22:43 +00001028#endif /* config.h */