My Project
Loading...
Searching...
No Matches
user_settings.h
1/* Example custom user settings for wolfSSL */
2
3#ifndef WOLFSSL_USER_SETTINGS_H
4#define WOLFSSL_USER_SETTINGS_H
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10#include <stddef.h> /* for size_t */
11
12
13/* ------------------------------------------------------------------------- */
14/* Platform */
15/* ------------------------------------------------------------------------- */
16#undef WOLFSSL_GENERAL_ALIGNMENT
17#define WOLFSSL_GENERAL_ALIGNMENT 4
18
19#undef SINGLE_THREADED
20#define SINGLE_THREADED
21
22#undef WOLFSSL_SMALL_STACK
23#define WOLFSSL_SMALL_STACK
24
25#undef MICROCHIP_PIC32
26#define MICROCHIP_PIC32
27
28#undef WOLFSSL_MICROCHIP_PIC32MZ
29#define WOLFSSL_MICROCHIP_PIC32MZ
30
31
32/* ------------------------------------------------------------------------- */
33/* Math Configuration */
34/* ------------------------------------------------------------------------- */
35#undef USE_FAST_MATH
36#define USE_FAST_MATH
37
38#ifdef USE_FAST_MATH
39 #undef TFM_TIMING_RESISTANT
40 #define TFM_TIMING_RESISTANT
41
42 /* Optimizations */
43 //#define TFM_MIPS
44#endif
45
46
47/* ------------------------------------------------------------------------- */
48/* Crypto */
49/* ------------------------------------------------------------------------- */
50/* ECC */
51#if 1
52 #undef HAVE_ECC
53 #define HAVE_ECC
54
55 /* Manually define enabled curves */
56 #undef ECC_USER_CURVES
57 #define ECC_USER_CURVES
58
59 //#define HAVE_ECC192
60 //#define HAVE_ECC224
61 #undef NO_ECC256
62 //#define HAVE_ECC384
63 //#define HAVE_ECC521
64
65 /* Fixed point cache (speeds repeated operations against same private key) */
66 #undef FP_ECC
67 //#define FP_ECC
68 #ifdef FP_ECC
69 /* Bits / Entries */
70 #undef FP_ENTRIES
71 #define FP_ENTRIES 2
72 #undef FP_LUT
73 #define FP_LUT 4
74 #endif
75
76 /* Optional ECC calculation method */
77 /* Note: doubles heap usage, but slightly faster */
78 #undef ECC_SHAMIR
79 #define ECC_SHAMIR
80
81 /* Reduces heap usage, but slower */
82 #undef ECC_TIMING_RESISTANT
83 #define ECC_TIMING_RESISTANT
84
85 #ifdef USE_FAST_MATH
86 /* use reduced size math buffers for ecc points */
87 #undef ALT_ECC_SIZE
88 #define ALT_ECC_SIZE
89
90 /* Enable TFM optimizations for ECC */
91 #if defined(HAVE_ECC192) || defined(HAVE_ALL_CURVES)
92 #define TFM_ECC192
93 #endif
94 #if defined(HAVE_ECC224) || defined(HAVE_ALL_CURVES)
95 #define TFM_ECC224
96 #endif
97 #if !defined(NO_ECC256) || defined(HAVE_ALL_CURVES)
98 #define TFM_ECC256
99 #endif
100 #if defined(HAVE_ECC384) || defined(HAVE_ALL_CURVES)
101 #define TFM_ECC384
102 #endif
103 #if defined(HAVE_ECC521) || defined(HAVE_ALL_CURVES)
104 #define TFM_ECC521
105 #endif
106 #endif
107#endif
108
109/* RSA */
110#undef NO_RSA
111#if 1
112 #ifdef USE_FAST_MATH
113 /* Maximum math bits (Max RSA key bits * 2) */
114 #undef FP_MAX_BITS
115 #define FP_MAX_BITS 4096
116 #endif
117
118 /* half as much memory but twice as slow */
119 #undef RSA_LOW_MEM
120 //#define RSA_LOW_MEM
121
122 /* timing resistance */
123 #undef WC_RSA_BLINDING
124 #define WC_RSA_BLINDING
125#else
126 #define NO_RSA
127#endif
128
129/* AES */
130#undef NO_AES
131#if 1
132 #undef HAVE_AES_DECRYPT
133 #define HAVE_AES_DECRYPT
134
135 #undef HAVE_AESGCM
136 #define HAVE_AESGCM
137
138 /* GCM Method: GCM_SMALL, GCM_WORD32 or GCM_TABLE */
139 #undef GCM_SMALL
140 #define GCM_SMALL
141
142 #undef HAVE_AESCCM
143 #define HAVE_AESCCM
144
145 #undef WOLFSSL_AES_COUNTER
146 #define WOLFSSL_AES_COUNTER
147
148 #undef WOLFSSL_AES_DIRECT
149 #define WOLFSSL_AES_DIRECT
150#else
151 #define NO_AES
152#endif
153
154/* DES3 */
155#undef NO_DES3
156#if 1
157 #undef WOLFSSL_DES_ECB
158 #define WOLFSSL_DES_ECB
159#else
160 #define NO_DES3
161#endif
162
163
164/* ChaCha20 / Poly1305 */
165#undef HAVE_CHACHA
166#undef HAVE_POLY1305
167#if 0
168 #define HAVE_CHACHA
169 #define HAVE_POLY1305
170
171 /* Needed for Poly1305 */
172 #undef HAVE_ONE_TIME_AUTH
173 #define HAVE_ONE_TIME_AUTH
174#endif
175
176/* Ed25519 / Curve25519 */
177#undef HAVE_CURVE25519
178#undef HAVE_ED25519
179#if 0
180 #define HAVE_CURVE25519
181 #define HAVE_ED25519
182
183 /* Optionally use small math (less flash usage, but much slower) */
184 #if 0
185 #define CURVED25519_SMALL
186 #endif
187#endif
188
189
190/* ------------------------------------------------------------------------- */
191/* Hashing */
192/* ------------------------------------------------------------------------- */
193/* Sha */
194#undef NO_SHA
195#if 1
196 /* 1k smaller, but 25% slower */
197 //#define USE_SLOW_SHA
198#else
199 #define NO_SHA
200#endif
201
202/* Sha256 */
203#undef NO_SHA256
204#if 1
205#else
206 #define NO_SHA256
207#endif
208
209/* Sha512 */
210#undef WOLFSSL_SHA512
211#if 1
212 #define WOLFSSL_SHA512
213
214 /* Sha384 */
215 #undef WOLFSSL_SHA384
216 #if 1
217 #define WOLFSSL_SHA384
218 #endif
219
220 /* over twice as small, but 50% slower */
221 //#define USE_SLOW_SHA2
222#endif
223
224/* MD5 */
225#undef NO_MD5
226#if 1
227#else
228 #define NO_MD5
229#endif
230
231
232/* ------------------------------------------------------------------------- */
233/* Benchmark / Test */
234/* ------------------------------------------------------------------------- */
235/* Use reduced benchmark / test sizes */
236#undef BENCH_EMBEDDED
237#define BENCH_EMBEDDED
238
239#undef USE_CERT_BUFFERS_2048
240#define USE_CERT_BUFFERS_2048
241
242#undef USE_CERT_BUFFERS_1024
243//#define USE_CERT_BUFFERS_1024
244
245#undef USE_CERT_BUFFERS_256
246#define USE_CERT_BUFFERS_256
247
248
249/* ------------------------------------------------------------------------- */
250/* Time */
251/* ------------------------------------------------------------------------- */
252#if 0
253 /* Override Current Time */
254 /* Allows custom "custom_time()" function to be used for benchmark */
255 #define WOLFSSL_USER_CURRTIME
256 #define USER_TICKS
257 extern unsigned long custom_time(unsigned long* timer);
258 #define XTIME custom_time
259#else
260 #warning Time/RTC disabled
261 #undef NO_ASN_TIME
262 #define NO_ASN_TIME
263#endif
264
265/* ------------------------------------------------------------------------- */
266/* Debugging */
267/* ------------------------------------------------------------------------- */
268#undef DEBUG_WOLFSSL
269#define DEBUG_WOLFSSL
270
271#ifdef DEBUG_WOLFSSL
272 /* Use this to measure / print heap usage */
273 #if 0
274 #undef USE_WOLFSSL_MEMORY
275 #define USE_WOLFSSL_MEMORY
276 #undef WOLFSSL_TRACK_MEMORY
277 #define WOLFSSL_TRACK_MEMORY
278 #endif
279#else
280 #undef NO_WOLFSSL_MEMORY
281 #define NO_WOLFSSL_MEMORY
282
283 #undef NO_ERROR_STRINGS
284 //#define NO_ERROR_STRINGS
285#endif
286
287
288/* ------------------------------------------------------------------------- */
289/* Enable Features */
290/* ------------------------------------------------------------------------- */
291#undef KEEP_PEER_CERT
292//#define KEEP_PEER_CERT
293
294#undef HAVE_COMP_KEY
295//#define HAVE_COMP_KEY
296
297#undef HAVE_TLS_EXTENSIONS
298//#define HAVE_TLS_EXTENSIONS
299
300#undef HAVE_SUPPORTED_CURVES
301//#define HAVE_SUPPORTED_CURVES
302
303#undef WOLFSSL_BASE64_ENCODE
304//#define WOLFSSL_BASE64_ENCODE
305
306/* TLS Session Cache */
307#if 0
308 #define SMALL_SESSION_CACHE
309#else
310 #define NO_SESSION_CACHE
311#endif
312
313
314/* ------------------------------------------------------------------------- */
315/* Disable Features */
316/* ------------------------------------------------------------------------- */
317#undef NO_WOLFSSL_SERVER
318//#define NO_WOLFSSL_SERVER
319
320#undef NO_WOLFSSL_CLIENT
321//#define NO_WOLFSSL_CLIENT
322
323#undef NO_CRYPT_TEST
324//#define NO_CRYPT_TEST
325
326#undef NO_CRYPT_BENCHMARK
327//#define NO_CRYPT_BENCHMARK
328
329/* In-lining of misc.c functions */
330/* If defined, must include wolfcrypt/src/misc.c in build */
331/* Slower, but about 1k smaller */
332#undef NO_INLINE
333//#define NO_INLINE
334
335#undef NO_FILESYSTEM
336#define NO_FILESYSTEM
337
338#undef NO_WRITEV
339#define NO_WRITEV
340
341#undef NO_MAIN_DRIVER
342#define NO_MAIN_DRIVER
343
344#undef NO_DEV_RANDOM
345#define NO_DEV_RANDOM
346
347#undef NO_DSA
348#define NO_DSA
349
350#undef NO_DH
351#define NO_DH
352
353#undef NO_RC4
354#define NO_RC4
355
356#undef NO_OLD_TLS
357#define NO_OLD_TLS
358
359#undef NO_HC128
360#define NO_HC128
361
362#undef NO_RABBIT
363#define NO_RABBIT
364
365#undef NO_PSK
366#define NO_PSK
367
368#undef NO_MD4
369#define NO_MD4
370
371#undef NO_PWDBASED
372#define NO_PWDBASED
373
374#undef NO_CODING
375//#define NO_CODING
376
377
378/* Suppress array-bounds */
379#pragma GCC diagnostic ignored "-Warray-bounds"
380
381
382#ifdef __cplusplus
383}
384#endif
385
386#endif /* WOLFSSL_USER_SETTINGS_H */