1/**
2 * \file config.h
3 *
4 *  Based on XySSL: Copyright (C) 2006-2008  Christophe Devine
5 *
6 *  Copyright (C) 2009  Paul Bakker <polarssl_maintainer at polarssl dot org>
7 *
8 *  All rights reserved.
9 *
10 *  Redistribution and use in source and binary forms, with or without
11 *  modification, are permitted provided that the following conditions
12 *  are met:
13 *
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.
22 *
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.
34 *
35 * This set of compile-time options may be used to enable
36 * or disable features selectively, and reduce the global
37 * memory footprint.
38 */
39#ifndef POLARSSL_CONFIG_H
40#define POLARSSL_CONFIG_H
41
42#ifndef _CRT_SECURE_NO_DEPRECATE
43#define _CRT_SECURE_NO_DEPRECATE 1
44#endif
45
46/*
47 * Uncomment if native integers are 8-bit wide.
48 *
49#define POLARSSL_HAVE_INT8
50 */
51
52/*
53 * Uncomment if native integers are 16-bit wide.
54 *
55#define POLARSSL_HAVE_INT16
56 */
57
58/*
59 * Uncomment if the compiler supports long long.
60#define POLARSSL_HAVE_LONGLONG
61 */
62
63
64/*
65 * Uncomment to enable the use of assembly code.
66 */
67/* #define POLARSSL_HAVE_ASM */
68
69/*
70 * Uncomment if the CPU supports SSE2 (IA-32 specific).
71 *
72#define POLARSSL_HAVE_SSE2
73 */
74
75/*
76 * Enable all SSL/TLS debugging messages.
77 */
78#define POLARSSL_DEBUG_MSG
79
80/*
81 * Enable the checkup functions (*_self_test).
82 */
83#define POLARSSL_SELF_TEST
84
85/*
86 * Enable the prime-number generation code.
87 */
88#define POLARSSL_GENPRIME
89
90/*
91 * Uncomment this macro to store the AES tables in ROM.
92 *
93#define POLARSSL_AES_ROM_TABLES
94 */
95
96/*
97 * Module:  library/aes.c
98 * Caller:  library/ssl_tls.c
99 *
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
104 */
105#define POLARSSL_AES_C
106
107/*
108 * Module:  library/arc4.c
109 * Caller:  library/ssl_tls.c
110 *
111 * This module enables the following ciphersuites:
112 *      SSL_RSA_RC4_128_MD5
113 *      SSL_RSA_RC4_128_SHA
114 */
115#define POLARSSL_ARC4_C
116
117/*
118 * Module:  library/base64.c
119 * Caller:  library/x509parse.c
120 *
121 * This module is required for X.509 support.
122 */
123#define POLARSSL_BASE64_C
124
125/*
126 * Module:  library/bignum.c
127 * Caller:  library/dhm.c
128 *          library/rsa.c
129 *          library/ssl_tls.c
130 *          library/x509parse.c
131 *
132 * This module is required for RSA and DHM support.
133 */
134#define POLARSSL_BIGNUM_C
135
136/*
137 * Module:  library/camellia.c
138 * Caller:
139 *
140 * This module enabled the following cipher suites:
141 */
142#define POLARSSL_CAMELLIA_C
143
144/*
145 * Module:  library/certs.c
146 * Caller:
147 *
148 * This module is used for testing (ssl_client/server).
149 */
150#define POLARSSL_CERTS_C
151
152/*
153 * Module:  library/debug.c
154 * Caller:  library/ssl_cli.c
155 *          library/ssl_srv.c
156 *          library/ssl_tls.c
157 *
158 * This module provides debugging functions.
159 */
160#define POLARSSL_DEBUG_C
161
162/*
163 * Module:  library/des.c
164 * Caller:  library/ssl_tls.c
165 *
166 * This module enables the following ciphersuites:
167 *      SSL_RSA_DES_168_SHA
168 *      SSL_EDH_RSA_DES_168_SHA
169 */
170#define POLARSSL_DES_C
171
172/*
173 * Module:  library/dhm.c
174 * Caller:  library/ssl_cli.c
175 *          library/ssl_srv.c
176 *
177 * This module enables the following ciphersuites:
178 *      SSL_EDH_RSA_DES_168_SHA
179 *      SSL_EDH_RSA_AES_256_SHA
180 */
181#define POLARSSL_DHM_C
182
183/*
184 * Module:  library/havege.c
185 * Caller:
186 *
187 * This module enables the HAVEGE random number generator.
188 */
189#define POLARSSL_HAVEGE_C
190
191/*
192 * Module:  library/md2.c
193 * Caller:  library/x509parse.c
194 *
195 * Uncomment to enable support for (rare) MD2-signed X.509 certs.
196 *
197#define POLARSSL_MD2_C
198 */
199
200/*
201 * Module:  library/md4.c
202 * Caller:  library/x509parse.c
203 *
204 * Uncomment to enable support for (rare) MD4-signed X.509 certs.
205 *
206#define POLARSSL_MD4_C
207 */
208
209/*
210 * Module:  library/md5.c
211 * Caller:  library/ssl_tls.c
212 *          library/x509parse.c
213 *
214 * This module is required for SSL/TLS and X.509.
215 */
216#define POLARSSL_MD5_C
217
218/*
219 * Module:  library/net.c
220 * Caller:
221 *
222 * This module provides TCP/IP networking routines.
223 */
224#define POLARSSL_NET_C
225
226/*
227 * Module:  library/padlock.c
228 * Caller:  library/aes.c
229 *
230 * This modules adds support for the VIA PadLock on x86.
231 */
232#define POLARSSL_PADLOCK_C
233
234/*
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
240 *
241 * This module is required for SSL/TLS and MD5-signed certificates.
242 */
243#define POLARSSL_RSA_C
244
245/*
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
251 *
252 * This module is required for SSL/TLS and SHA1-signed certificates.
253 */
254#define POLARSSL_SHA1_C
255
256/*
257 * Module:  library/sha2.c
258 * Caller:
259 *
260 * This module adds support for SHA-224 and SHA-256.
261 */
262#define POLARSSL_SHA2_C
263
264/*
265 * Module:  library/sha4.c
266 * Caller:
267 *
268 * This module adds support for SHA-384 and SHA-512.
269 */
270#define POLARSSL_SHA4_C
271
272/*
273 * Module:  library/ssl_cli.c
274 * Caller:
275 *
276 * This module is required for SSL/TLS client support.
277 */
278#define POLARSSL_SSL_CLI_C
279
280/*
281 * Module:  library/ssl_srv.c
282 * Caller:
283 *
284 * This module is required for SSL/TLS server support.
285 */
286#define POLARSSL_SSL_SRV_C
287
288/*
289 * Module:  library/ssl_tls.c
290 * Caller:  library/ssl_cli.c
291 *          library/ssl_srv.c
292 *
293 * This module is required for SSL/TLS.
294 */
295#define POLARSSL_SSL_TLS_C
296
297/*
298 * Module:  library/timing.c
299 * Caller:  library/havege.c
300 *
301 * This module is used by the HAVEGE random number generator.
302 */
303#define POLARSSL_TIMING_C
304
305/*
306 * Module:  library/x509parse.c
307 * Caller:  library/ssl_cli.c
308 *          library/ssl_srv.c
309 *          library/ssl_tls.c
310 *
311 * This module is required for X.509 certificate parsing.
312 */
313#define POLARSSL_X509_PARSE_C
314
315/*
316 * Module:  library/x509_write.c
317 * Caller:
318 *
319 * This module is required for X.509 certificate writing.
320 */
321#define POLARSSL_X509_WRITE_C
322
323/*
324 * Module:  library/xtea.c
325 * Caller:
326 */
327#define POLARSSL_XTEA_C
328
329#endif /* config.h */
330