blob: 0a412b602dc34c87f11f131d806b0a8e0168f462 [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 Bakker0a597072012-09-25 21:55:46 +00006 * Copyright (C) 2006-2012, Brainspark B.V.
Paul Bakkerb96f1542010-07-18 20:36:00 +00007 *
8 * This file is part of PolarSSL (http://www.polarssl.org)
Paul Bakker84f12b72010-07-18 10:13:04 +00009 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
Paul Bakkerb96f1542010-07-18 20:36:00 +000010 *
Paul Bakker77b385e2009-07-28 17:23:11 +000011 * All rights reserved.
Paul Bakkere0ccd0a2009-01-04 16:27:10 +000012 *
Paul Bakkere0ccd0a2009-01-04 16:27:10 +000013 * This program is free software; you can redistribute it and/or modify
14 * it under the terms of the GNU General Public License as published by
15 * the Free Software Foundation; either version 2 of the License, or
16 * (at your option) any later version.
17 *
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
22 *
23 * You should have received a copy of the GNU General Public License along
24 * with this program; if not, write to the Free Software Foundation, Inc.,
25 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
26 *
Paul Bakker5121ce52009-01-03 21:22:43 +000027 * This set of compile-time options may be used to enable
28 * or disable features selectively, and reduce the global
29 * memory footprint.
30 */
Paul Bakker40e46942009-01-03 21:51:57 +000031#ifndef POLARSSL_CONFIG_H
32#define POLARSSL_CONFIG_H
Paul Bakker5121ce52009-01-03 21:22:43 +000033
Paul Bakkercce9d772011-11-18 14:26:47 +000034#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
Paul Bakker5121ce52009-01-03 21:22:43 +000035#define _CRT_SECURE_NO_DEPRECATE 1
36#endif
37
Paul Bakkerf3b86c12011-01-27 15:24:17 +000038/**
Paul Bakker0a62cd12011-01-21 11:00:08 +000039 * \name SECTION: System support
40 *
41 * This section sets system specific settings.
42 * \{
43 */
44
Paul Bakkerf3b86c12011-01-27 15:24:17 +000045/**
46 * \def POLARSSL_HAVE_INT8
Paul Bakker5121ce52009-01-03 21:22:43 +000047 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +000048 * The system uses 8-bit wide native integers.
49 *
50 * Uncomment if native integers are 8-bit wide.
Paul Bakker40e46942009-01-03 21:51:57 +000051#define POLARSSL_HAVE_INT8
Paul Bakker5121ce52009-01-03 21:22:43 +000052 */
53
Paul Bakkerf3b86c12011-01-27 15:24:17 +000054/**
55 * \def POLARSSL_HAVE_INT16
Paul Bakker5121ce52009-01-03 21:22:43 +000056 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +000057 * The system uses 16-bit wide native integers.
58 *
59 * Uncomment if native integers are 16-bit wide.
Paul Bakker40e46942009-01-03 21:51:57 +000060#define POLARSSL_HAVE_INT16
Paul Bakker5121ce52009-01-03 21:22:43 +000061 */
62
Paul Bakkerf3b86c12011-01-27 15:24:17 +000063/**
Paul Bakker62261d62012-10-02 12:19:31 +000064 * \def POLARSSL_HAVE_LONGLONG
Paul Bakker5121ce52009-01-03 21:22:43 +000065 *
Paul Bakker62261d62012-10-02 12:19:31 +000066 * The compiler supports the 'long long' type.
67 * (Only used on 32-bit platforms)
Paul Bakker5121ce52009-01-03 21:22:43 +000068 */
Paul Bakker62261d62012-10-02 12:19:31 +000069#define POLARSSL_HAVE_LONGLONG
Paul Bakker5121ce52009-01-03 21:22:43 +000070
Paul Bakkerf3b86c12011-01-27 15:24:17 +000071/**
72 * \def POLARSSL_HAVE_ASM
73 *
74 * The compiler has support for asm()
75 *
Paul Bakker5121ce52009-01-03 21:22:43 +000076 * Uncomment to enable the use of assembly code.
Paul Bakker68041ec2009-04-19 21:17:55 +000077 *
78 * Requires support for asm() in compiler.
79 *
80 * Used in:
81 * library/timing.c
82 * library/padlock.c
83 * include/polarssl/bn_mul.h
84 *
Paul Bakker5121ce52009-01-03 21:22:43 +000085 */
Paul Bakker40e46942009-01-03 21:51:57 +000086#define POLARSSL_HAVE_ASM
Paul Bakker5121ce52009-01-03 21:22:43 +000087
Paul Bakkerf3b86c12011-01-27 15:24:17 +000088/**
89 * \def POLARSSL_HAVE_SSE2
90 *
Paul Bakkere23c3152012-10-01 14:42:47 +000091 * CPU supports SSE2 instruction set.
Paul Bakkerf3b86c12011-01-27 15:24:17 +000092 *
Paul Bakker5121ce52009-01-03 21:22:43 +000093 * Uncomment if the CPU supports SSE2 (IA-32 specific).
94 *
Paul Bakker40e46942009-01-03 21:51:57 +000095#define POLARSSL_HAVE_SSE2
Paul Bakker5121ce52009-01-03 21:22:43 +000096 */
Paul Bakker0a62cd12011-01-21 11:00:08 +000097/* \} name */
98
Paul Bakkerf3b86c12011-01-27 15:24:17 +000099/**
Paul Bakker0a62cd12011-01-21 11:00:08 +0000100 * \name SECTION: PolarSSL feature support
101 *
102 * This section sets support for features that are or are not needed
103 * within the modules that are enabled.
104 * \{
105 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000106
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000107/**
Paul Bakker15566e42011-04-24 21:19:15 +0000108 * \def POLARSSL_AES_ROM_TABLES
109 *
110 * Store the AES tables in ROM.
111 *
112 * Uncomment this macro to store the AES tables in ROM.
113 *
114#define POLARSSL_AES_ROM_TABLES
115 */
116
117/**
Paul Bakkerb6ecaf52011-04-19 14:29:23 +0000118 * \def POLARSSL_CIPHER_MODE_CFB
119 *
120 * Enable Cipher Feedback mode (CFB) for symmetric ciphers.
121 */
122#define POLARSSL_CIPHER_MODE_CFB
123
124/**
125 * \def POLARSSL_CIPHER_MODE_CTR
126 *
127 * Enable Counter Block Cipher mode (CTR) for symmetric ciphers.
128 */
129#define POLARSSL_CIPHER_MODE_CTR
130
131/**
Paul Bakkerfab5c822012-02-06 16:45:10 +0000132 * \def POLARSSL_CIPHER_NULL_CIPHER
133 *
134 * Enable NULL cipher.
135 * Warning: Only do so when you know what you are doing. This allows for
136 * encryption or channels without any security!
137 *
138 * Requires POLARSSL_ENABLE_WEAK_CIPHERSUITES as well to enable
139 * the following ciphersuites:
Paul Bakker645ce3a2012-10-31 12:32:41 +0000140 * TLS_RSA_WITH_NULL_MD5
141 * TLS_RSA_WITH_NULL_SHA
142 * TLS_RSA_WITH_NULL_SHA256
Paul Bakker41c83d32013-03-20 14:39:14 +0100143 * TLS_ECDHE_RSA_WITH_NULL_SHA
Paul Bakkerfab5c822012-02-06 16:45:10 +0000144 *
145 * Uncomment this macro to enable the NULL cipher and ciphersuites
146#define POLARSSL_CIPHER_NULL_CIPHER
147 */
148
149/**
Paul Bakkerfab5c822012-02-06 16:45:10 +0000150 * \def POLARSSL_ENABLE_WEAK_CIPHERSUITES
151 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000152 * Enable weak ciphersuites in SSL / TLS
Paul Bakkerfab5c822012-02-06 16:45:10 +0000153 * Warning: Only do so when you know what you are doing. This allows for
Paul Bakker9a736322012-11-14 12:39:52 +0000154 * channels with virtually no security at all!
Paul Bakkerfab5c822012-02-06 16:45:10 +0000155 *
156 * This enables the following ciphersuites:
Paul Bakker645ce3a2012-10-31 12:32:41 +0000157 * TLS_RSA_WITH_DES_CBC_SHA
158 * TLS_DHE_RSA_WITH_DES_CBC_SHA
Paul Bakkerfab5c822012-02-06 16:45:10 +0000159 *
160 * Uncomment this macro to enable weak ciphersuites
161#define POLARSSL_ENABLE_WEAK_CIPHERSUITES
162 */
163
164/**
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200165 * \def POLARSSL_KEY_EXCHANGE_PSK_ENABLED
166 *
167 * Enable the PSK based ciphersuite modes in SSL / TLS
168 * In combination with POLARSSL_RSA_C it also enables RSA_PSK ciphersuites
169 * and in combination with POLARSSL_DHM_C it enables the DHE_PSK ciphersuites
170 *
171 * This enables the following ciphersuites:
172 * TLS_PSK_WITH_RC4_128_SHA
173 * TLS_PSK_WITH_3DES_EDE_CBC_SHA
174 * TLS_PSK_WITH_AES_128_CBC_SHA
175 * TLS_PSK_WITH_AES_256_CBC_SHA
176 */
177#define POLARSSL_KEY_EXCHANGE_PSK_ENABLED
178
179/**
Paul Bakker8fe40dc2013-02-02 12:43:08 +0100180 * \def POLARSSL_ERROR_STRERROR_DUMMY
181 *
182 * Enable a dummy error function to make use of error_strerror() in
183 * third party libraries easier.
184 *
185 * Disable if you run into name conflicts and want to really remove the
186 * error_strerror()
187 */
188#define POLARSSL_ERROR_STRERROR_DUMMY
189
190/**
Paul Bakker15566e42011-04-24 21:19:15 +0000191 * \def POLARSSL_GENPRIME
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000192 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000193 * Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C
194 *
Paul Bakker15566e42011-04-24 21:19:15 +0000195 * Enable the RSA prime-number generation code.
Paul Bakker5121ce52009-01-03 21:22:43 +0000196 */
Paul Bakker15566e42011-04-24 21:19:15 +0000197#define POLARSSL_GENPRIME
Paul Bakker5121ce52009-01-03 21:22:43 +0000198
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000199/**
Paul Bakker335db3f2011-04-25 15:28:35 +0000200 * \def POLARSSL_FS_IO
201 *
202 * Enable functions that use the filesystem.
203 */
204#define POLARSSL_FS_IO
205
206/**
Paul Bakker43655f42011-12-15 20:11:16 +0000207 * \def POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
208 *
209 * Do not add default entropy sources. These are the platform specific,
210 * hardclock and HAVEGE based poll functions.
211 *
212 * This is useful to have more control over the added entropy sources in an
213 * application.
214 *
215 * Uncomment this macro to prevent loading of default entropy functions.
216#define POLARSSL_NO_DEFAULT_ENTROPY_SOURCES
217 */
218
219/**
Paul Bakker6083fd22011-12-03 21:45:14 +0000220 * \def POLARSSL_NO_PLATFORM_ENTROPY
221 *
222 * Do not use built-in platform entropy functions.
223 * This is useful if your platform does not support
224 * standards like the /dev/urandom or Windows CryptoAPI.
225 *
226 * Uncomment this macro to disable the built-in platform entropy functions.
227#define POLARSSL_NO_PLATFORM_ENTROPY
228 */
229
230/**
Paul Bakker9dcc3222011-03-08 14:16:06 +0000231 * \def POLARSSL_PKCS1_V21
232 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000233 * Requires: POLARSSL_MD_C, POLARSSL_RSA_C
234 *
Paul Bakker9dcc3222011-03-08 14:16:06 +0000235 * Enable support for PKCS#1 v2.1 encoding.
236 * This enables support for RSAES-OAEP and RSASSA-PSS operations.
237 */
238#define POLARSSL_PKCS1_V21
239
240/**
Paul Bakker0216cc12011-03-26 13:40:23 +0000241 * \def POLARSSL_RSA_NO_CRT
242 *
243 * Do not use the Chinese Remainder Theorem for the RSA private operation.
244 *
245 * Uncomment this macro to disable the use of CRT in RSA.
246 *
247#define POLARSSL_RSA_NO_CRT
248 */
Paul Bakker15566e42011-04-24 21:19:15 +0000249
250/**
251 * \def POLARSSL_SELF_TEST
252 *
253 * Enable the checkup functions (*_self_test).
254 */
255#define POLARSSL_SELF_TEST
Paul Bakker5c721f92011-07-27 16:51:09 +0000256
257/**
Paul Bakker40865c82013-01-31 17:13:13 +0100258 * \def POLARSSL_SSL_ALL_ALERT_MESSAGES
259 *
260 * Enable sending of alert messages in case of encountered errors as per RFC.
261 * If you choose not to send the alert messages, PolarSSL can still communicate
262 * with other servers, only debugging of failures is harder.
263 *
264 * The advantage of not sending alert messages, is that no information is given
265 * about reasons for failures thus preventing adversaries of gaining intel.
266 *
267 * Enable sending of all alert messages
268 */
269#define POLARSSL_SSL_ALERT_MESSAGES
270
271/**
Paul Bakkerd66f0702013-01-31 16:57:45 +0100272 * \def POLARSSL_SSL_DEBUG_ALL
273 *
274 * Enable the debug messages in SSL module for all issues.
275 * Debug messages have been disabled in some places to prevent timing
276 * attacks due to (unbalanced) debugging function calls.
277 *
278 * If you need all error reporting you should enable this during debugging,
279 * but remove this for production servers that should log as well.
280 *
281 * Uncomment this macro to report all debug messages on errors introducing
282 * a timing side-channel.
283 *
284#define POLARSSL_SSL_DEBUG_ALL
285 */
286
287/**
Paul Bakker05ef8352012-05-08 09:17:57 +0000288 * \def POLARSSL_SSL_HW_RECORD_ACCEL
289 *
290 * Enable hooking functions in SSL module for hardware acceleration of
291 * individual records.
292 *
293 * Uncomment this macro to enable hooking functions.
294#define POLARSSL_SSL_HW_RECORD_ACCEL
295 */
296
297/**
Paul Bakker78a8c712013-03-06 17:01:52 +0100298 * \def POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
299 *
300 * Enable support for receiving and parsing SSLv2 Client Hello messages for the
301 * SSL Server module (POLARSSL_SSL_SRV_C)
302 *
303 * Comment this macro to disable support for SSLv2 Client Hello messages.
304 */
305#define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
306
307/**
Paul Bakker5c721f92011-07-27 16:51:09 +0000308 * \def POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
309 *
310 * If set, the X509 parser will not break-off when parsing an X509 certificate
311 * and encountering an unknown critical extension.
312 *
313 * Uncomment to prevent an error.
314 *
315#define POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION
316 */
Paul Bakker2770fbd2012-07-03 13:30:23 +0000317
318/**
319 * \def POLARSSL_ZLIB_SUPPORT
320 *
321 * If set, the SSL/TLS module uses ZLIB to support compression and
322 * decompression of packet data.
323 *
324 * Used in: library/ssl_tls.c
325 * library/ssl_cli.c
326 * library/ssl_srv.c
327 *
328 * This feature requires zlib library and headers to be present.
329 *
330 * Uncomment to enable use of ZLIB
331#define POLARSSL_ZLIB_SUPPORT
332 */
Paul Bakker0a62cd12011-01-21 11:00:08 +0000333/* \} name */
334
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000335/**
Paul Bakker0a62cd12011-01-21 11:00:08 +0000336 * \name SECTION: PolarSSL modules
337 *
338 * This section enables or disables entire modules in PolarSSL
339 * \{
340 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000341
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000342/**
343 * \def POLARSSL_AES_C
344 *
345 * Enable the AES block cipher.
346 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000347 * Module: library/aes.c
348 * Caller: library/ssl_tls.c
Paul Bakker96743fc2011-02-12 14:30:57 +0000349 * library/pem.c
Paul Bakker6083fd22011-12-03 21:45:14 +0000350 * library/ctr_drbg.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000351 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000352 * This module enables the following ciphersuites (if other requisites are
353 * enabled as well):
354 * TLS_RSA_WITH_AES_128_CBC_SHA
355 * TLS_RSA_WITH_AES_256_CBC_SHA
356 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
357 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
358 * TLS_RSA_WITH_AES_128_CBC_SHA256
359 * TLS_RSA_WITH_AES_256_CBC_SHA256
360 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
361 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
362 * TLS_RSA_WITH_AES_128_GCM_SHA256
363 * TLS_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker41c83d32013-03-20 14:39:14 +0100364 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
365 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200366 * TLS_PSK_WITH_AES_128_CBC_SHA
367 * TLS_PSK_WITH_AES_256_CBC_SHA
Paul Bakker6deb37e2013-02-19 13:17:08 +0100368 *
369 * PEM uses AES for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000370 */
Paul Bakker40e46942009-01-03 21:51:57 +0000371#define POLARSSL_AES_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000372
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000373/**
374 * \def POLARSSL_ARC4_C
375 *
376 * Enable the ARCFOUR stream cipher.
377 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000378 * Module: library/arc4.c
379 * Caller: library/ssl_tls.c
380 *
Paul Bakker41c83d32013-03-20 14:39:14 +0100381 * This module enables the following ciphersuites (if other requisites are
382 * enabled as well):
Paul Bakker645ce3a2012-10-31 12:32:41 +0000383 * TLS_RSA_WITH_RC4_128_MD5
384 * TLS_RSA_WITH_RC4_128_SHA
Paul Bakker41c83d32013-03-20 14:39:14 +0100385 * TLS_ECDHE_RSA_WITH_RC4_128_SHA
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200386 * TLS_PSK_WITH_RC4_128_SHA
Paul Bakker5121ce52009-01-03 21:22:43 +0000387 */
Paul Bakker40e46942009-01-03 21:51:57 +0000388#define POLARSSL_ARC4_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000389
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000390/**
Paul Bakkerefc30292011-11-10 14:43:23 +0000391 * \def POLARSSL_ASN1_PARSE_C
392 *
393 * Enable the generic ASN1 parser.
394 *
395 * Module: library/asn1.c
396 * Caller: library/x509parse.c
397 */
398#define POLARSSL_ASN1_PARSE_C
399
400/**
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000401 * \def POLARSSL_ASN1_WRITE_C
402 *
403 * Enable the generic ASN1 writer.
404 *
405 * Module: library/asn1write.c
406 */
407#define POLARSSL_ASN1_WRITE_C
408
409/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000410 * \def POLARSSL_BASE64_C
411 *
412 * Enable the Base64 module.
413 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000414 * Module: library/base64.c
Paul Bakker5690efc2011-05-26 13:16:06 +0000415 * Caller: library/pem.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000416 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000417 * This module is required for PEM support (required by X.509).
Paul Bakker5121ce52009-01-03 21:22:43 +0000418 */
Paul Bakker40e46942009-01-03 21:51:57 +0000419#define POLARSSL_BASE64_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000420
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000421/**
422 * \def POLARSSL_BIGNUM_C
423 *
Paul Bakker9a736322012-11-14 12:39:52 +0000424 * Enable the multi-precision integer library.
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000425 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000426 * Module: library/bignum.c
427 * Caller: library/dhm.c
428 * library/rsa.c
429 * library/ssl_tls.c
430 * library/x509parse.c
431 *
432 * This module is required for RSA and DHM support.
433 */
Paul Bakker40e46942009-01-03 21:51:57 +0000434#define POLARSSL_BIGNUM_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000435
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000436/**
Paul Bakkera9379c02012-07-04 11:02:11 +0000437 * \def POLARSSL_BLOWFISH_C
438 *
439 * Enable the Blowfish block cipher.
440 *
441 * Module: library/blowfish.c
442 */
443#define POLARSSL_BLOWFISH_C
444
445/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000446 * \def POLARSSL_CAMELLIA_C
447 *
448 * Enable the Camellia block cipher.
449 *
Paul Bakker38119b12009-01-10 23:31:23 +0000450 * Module: library/camellia.c
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000451 * Caller: library/ssl_tls.c
Paul Bakker38119b12009-01-10 23:31:23 +0000452 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000453 * This module enables the following ciphersuites (if other requisites are
454 * enabled as well):
455 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA
456 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA
457 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
458 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
459 * TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256
460 * TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256
461 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
462 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
Paul Bakker38119b12009-01-10 23:31:23 +0000463 */
464#define POLARSSL_CAMELLIA_C
465
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000466/**
467 * \def POLARSSL_CERTS_C
468 *
469 * Enable the test certificates.
470 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000471 * Module: library/certs.c
472 * Caller:
473 *
474 * This module is used for testing (ssl_client/server).
475 */
Paul Bakker40e46942009-01-03 21:51:57 +0000476#define POLARSSL_CERTS_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000477
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000478/**
479 * \def POLARSSL_CIPHER_C
480 *
481 * Enable the generic cipher layer.
482 *
Paul Bakker8123e9d2011-01-06 15:37:30 +0000483 * Module: library/cipher.c
484 * Caller:
485 *
486 * Uncomment to enable generic cipher wrappers.
487 */
488#define POLARSSL_CIPHER_C
489
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000490/**
Paul Bakker0e04d0e2011-11-27 14:46:59 +0000491 * \def POLARSSL_CTR_DRBG_C
492 *
493 * Enable the CTR_DRBG AES-256-based random generator
494 *
495 * Module: library/ctr_drbg.c
496 * Caller:
497 *
Paul Bakker6083fd22011-12-03 21:45:14 +0000498 * Requires: POLARSSL_AES_C
499 *
Paul Bakker0e04d0e2011-11-27 14:46:59 +0000500 * This module provides the CTR_DRBG AES-256 random number generator.
501 */
502#define POLARSSL_CTR_DRBG_C
503
504/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000505 * \def POLARSSL_DEBUG_C
506 *
507 * Enable the debug functions.
508 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000509 * Module: library/debug.c
510 * Caller: library/ssl_cli.c
511 * library/ssl_srv.c
512 * library/ssl_tls.c
513 *
514 * This module provides debugging functions.
515 */
Paul Bakker40e46942009-01-03 21:51:57 +0000516#define POLARSSL_DEBUG_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000517
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000518/**
519 * \def POLARSSL_DES_C
520 *
521 * Enable the DES block cipher.
522 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000523 * Module: library/des.c
Paul Bakker6deb37e2013-02-19 13:17:08 +0100524 * Caller: library/pem.c
525 * library/ssl_tls.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000526 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000527 * This module enables the following ciphersuites (if other requisites are
528 * enabled as well):
529 * TLS_RSA_WITH_3DES_EDE_CBC_SHA
530 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
Paul Bakker41c83d32013-03-20 14:39:14 +0100531 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
Paul Bakkerd4a56ec2013-04-16 18:05:29 +0200532 * TLS_PSK_WITH_3DES_EDE_CBC_SHA
Paul Bakker6deb37e2013-02-19 13:17:08 +0100533 *
534 * PEM uses DES/3DES for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000535 */
Paul Bakker40e46942009-01-03 21:51:57 +0000536#define POLARSSL_DES_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000537
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000538/**
539 * \def POLARSSL_DHM_C
540 *
541 * Enable the Diffie-Hellman-Merkle key exchange.
542 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000543 * Module: library/dhm.c
544 * Caller: library/ssl_cli.c
545 * library/ssl_srv.c
546 *
Paul Bakker645ce3a2012-10-31 12:32:41 +0000547 * This module enables the following ciphersuites (if other requisites are
548 * enabled as well):
549 * TLS_DHE_RSA_WITH_DES_CBC_SHA
550 * TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA
551 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA
552 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA
553 * TLS_DHE_RSA_WITH_AES_128_CBC_SHA256
554 * TLS_DHE_RSA_WITH_AES_256_CBC_SHA256
555 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA
556 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA
557 * TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256
558 * TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256
559 * TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
560 * TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker5121ce52009-01-03 21:22:43 +0000561 */
Paul Bakker40e46942009-01-03 21:51:57 +0000562#define POLARSSL_DHM_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000563
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000564/**
Paul Bakkerd589a0d2013-03-13 16:30:17 +0100565 * \def POLARSSL_ECDH_C
566 *
567 * Enable the elliptic curve Diffie-Hellman library.
568 *
569 * Module: library/ecdh.c
Paul Bakker41c83d32013-03-20 14:39:14 +0100570 * Caller: library/ssl_cli.c
571 * library/ssl_srv.c
572 *
573 * This module enables the following ciphersuites (if other requisites are
574 * enabled as well):
575 * TLS_ECDHE_RSA_WITH_NULL_SHA
576 * TLS_ECDHE_RSA_WITH_RC4_128_SHA
577 * TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
578 * TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
579 * TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
Paul Bakkerd589a0d2013-03-13 16:30:17 +0100580 *
581 * Requires: POLARSSL_ECP_C
582 */
583#define POLARSSL_ECDH_C
584
585/**
586 * \def POLARSSL_ECDSA_C
587 *
588 * Enable the elliptic curve DSA library.
589 *
590 * Module: library/ecdsa.c
591 * Caller:
592 *
593 * Requires: POLARSSL_ECP_C
594 */
595#define POLARSSL_ECDSA_C
596
597/**
598 * \def POLARSSL_ECP_C
599 *
600 * Enable the elliptic curve over GF(p) library.
601 *
602 * Module: library/ecp.c
603 * Caller: library/ecdh.c
604 * library/ecdsa.c
605 *
606 * Requires: POLARSSL_BIGNUM_C
607 */
608#define POLARSSL_ECP_C
609
610/**
Paul Bakker6083fd22011-12-03 21:45:14 +0000611 * \def POLARSSL_ENTROPY_C
612 *
613 * Enable the platform-specific entropy code.
614 *
615 * Module: library/entropy.c
616 * Caller:
617 *
618 * Requires: POLARSSL_SHA4_C
619 *
620 * This module provides a generic entropy pool
621 */
622#define POLARSSL_ENTROPY_C
623
624/**
Paul Bakker9d781402011-05-09 16:17:09 +0000625 * \def POLARSSL_ERROR_C
626 *
627 * Enable error code to error string conversion.
628 *
629 * Module: library/error.c
630 * Caller:
631 *
632 * This module enables err_strerror().
633 */
634#define POLARSSL_ERROR_C
635
636/**
Paul Bakker89e80c92012-03-20 13:50:09 +0000637 * \def POLARSSL_GCM_C
638 *
639 * Enable the Galois/Counter Mode (GCM) for AES
640 *
641 * Module: library/gcm.c
642 *
643 * Requires: POLARSSL_AES_C
Paul Bakker645ce3a2012-10-31 12:32:41 +0000644 *
645 * This module enables the following ciphersuites (if other requisites are
646 * enabled as well):
647 * TLS_RSA_WITH_AES_128_GCM_SHA256
648 * TLS_RSA_WITH_AES_256_GCM_SHA384
Paul Bakker89e80c92012-03-20 13:50:09 +0000649 */
650#define POLARSSL_GCM_C
651
652/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000653 * \def POLARSSL_HAVEGE_C
654 *
655 * Enable the HAVEGE random generator.
656 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000657 * Module: library/havege.c
658 * Caller:
659 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000660 * Requires: POLARSSL_TIMING_C
661 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000662 * This module enables the HAVEGE random number generator.
663 */
Paul Bakker40e46942009-01-03 21:51:57 +0000664#define POLARSSL_HAVEGE_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000665
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000666/**
667 * \def POLARSSL_MD_C
668 *
669 * Enable the generic message digest layer.
670 *
Paul Bakker17373852011-01-06 14:20:01 +0000671 * Module: library/md.c
672 * Caller:
673 *
674 * Uncomment to enable generic message digest wrappers.
675 */
676#define POLARSSL_MD_C
677
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000678/**
679 * \def POLARSSL_MD2_C
680 *
681 * Enable the MD2 hash algorithm
682 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000683 * Module: library/md2.c
684 * Caller: library/x509parse.c
685 *
686 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
687 *
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000688#define POLARSSL_MD2_C
Paul Bakker6506aff2009-07-28 20:52:02 +0000689 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000690
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000691/**
692 * \def POLARSSL_MD4_C
693 *
694 * Enable the MD4 hash algorithm
695 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000696 * Module: library/md4.c
697 * Caller: library/x509parse.c
698 *
699 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
700 *
Paul Bakker13e2dfe2009-07-28 07:18:38 +0000701#define POLARSSL_MD4_C
Paul Bakker6506aff2009-07-28 20:52:02 +0000702 */
Paul Bakker5121ce52009-01-03 21:22:43 +0000703
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000704/**
705 * \def POLARSSL_MD5_C
706 *
707 * Enable the MD5 hash algorithm
708 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000709 * Module: library/md5.c
Paul Bakker6deb37e2013-02-19 13:17:08 +0100710 * Caller: library/pem.c
711 * library/ssl_tls.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000712 * library/x509parse.c
713 *
714 * This module is required for SSL/TLS and X.509.
Paul Bakker6deb37e2013-02-19 13:17:08 +0100715 * PEM uses MD5 for decrypting encrypted keys.
Paul Bakker5121ce52009-01-03 21:22:43 +0000716 */
Paul Bakker40e46942009-01-03 21:51:57 +0000717#define POLARSSL_MD5_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000718
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000719/**
720 * \def POLARSSL_NET_C
721 *
722 * Enable the TCP/IP networking routines.
723 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000724 * Module: library/net.c
725 * Caller:
726 *
727 * This module provides TCP/IP networking routines.
728 */
Paul Bakker40e46942009-01-03 21:51:57 +0000729#define POLARSSL_NET_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000730
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000731/**
Paul Bakkerc70b9822013-04-07 22:00:46 +0200732 * \def POLARSSL_OID_C
733 *
734 * Enable the OID database
735 *
736 * Module: library/oid.c
737 * Caller: library/rsa.c
738 * library/x509parse.c
739 * library/x509write.c
740 *
741 * This modules translates between OIDs and internal values.
742 */
743#define POLARSSL_OID_C
744
745/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000746 * \def POLARSSL_PADLOCK_C
747 *
748 * Enable VIA Padlock support on x86.
749 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000750 * Module: library/padlock.c
751 * Caller: library/aes.c
752 *
753 * This modules adds support for the VIA PadLock on x86.
754 */
Paul Bakker40e46942009-01-03 21:51:57 +0000755#define POLARSSL_PADLOCK_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000756
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000757/**
Paul Bakkerf518b162012-08-23 13:03:18 +0000758 * \def POLARSSL_PBKDF2_C
759 *
760 * Enable PKCS#5 PBKDF2 key derivation function
761 *
762 * Module: library/pbkdf2.c
763 *
764 * Requires: POLARSSL_MD_C
765 *
766 * This module adds support for the PKCS#5 PBKDF2 key derivation function.
Paul Bakkerf518b162012-08-23 13:03:18 +0000767 */
Paul Bakker370e90c2013-04-08 15:19:43 +0200768#define POLARSSL_PBKDF2_C
Paul Bakkerf518b162012-08-23 13:03:18 +0000769
770/**
Paul Bakker96743fc2011-02-12 14:30:57 +0000771 * \def POLARSSL_PEM_C
772 *
773 * Enable PEM decoding
774 *
775 * Module: library/pem.c
776 * Caller: library/x509parse.c
777 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000778 * Requires: POLARSSL_BASE64_C
779 *
Paul Bakker96743fc2011-02-12 14:30:57 +0000780 * This modules adds support for decoding PEM files.
781 */
782#define POLARSSL_PEM_C
783
784/**
Paul Bakker5690efc2011-05-26 13:16:06 +0000785 * \def POLARSSL_PKCS11_C
786 *
Paul Bakkereb2c6582012-09-27 19:15:01 +0000787 * Enable wrapper for PKCS#11 smartcard support.
Paul Bakker5690efc2011-05-26 13:16:06 +0000788 *
789 * Module: library/ssl_srv.c
790 * Caller: library/ssl_cli.c
791 * library/ssl_srv.c
792 *
793 * Requires: POLARSSL_SSL_TLS_C
794 *
Paul Bakkereb2c6582012-09-27 19:15:01 +0000795 * This module enables SSL/TLS PKCS #11 smartcard support.
Paul Bakker5690efc2011-05-26 13:16:06 +0000796 * Requires the presence of the PKCS#11 helper library (libpkcs11-helper)
797#define POLARSSL_PKCS11_C
798 */
799
800/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000801 * \def POLARSSL_RSA_C
802 *
803 * Enable the RSA public-key cryptosystem.
804 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000805 * Module: library/rsa.c
806 * Caller: library/ssl_cli.c
807 * library/ssl_srv.c
808 * library/ssl_tls.c
809 * library/x509.c
810 *
Paul Bakkerc70b9822013-04-07 22:00:46 +0200811 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C
Paul Bakker5690efc2011-05-26 13:16:06 +0000812 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000813 * This module is required for SSL/TLS and MD5-signed certificates.
814 */
Paul Bakker40e46942009-01-03 21:51:57 +0000815#define POLARSSL_RSA_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000816
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000817/**
818 * \def POLARSSL_SHA1_C
819 *
820 * Enable the SHA1 cryptographic hash algorithm.
821 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000822 * Module: library/sha1.c
823 * Caller: library/ssl_cli.c
824 * library/ssl_srv.c
825 * library/ssl_tls.c
826 * library/x509parse.c
827 *
828 * This module is required for SSL/TLS and SHA1-signed certificates.
829 */
Paul Bakker40e46942009-01-03 21:51:57 +0000830#define POLARSSL_SHA1_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000831
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000832/**
833 * \def POLARSSL_SHA2_C
834 *
835 * Enable the SHA-224 and SHA-256 cryptographic hash algorithms.
836 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000837 * Module: library/sha2.c
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000838 * Caller: library/md_wrap.c
839 * library/x509parse.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000840 *
841 * This module adds support for SHA-224 and SHA-256.
Paul Bakker769075d2012-11-24 11:26:46 +0100842 * This module is required for the SSL/TLS 1.2 PRF function.
Paul Bakker5121ce52009-01-03 21:22:43 +0000843 */
Paul Bakker40e46942009-01-03 21:51:57 +0000844#define POLARSSL_SHA2_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000845
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000846/**
847 * \def POLARSSL_SHA4_C
848 *
849 * Enable the SHA-384 and SHA-512 cryptographic hash algorithms.
850 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000851 * Module: library/sha4.c
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000852 * Caller: library/md_wrap.c
853 * library/x509parse.c
Paul Bakker5121ce52009-01-03 21:22:43 +0000854 *
855 * This module adds support for SHA-384 and SHA-512.
856 */
Paul Bakker40e46942009-01-03 21:51:57 +0000857#define POLARSSL_SHA4_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000858
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000859/**
Paul Bakker0a597072012-09-25 21:55:46 +0000860 * \def POLARSSL_SSL_CACHE_C
861 *
862 * Enable simple SSL cache implementation.
863 *
864 * Module: library/ssl_cache.c
865 * Caller:
866 *
867 * Requires: POLARSSL_SSL_CACHE_C
868 */
869#define POLARSSL_SSL_CACHE_C
870
871/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000872 * \def POLARSSL_SSL_CLI_C
873 *
874 * Enable the SSL/TLS client code.
875 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000876 * Module: library/ssl_cli.c
877 * Caller:
878 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000879 * Requires: POLARSSL_SSL_TLS_C
880 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000881 * This module is required for SSL/TLS client support.
882 */
Paul Bakker40e46942009-01-03 21:51:57 +0000883#define POLARSSL_SSL_CLI_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000884
Paul Bakker9a736322012-11-14 12:39:52 +0000885/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000886 * \def POLARSSL_SSL_SRV_C
887 *
888 * Enable the SSL/TLS server code.
889 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000890 * Module: library/ssl_srv.c
891 * Caller:
892 *
Paul Bakker5690efc2011-05-26 13:16:06 +0000893 * Requires: POLARSSL_SSL_TLS_C
894 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000895 * This module is required for SSL/TLS server support.
896 */
Paul Bakker40e46942009-01-03 21:51:57 +0000897#define POLARSSL_SSL_SRV_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000898
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000899/**
900 * \def POLARSSL_SSL_TLS_C
901 *
Paul Bakkere29ab062011-05-18 13:26:54 +0000902 * Enable the generic SSL/TLS code.
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000903 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000904 * Module: library/ssl_tls.c
905 * Caller: library/ssl_cli.c
906 * library/ssl_srv.c
907 *
Paul Bakker7ad00f92013-04-18 23:05:25 +0200908 * Requires: POLARSSL_MD5_C, POLARSSL_SHA1_C
Paul Bakker5690efc2011-05-26 13:16:06 +0000909 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000910 * This module is required for SSL/TLS.
911 */
Paul Bakker40e46942009-01-03 21:51:57 +0000912#define POLARSSL_SSL_TLS_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000913
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000914/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000915 * \def POLARSSL_TIMING_C
916 *
917 * Enable the portable timing interface.
918 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000919 * Module: library/timing.c
920 * Caller: library/havege.c
921 *
922 * This module is used by the HAVEGE random number generator.
923 */
Paul Bakker40e46942009-01-03 21:51:57 +0000924#define POLARSSL_TIMING_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000925
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000926/**
927 * \def POLARSSL_VERSION_C
928 *
929 * Enable run-time version information.
930 *
Paul Bakker0a62cd12011-01-21 11:00:08 +0000931 * Module: library/version.c
932 *
933 * This module provides run-time version information.
934 */
935#define POLARSSL_VERSION_C
936
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000937/**
938 * \def POLARSSL_X509_PARSE_C
939 *
940 * Enable X.509 certificate parsing.
941 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000942 * Module: library/x509parse.c
943 * Caller: library/ssl_cli.c
944 * library/ssl_srv.c
945 * library/ssl_tls.c
946 *
Paul Bakkerc70b9822013-04-07 22:00:46 +0200947 * Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_BIGNUM_C, POLARSSL_OID_C,
948 * POLARSSL_RSA_C
Paul Bakker5690efc2011-05-26 13:16:06 +0000949 *
Paul Bakker5121ce52009-01-03 21:22:43 +0000950 * This module is required for X.509 certificate parsing.
951 */
Paul Bakker40e46942009-01-03 21:51:57 +0000952#define POLARSSL_X509_PARSE_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000953
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000954/**
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000955 * \def POLARSSL_X509_WRITE_C
956 *
957 * Enable X.509 buffer writing.
958 *
959 * Module: library/x509write.c
960 *
Paul Bakkerc70b9822013-04-07 22:00:46 +0200961 * Requires: POLARSSL_BIGNUM_C, POLARSSL_OID_C, POLARSSL_RSA_C
Paul Bakkerbdb912d2012-02-13 23:11:30 +0000962 *
963 * This module is required for X.509 certificate request writing.
964 */
965#define POLARSSL_X509_WRITE_C
966
967/**
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000968 * \def POLARSSL_XTEA_C
Paul Bakker5121ce52009-01-03 21:22:43 +0000969 *
Paul Bakkerf3b86c12011-01-27 15:24:17 +0000970 * Enable the XTEA block cipher.
971 *
Paul Bakker7a7c78f2009-01-04 18:15:48 +0000972 * Module: library/xtea.c
973 * Caller:
974 */
975#define POLARSSL_XTEA_C
Manuel Pégourié-Gonnard39d2adb2012-10-31 09:26:55 +0100976
Paul Bakker0a62cd12011-01-21 11:00:08 +0000977/* \} name */
Paul Bakker7a7c78f2009-01-04 18:15:48 +0000978
Paul Bakker7ad00f92013-04-18 23:05:25 +0200979/*
980 * Sanity checks on defines and dependencies
981 */
982#if defined(POLARSSL_DHM_C) && !defined(POLARSSL_BIGNUM_C)
983#error "POLARSSL_DHM_C defined, but not all prerequisites"
984#endif
985
986#if defined(POLARSSL_CTR_DRBG_C) && !defined(POLARSSL_AES_C)
987#error "POLARSSL_CTR_DRBG_C defined, but not all prerequisites"
988#endif
989
990#if defined(POLARSSL_ECDH_C) && !defined(POLARSSL_ECP_C)
991#error "POLARSSL_ECDH_C defined, but not all prerequisites"
992#endif
993
994#if defined(POLARSSL_ECDSA_C) && !defined(POLARSSL_ECP_C)
995#error "POLARSSL_ECDSA_C defined, but not all prerequisites"
996#endif
997
998#if defined(POLARSSL_ECP_C) && !defined(POLARSSL_BIGNUM_C)
999#error "POLARSSL_ECP_C defined, but not all prerequisites"
1000#endif
1001
1002#if defined(POLARSSL_ENTROPY_C) && !defined(POLARSSL_SHA4_C)
1003#error "POLARSSL_ENTROPY_C defined, but not all prerequisites"
1004#endif
1005
1006#if defined(POLARSSL_GCM_C) && !defined(POLARSSL_AES_C)
1007#error "POLARSSL_GCM_C defined, but not all prerequisites"
1008#endif
1009
1010#if defined(POLARSSL_PBKDF2_C) && !defined(POLARSSL_MD_C)
1011#error "POLARSSL_PBKDF2_C defined, but not all prerequisites"
1012#endif
1013
1014#if defined(POLARSSL_PEM_C) && !defined(POLARSSL_PEM_C)
1015#error "POLARSSL_PEM_C defined, but not all prerequisites"
1016#endif
1017
1018#if defined(POLARSSL_PKCS11_C) && !defined(POLARSSL_SSL_TLS_C)
1019#error "POLARSSL_PKCS11_C defined, but not all prerequisites"
1020#endif
1021
1022#if defined(POLARSSL_RSA_C) && ( !defined(POLARSSL_BIGNUM_C) || \
1023 !defined(POLARSSL_OID_C) )
1024#error "POLARSSL_RSA_C defined, but not all prerequisites"
1025#endif
1026
1027#if defined(POLARSSL_SSL_CLI_C) && !defined(POLARSSL_SSL_TLS_C)
1028#error "POLARSSL_SSL_CLI_C defined, but not all prerequisites"
1029#endif
1030
1031#if defined(POLARSSL_SSL_TLS_C) && ( !defined(POLARSSL_MD5_C) || \
1032 !defined(POLARSSL_SHA1_C) )
1033#error "POLARSSL_SSL_TLS_C defined, but not all prerequisites"
1034#endif
1035
1036#if defined(POLARSSL_SSL_SRV_C) && !defined(POLARSSL_SSL_TLS_C)
1037#error "POLARSSL_SSL_SRV_C defined, but not all prerequisites"
1038#endif
1039
1040#if defined(POLARSSL_X509_PARSE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
1041 !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_PARSE_C) || \
1042 !defined(POLARSSL_RSA_C) )
1043#error "POLARSSL_X509_PARSE_C defined, but not all prerequisites"
1044#endif
1045
1046#if defined(POLARSSL_X509_WRITE_C) && ( !defined(POLARSSL_BIGNUM_C) || \
1047 !defined(POLARSSL_OID_C) || !defined(POLARSSL_ASN1_WRITE_C) || \
1048 !defined(POLARSSL_RSA_C) )
1049#error "POLARSSL_X509_WRITE_C defined, but not all prerequisites"
1050#endif
1051
Paul Bakker5121ce52009-01-03 21:22:43 +00001052#endif /* config.h */