ssl/tls: add proper const attributes to functions, context members
[tropicssl.git] / include / tropicssl / config.h
blob3cb59c57ddc2f527a5b9fb3add00a8a96c7fb237
1 /**
2 * \file config.h
4 * Based on XySSL: Copyright (C) 2006-2008 Christophe Devine
6 * Copyright (C) 2009 Paul Bakker <polarssl_maintainer at polarssl dot org>
8 * All rights reserved.
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
14 * * Redistributions of source code must retain the above copyright
15 * notice, this list of conditions and the following disclaimer.
16 * * Redistributions in binary form must reproduce the above copyright
17 * notice, this list of conditions and the following disclaimer in the
18 * documentation and/or other materials provided with the distribution.
19 * * Neither the names of PolarSSL or XySSL nor the names of its contributors
20 * may be used to endorse or promote products derived from this software
21 * without specific prior written permission.
23 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
24 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
25 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
26 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
27 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
28 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
29 * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
30 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
31 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
32 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
33 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
35 * This set of compile-time options may be used to enable
36 * or disable features selectively, and reduce the global
37 * memory footprint.
39 #ifndef TROPICSSL_CONFIG_H
40 #define TROPICSSL_CONFIG_H
42 #ifndef _CRT_SECURE_NO_DEPRECATE
43 #define _CRT_SECURE_NO_DEPRECATE 1
44 #endif
47 * Uncomment if native integers are 8-bit wide.
49 #define TROPICSSL_HAVE_INT8
53 * Uncomment if native integers are 16-bit wide.
55 #define TROPICSSL_HAVE_INT16
59 * Uncomment if the compiler supports long long.
61 #define TROPICSSL_HAVE_LONGLONG
65 * Uncomment to enable the use of assembly code.
67 #define TROPICSSL_HAVE_ASM
70 * Uncomment if the CPU supports SSE2 (IA-32 specific).
72 #define TROPICSSL_HAVE_SSE2
76 * Enable all SSL/TLS debugging messages.
78 #define TROPICSSL_DEBUG_MSG
81 * Enable the checkup functions (*_self_test).
83 #define TROPICSSL_SELF_TEST
86 * Enable the prime-number generation code.
88 #define TROPICSSL_GENPRIME
91 * Uncomment this macro to store the AES tables in ROM.
93 #define TROPICSSL_AES_ROM_TABLES
97 * Module: library/aes.c
98 * Caller: library/ssl_tls.c
100 * This module enables the following ciphersuites:
101 * SSL_RSA_AES_128_SHA
102 * SSL_RSA_AES_256_SHA
103 * SSL_EDH_RSA_AES_256_SHA
105 #define TROPICSSL_AES_C
108 * Module: library/arc4.c
109 * Caller: library/ssl_tls.c
111 * This module enables the following ciphersuites:
112 * SSL_RSA_RC4_128_MD5
113 * SSL_RSA_RC4_128_SHA
115 #define TROPICSSL_ARC4_C
118 * Module: library/base64.c
119 * Caller: library/x509parse.c
121 * This module is required for X.509 support.
123 #define TROPICSSL_BASE64_C
126 * Module: library/bignum.c
127 * Caller: library/dhm.c
128 * library/rsa.c
129 * library/ssl_tls.c
130 * library/x509parse.c
132 * This module is required for RSA and DHM support.
134 #define TROPICSSL_BIGNUM_C
137 * Module: library/camellia.c
138 * Caller:
140 * This module enabled the following cipher suites:
142 #define TROPICSSL_CAMELLIA_C
145 * Module: library/certs.c
146 * Caller:
148 * This module is used for testing (ssl_client/server).
150 #define TROPICSSL_CERTS_C
153 * Module: library/debug.c
154 * Caller: library/ssl_cli.c
155 * library/ssl_srv.c
156 * library/ssl_tls.c
158 * This module provides debugging functions.
160 #define TROPICSSL_DEBUG_C
163 * Module: library/des.c
164 * Caller: library/ssl_tls.c
166 * This module enables the following ciphersuites:
167 * SSL_RSA_DES_168_SHA
168 * SSL_EDH_RSA_DES_168_SHA
170 #define TROPICSSL_DES_C
173 * Module: library/dhm.c
174 * Caller: library/ssl_cli.c
175 * library/ssl_srv.c
177 * This module enables the following ciphersuites:
178 * SSL_EDH_RSA_DES_168_SHA
179 * SSL_EDH_RSA_AES_256_SHA
181 #define TROPICSSL_DHM_C
184 * Module: library/havege.c
185 * Caller:
187 * This module enables the HAVEGE random number generator.
189 #define TROPICSSL_HAVEGE_C
192 * Module: library/md2.c
193 * Caller: library/x509parse.c
195 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
197 #define TROPICSSL_MD2_C
201 * Module: library/md4.c
202 * Caller: library/x509parse.c
204 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
206 #define TROPICSSL_MD4_C
210 * Module: library/md5.c
211 * Caller: library/ssl_tls.c
212 * library/x509parse.c
214 * This module is required for SSL/TLS and X.509.
216 #define TROPICSSL_MD5_C
219 * Module: library/net.c
220 * Caller:
222 * This module provides TCP/IP networking routines.
224 #define TROPICSSL_NET_C
227 * Module: library/padlock.c
228 * Caller: library/aes.c
230 * This modules adds support for the VIA PadLock on x86.
232 #define TROPICSSL_PADLOCK_C
235 * Module: library/rsa.c
236 * Caller: library/ssl_cli.c
237 * library/ssl_srv.c
238 * library/ssl_tls.c
239 * library/x509.c
241 * This module is required for SSL/TLS and MD5-signed certificates.
243 #define TROPICSSL_RSA_C
246 * Module: library/sha1.c
247 * Caller: library/ssl_cli.c
248 * library/ssl_srv.c
249 * library/ssl_tls.c
250 * library/x509parse.c
252 * This module is required for SSL/TLS and SHA1-signed certificates.
254 #define TROPICSSL_SHA1_C
257 * Module: library/sha2.c
258 * Caller:
260 * This module adds support for SHA-224 and SHA-256.
262 #define TROPICSSL_SHA2_C
265 * Module: library/sha4.c
266 * Caller:
268 * This module adds support for SHA-384 and SHA-512.
270 #define TROPICSSL_SHA4_C
273 * Module: library/ssl_cli.c
274 * Caller:
276 * This module is required for SSL/TLS client support.
278 #define TROPICSSL_SSL_CLI_C
281 * Module: library/ssl_srv.c
282 * Caller:
284 * This module is required for SSL/TLS server support.
286 #define TROPICSSL_SSL_SRV_C
289 * Module: library/ssl_tls.c
290 * Caller: library/ssl_cli.c
291 * library/ssl_srv.c
293 * This module is required for SSL/TLS.
295 #define TROPICSSL_SSL_TLS_C
298 * Module: library/timing.c
299 * Caller: library/havege.c
301 * This module is used by the HAVEGE random number generator.
303 #define TROPICSSL_TIMING_C
306 * Module: library/x509parse.c
307 * Caller: library/ssl_cli.c
308 * library/ssl_srv.c
309 * library/ssl_tls.c
311 * This module is required for X.509 certificate parsing.
313 #define TROPICSSL_X509_PARSE_C
316 * Module: library/x509_write.c
317 * Caller:
319 * This module is required for X.509 certificate writing.
321 #define TROPICSSL_X509_WRITE_C
324 * Module: library/xtea.c
325 * Caller:
327 #define TROPICSSL_XTEA_C
329 #endif /* config.h */