NetBurner 3.5.8
PDF Version
MODM7AE70/user_settings.h
1/* user_settings_template.h
2 *
3 * Copyright (C) 2006-2023 wolfSSL Inc.
4 *
5 * This file is part of wolfSSL.
6 *
7 * wolfSSL is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * wolfSSL is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335, USA
20 */
21
22#ifndef WOLFSSL_USER_SETTINGS_H
23#define WOLFSSL_USER_SETTINGS_H
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#include <predef.h>
30
31/* =========================================================================
32 * CRYPTO PROFILE SELECTION
33 * =========================================================================
34 * Uncomment ONE of the following to select a crypto profile.
35 * Default (none selected): Full compatibility - TLS 1.2+1.3, all ciphers
36 *
37 * CRYPTO_PROFILE_AESGCM - TLS 1.3 only, AES-GCM ciphers only
38 * HW accelerated on SAME70, smallest footprint
39 *
40 * CRYPTO_PROFILE_CHACHA - TLS 1.3 only, ChaCha20-Poly1305
41 * Constant-time, no HW AES dependency
42 *
43 * CRYPTO_PROFILE_MINIMAL - Bare minimum for constrained applications
44 * WARNING: Limited cipher support
45 * ========================================================================= */
46// #define CRYPTO_PROFILE_AESGCM
47// #define CRYPTO_PROFILE_CHACHA
48// #define CRYPTO_PROFILE_MINIMAL
49
50#define TARGET_EMBEDDED
51
52/* ------------------------------------------------------------------------- */
53/* Platform */
54/* ------------------------------------------------------------------------- */
55#define WOLFSSL_GENERAL_ALIGNMENT 4
56
57/* ------------------------------------------------------------------------- */
58/* SAME70 Hardware Crypto Acceleration */
59/* Enables AES-GCM offload to the SAME70 AES peripheral. */
60/* ------------------------------------------------------------------------- */
61#define WOLFSSL_SAME70_CRYPTO /* AES-GCM hardware acceleration */
62#define SIZEOF_LONG_LONG 8
63#define WOLFSSL_W64_WRAPPER
64
65/* Enable SSH KDF / extKeyUsage SSH bits used by the NetBurner SSH library */
66#define WOLFSSL_WOLFSSH
67
68/* Keep PQ off by default until size/perf measured on MODM7AE70 */
69#define NO_MLKEM
70
71#if 0
72 #define NO_64BIT /* disable use of 64-bit variables */
73#endif
74
75#ifdef TARGET_EMBEDDED
76 /* disable mutex locking */
77 // #define SINGLE_THREADED
78
79 /* reduce stack use. For variables over 100 bytes allocate from heap */
80 #define WOLFSSL_SMALL_STACK
81
82 /* disable the built-in socket support and use the IO callbacks.
83 * Set with wolfSSL_CTX_SetIORecv/wolfSSL_CTX_SetIOSend
84 */
85 #define WOLFSSL_USER_IO
86#endif
87
88#define WOLFSSL_32BIT_MILLI_TIME
89
90/* ------------------------------------------------------------------------- */
91/* Math Configuration */
92/* ------------------------------------------------------------------------- */
93#define ULLONG_MAX 18446744073709551615ULL
94#define SP_WORD_SIZE 32
95
96#undef USE_FAST_MATH
97#if 0
98 /* fast math (tfmc.) (stack based and timing resistant) */
99 #define USE_FAST_MATH
100 #define TFM_TIMING_RESISTANT
101#else
102 /* normal heap based integer.c (not timing resistant) */
103#endif
104
105/* Wolf Single Precision Math */
106#undef WOLFSSL_SP
107#if 1
108 #define WOLFSSL_SP
109 #define WOLFSSL_HAVE_SP_RSA
110 #define WOLFSSL_HAVE_SP_DH
111 #define WOLFSSL_HAVE_SP_ECC
112 //#define WOLFSSL_SP_4096 /* Enable RSA/RH 4096-bit support */
113 #define WOLFSSL_SP_384 /* Enable ECC 384-bit SECP384R1 support */
114
115 #define WOLFSSL_SP_CACHE_RESISTANT
116 // #define WOLFSSL_SP_MATH /* only SP math - disables integer.c/tfm.c */
117 #define WOLFSSL_SP_MATH_ALL /* use SP math for all key sizes and curves */
118
119 //#define WOLFSSL_SP_NO_MALLOC
120 //#define WOLFSSL_SP_DIV_32 /* do not use 64-bit divides */
121
122 #ifdef TARGET_EMBEDDED
123 /* use smaller version of code */
124 #define WOLFSSL_SP_SMALL
125 #else
126 /* SP Assembly Speedups - specific to chip type */
127 #define WOLFSSL_SP_ASM
128 #endif
129 //#define WOLFSSL_SP_X86_64
130 //#define WOLFSSL_SP_X86
131 //#define WOLFSSL_SP_ARM32_ASM
132 //#define WOLFSSL_SP_ARM64_ASM
133 //#define WOLFSSL_SP_ARM_THUMB_ASM
134 #define WOLFSSL_SP_ARM_CORTEX_M_ASM
135#endif
136
137/* ------------------------------------------------------------------------- */
138/* Crypto */
139/* ------------------------------------------------------------------------- */
140/* RSA */
141#undef NO_RSA
142#if 1
143 #ifdef USE_FAST_MATH
144 /* Maximum math bits (Max RSA key bits * 2) */
145 #define FP_MAX_BITS 4096
146 #endif
147
148 /* half as much memory but twice as slow */
149 //#define RSA_LOW_MEM
150
151 /* Enables blinding mode, to prevent timing attacks */
152 #define WC_RSA_BLINDING
153
154 /* RSA PSS Support */
155 #define WC_RSA_PSS
156#else
157 #define NO_RSA
158#endif
159
160/* DH */
161#undef NO_DH
162#if !defined(CRYPTO_PROFILE_AESGCM) && !defined(CRYPTO_PROFILE_CHACHA) && !defined(CRYPTO_PROFILE_MINIMAL)
163 /* Use table for DH instead of -lm (math) lib dependency */
164 #if 1
165 #define WOLFSSL_DH_CONST
166 #define HAVE_FFDHE_2048
167 //#define HAVE_FFDHE_4096
168 //#define HAVE_FFDHE_6144
169 //#define HAVE_FFDHE_8192
170 #endif
171#else
172 #define NO_DH
173#endif
174
175/* ECC */
176#undef HAVE_ECC
177#if 1
178 #define HAVE_ECC
179
180 /* Manually define enabled curves */
181 #define ECC_USER_CURVES
182
183 #ifdef ECC_USER_CURVES
184 /* Manual Curve Selection */
185 // #define HAVE_ECC192
186 // #define HAVE_ECC224
187 #undef NO_ECC256
188 #ifdef ENABLE_ECC384
189 #define HAVE_ECC384
190 #else
191 /* wolfSSL 5.9.1 preferredGroup[] in tls.c gates SECP384R1 on
192 * !NO_ECC384 (not on HAVE_ECC384), but TLSX_KeyShare_GenEccKey gates
193 * its switch arm on HAVE_ECC384. Without explicit NO_ECC384, TLS 1.3
194 * client advertises SECP384R1 then key gen returns BAD_FUNC_ARG. */
195 #define NO_ECC384
196 #endif
197 #ifdef ENABLE_ECC521
198 // #define HAVE_ECC521
199 #else
200 /* Same preferredGroup vs. TLSX_KeyShare_GenEccKey asymmetry as
201 * NO_ECC384 above, but for SECP521R1. */
202 #define NO_ECC521
203 #endif
204 #endif
205
206 /* Fixed point cache (speeds repeated operations against same private key) */
207 #define FP_ECC
208 #ifdef FP_ECC
209 /* Bits / Entries */
210 /* FP_LUT=5: Pre-computes 32 multiples of cached ECC keys.
211 Uses ~49KB heap for lookup tables. Faster repeated ECDSA signing. */
212 #define FP_ENTRIES 15
213 #define FP_LUT 5
214 #endif
215
216 /* Optional ECC calculation method */
217 /* Note: doubles heap usage, but slightly faster */
218 #define ECC_SHAMIR
219
220 /* Reduces heap usage, but slower */
221 // #define ECC_TIMING_RESISTANT
222
223 /* Compressed ECC Key Support */
224 //#define HAVE_COMP_KEY
225
226 /* Use alternate ECC size for ECC math */
227 #ifdef USE_FAST_MATH
228 /* MAX ECC BITS = ROUND8(MAX ECC) * 2 */
229 #if defined(NO_RSA) && defined(NO_DH)
230 /* Custom fastmath size if not using RSA/DH */
231 #define FP_MAX_BITS (256 * 2)
232 #else
233 /* use heap allocation for ECC points */
234 #define ALT_ECC_SIZE
235
236 /* wolfSSL will compute the FP_MAX_BITS_ECC, but it can be overriden */
237 //#define FP_MAX_BITS_ECC (256 * 2)
238 #endif
239
240 /* Speedups specific to curve */
241 #ifndef NO_ECC256
242 #define TFM_ECC256
243 #endif
244 #endif
245#endif
246
247
248/* AES */
249#undef NO_AES
250#if 1
251 #define HAVE_AES_CBC
252
253 #define HAVE_AESGCM
254
255 /* GCM Method: GCM_TABLE_4BIT, GCM_SMALL, GCM_WORD32 or GCM_TABLE */
256 // Listed in order of speed and memory usage
257 // #define GCM_TABLE
258 // #define GCM_WORD32
259 /* 4-bit table: faster GCM at the cost of more memory */
260 #define GCM_TABLE_4BIT
261 // #define GCM_SMALL
262
263 //#define WOLFSSL_AES_DIRECT
264 //#define HAVE_AES_ECB
265 //#define WOLFSSL_AES_COUNTER
266 #define HAVE_AESCCM
267#else
268 #define NO_AES
269#endif
270
271
272/* DES3 */
273#undef NO_DES3
274#if !defined(CRYPTO_PROFILE_AESGCM) && !defined(CRYPTO_PROFILE_CHACHA) && !defined(CRYPTO_PROFILE_MINIMAL)
275#else
276 #define NO_DES3
277#endif
278
279/* ChaCha20 / Poly1305 */
280#undef HAVE_CHACHA
281#undef HAVE_POLY1305
282#if !defined(CRYPTO_PROFILE_AESGCM) && !defined(CRYPTO_PROFILE_MINIMAL)
283 #define HAVE_CHACHA
284 #define HAVE_POLY1305
285
286 /* Needed for Poly1305 */
287 #define HAVE_ONE_TIME_AUTH
288#endif
289
290/* Ed25519 / Curve25519 */
291#undef HAVE_CURVE25519
292#undef HAVE_ED25519
293#if !defined(CRYPTO_PROFILE_AESGCM) && !defined(CRYPTO_PROFILE_MINIMAL)
294 #define HAVE_CURVE25519
295 #define HAVE_ED25519 /* ED25519 Requires SHA512 */
296
297 /* Optionally use small math (less flash usage, but much slower) */
298 #if 0
299 #define CURVED25519_SMALL
300 #endif
301#endif
302
303
304/* ------------------------------------------------------------------------- */
305/* Hashing */
306/* ------------------------------------------------------------------------- */
307/* Sha */
308#undef NO_SHA
309#if 1
310 /* 1k smaller, but 25% slower */
311 //#define USE_SLOW_SHA
312#else
313 #define NO_SHA
314#endif
315
316/* Sha256 */
317#undef NO_SHA256
318#if 1
319 /* not unrolled - ~2k smaller and ~25% slower */
320 //#define USE_SLOW_SHA256
321
322 /* Sha224 */
323 #if 0
324 #define WOLFSSL_SHA224
325 #endif
326#else
327 #define NO_SHA256
328#endif
329
330/* Sha512 */
331#undef WOLFSSL_SHA512
332#if 1
333 #define WOLFSSL_SHA512
334
335 /* Sha384 */
336 #undef WOLFSSL_SHA384
337 #if 1
338 #define WOLFSSL_SHA384
339 #endif
340
341 /* over twice as small, but 50% slower */
342 //#define USE_SLOW_SHA512
343#endif
344
345/* Sha3 */
346#undef WOLFSSL_SHA3
347#if 0
348 #define WOLFSSL_SHA3
349#endif
350
351/* MD5 */
352#undef NO_MD5
353#if 0
354
355#else
356 #define NO_MD5
357#endif
358
359/* HKDF */
360#undef HAVE_HKDF
361#if 1
362 #define HAVE_HKDF
363#endif
364
365/* CMAC */
366#undef WOLFSSL_CMAC
367#if 0
368 #define WOLFSSL_CMAC
369#endif
370
371
372/* ------------------------------------------------------------------------- */
373/* Benchmark / Test */
374/* ------------------------------------------------------------------------- */
375#ifdef TARGET_EMBEDDED
376 /* Use reduced benchmark / test sizes */
377 #define BENCH_EMBEDDED
378#endif
379
380/* Use test buffers from array (not filesystem) */
381#ifndef NO_FILESYSTEM
382#define USE_CERT_BUFFERS_256
383#define USE_CERT_BUFFERS_2048
384#endif
385
386/* ------------------------------------------------------------------------- */
387/* Debugging */
388/* To enable, call wolfSSL_Debugging_ON(); where debug output is wanted */
389/* ------------------------------------------------------------------------- */
390
391#undef DEBUG_WOLFSSL
392#undef NO_ERROR_STRINGS
393#if 0
394 #define DEBUG_WOLFSSL
395#else
396 #if 0
397 #define NO_ERROR_STRINGS
398 #endif
399#endif
400
401// Prints out the TLS secrets to the console, allowing for decryption of the TLS stream
402// #define SHOW_SECRETS
403// #define HAVE_SECRET_CALLBACK
404
405/* ------------------------------------------------------------------------- */
406/* Memory */
407/* ------------------------------------------------------------------------- */
408
409/* TLS SRAM pool size in KB for NBMalloc allocator */
410#define WOLFSSL_TLS_SRAM_KB 32
411
412/* Override Memory API's */
413#ifdef SSL_CUSTOM_MALLOC
414 #define XMALLOC_OVERRIDE
415
416 /* prototypes for user heap override functions */
417 /* Note: Realloc only required for normal math */
418 #include <stddef.h> /* for size_t */
419
420 extern void* NBMalloc(size_t n);
421 extern void NBFree(void *p);
422 extern void* NBRealloc(void *p, size_t n);
423
424 #define XMALLOC(n, h, t) NBMalloc(n)
425 #define XFREE(p, h, t) NBFree(p)
426 #define XREALLOC(p, n, h, t) NBRealloc(p, n)
427
428 // Platform specific fastest memory location
429 #if SSL_CUSTOM_MALLOC == 1 // Fastest memory on platform
430 #define CREATE_MEMORY_ALLOCATOR(name,size) CREATE_MEMORY_ALLOCATOR_SRAM(name,size)
431 #define CREATE_MEMORY_BUFFER(name,size) CREATE_MEMORY_BUFFER_SRAM(name,size)
432 #elif SSL_CUSTOM_MALLOC == 2
433 #define CREATE_MEMORY_ALLOCATOR(name,size) CREATE_MEMORY_ALLOCATOR_TCM(name,size)
434 #define CREATE_MEMORY_BUFFER(name,size) CREATE_MEMORY_BUFFER_TCM(name,size)
435 #elif SSL_CUSTOM_MALLOC == 3
436 #define CREATE_MEMORY_ALLOCATOR(name,size) CREATE_MEMORY_ALLOCATOR_SRAM(name,size)
437 #define CREATE_MEMORY_BUFFER(name,size) CREATE_MEMORY_BUFFER_SRAM(name,size)
438 #elif SSL_CUSTOM_MALLOC == 4
439 #define CREATE_MEMORY_ALLOCATOR(name,size) CREATE_MEMORY_ALLOCATOR_SDRAM(name,size)
440 #define CREATE_MEMORY_BUFFER(name,size) CREATE_MEMORY_BUFFER_SDRAM(name,size)
441 #endif
442#endif
443
444#if 0
445 /* Static memory requires fast math */
446 #define WOLFSSL_STATIC_MEMORY
447
448 /* Disable fallback malloc/free */
449 #define WOLFSSL_NO_MALLOC
450 #if 1
451 #define WOLFSSL_MALLOC_CHECK /* trap malloc failure */
452 #endif
453#endif
454
455/* Memory callbacks */
456#if 1
457 #undef USE_WOLFSSL_MEMORY
458 #define USE_WOLFSSL_MEMORY
459
460 /* Use this to measure / print heap usage */
461 #if 0
462 #define WOLFSSL_TRACK_MEMORY
463 #define WOLFSSL_DEBUG_MEMORY
464 #endif
465#else
466 #ifndef WOLFSSL_STATIC_MEMORY
467 #define NO_WOLFSSL_MEMORY
468 /* Otherwise we will use stdlib malloc, free and realloc */
469 #endif
470#endif
471
472
473/* ------------------------------------------------------------------------- */
474/* Port */
475/* ------------------------------------------------------------------------- */
476
477/* Override Current Time */
478#if 1
479 /* Allows custom "custom_time()" function to be used for benchmark */
480 #define WOLFSSL_USER_CURRTIME
481 // #define WOLFSSL_GMTIME
482 #define USER_TICKS
483 #include <time.h>
484 extern unsigned long my_time(time_t *timer);
485 #define XTIME my_time
486#endif
487
488
489/* ------------------------------------------------------------------------- */
490/* RNG */
491/* ------------------------------------------------------------------------- */
492
493/* Choose RNG method */
494#if 1
495 /* Custom Seed Source */
496 #if 1
497 /* Size of returned HW RNG value */
498 #define CUSTOM_RAND_TYPE unsigned int
499 extern unsigned int my_rng_seed_gen(void);
500 #undef CUSTOM_RAND_GENERATE
501 #define CUSTOM_RAND_GENERATE my_rng_seed_gen
502 #endif
503
504 // NetBurner specific define for enabling hardware random number generation for M7
505 #define GATHER_RANDOM_USE_HW
506
507 /* Use built-in P-RNG (SHA256 based) with HW RNG */
508 /* P-RNG + HW RNG (P-RNG is ~8K) */
509 #undef HAVE_HASHDRBG
510 #define HAVE_HASHDRBG
511#else
512 #undef WC_NO_HASHDRBG
513 #define WC_NO_HASHDRBG
514
515 /* Bypass P-RNG and use only HW RNG */
516 extern int my_rng_gen_block(unsigned char* output, unsigned int sz);
517 #undef CUSTOM_RAND_GENERATE_BLOCK
518 #define CUSTOM_RAND_GENERATE_BLOCK my_rng_gen_block
519#endif
520
521
522/* ------------------------------------------------------------------------- */
523/* Custom Standard Lib */
524/* ------------------------------------------------------------------------- */
525/* Allows override of all standard library functions */
526#undef STRING_USER
527#if 0
528 #define STRING_USER
529
530 #include <string.h>
531
532 #define USE_WOLF_STRSEP
533 #define XSTRSEP(s1,d) wc_strsep((s1),(d))
534
535 #define USE_WOLF_STRTOK
536 #define XSTRTOK(s1,d,ptr) wc_strtok((s1),(d),(ptr))
537
538 #define XSTRNSTR(s1,s2,n) mystrnstr((s1),(s2),(n))
539
540 #define XMEMCPY(d,s,l) memcpy((d),(s),(l))
541 #define XMEMSET(b,c,l) memset((b),(c),(l))
542 #define XMEMCMP(s1,s2,n) memcmp((s1),(s2),(n))
543 #define XMEMMOVE(d,s,l) memmove((d),(s),(l))
544
545 #define XSTRLEN(s1) strlen((s1))
546 #define XSTRNCPY(s1,s2,n) strncpy((s1),(s2),(n))
547 #define XSTRSTR(s1,s2) strstr((s1),(s2))
548
549 #define XSTRNCMP(s1,s2,n) strncmp((s1),(s2),(n))
550 #define XSTRNCAT(s1,s2,n) strncat((s1),(s2),(n))
551 #define XSTRNCASECMP(s1,s2,n) strncasecmp((s1),(s2),(n))
552
553 #define XSNPRINTF snprintf
554#endif
555
556
557
558/* ------------------------------------------------------------------------- */
559/* Enable Features */
560/* ------------------------------------------------------------------------- */
561
562#ifdef SSL_TLS_1_3_SUPPORT // defined in predef.h
563#define WOLFSSL_TLS13
564/* OPTIMIZATION: 0-RTT for faster TLS 1.3 session resumption */
565#define WOLFSSL_EARLY_DATA
566#endif
567/* Non-default profiles disable TLS 1.2 for smaller footprint */
568#if defined(CRYPTO_PROFILE_AESGCM) || defined(CRYPTO_PROFILE_CHACHA) || defined(CRYPTO_PROFILE_MINIMAL)
569#define WOLFSSL_NO_TLS12
570#endif
571#define WOLFSSL_OLD_PRIME_CHECK /* Use faster DH prime checking */
572#define HAVE_TLS_EXTENSIONS
573#define HAVE_SUPPORTED_CURVES
574#define WOLFSSL_BASE64_ENCODE
575
576
577#define WOLFSSL_KEY_GEN /* For RSA Key gen only */
578#define KEEP_PEER_CERT
579//#define HAVE_COMP_KEY
580
581/* TLS Session Cache */
582#if 1
583 #define SMALL_SESSION_CACHE
584 #define NO_SESSION_CACHE_REF
585#else
586 #define NO_SESSION_CACHE
587#endif
588
589#define HAVE_ONE_TIME_AUTH
590#define HAVE_SNI
591#define HAVE_SESSION_TICKET
592/* OPTIMIZATION: Smaller certificate verification code path */
593#define WOLFSSL_SMALL_CERT_VERIFY
594
595// Allows WolfSSL to malloc the tls 1.3 ticket nonce, instead of using a static buffer. This supports large ticket nonces
596#define WOLFSSL_TICKET_NONCE_MALLOC
597
598/* ------------------------------------------------------------------------- */
599/* Disable Features */
600/* ------------------------------------------------------------------------- */
601//#define NO_WOLFSSL_SERVER
602//#define NO_WOLFSSL_CLIENT
603//#define NO_CRYPT_TEST
604//#define NO_CRYPT_BENCHMARK
605//#define WOLFCRYPT_ONLY
606
607/* In-lining of misc.c functions */
608/* If defined, must include wolfcrypt/src/misc.c in build */
609/* Slower, but about 1k smaller */
610//#define NO_INLINE
611
612#define WOLFSSL_NO_SOCK
613#define NO_WOLFSSL_DIR
614
615#ifdef TARGET_EMBEDDED
616 #define NO_FILESYSTEM
617 #define NO_WRITEV
618 #define NO_MAIN_DRIVER
619 #define NO_DEV_RANDOM
620#endif
621
622#define NO_OLD_TLS
623#define NO_PSK
624
625#define NO_DSA
626// #define NO_RC4
627#define NO_MD4
628#define NO_PWDBASED
629//#define NO_CODING
630//#define NO_ASN_TIME
631//#define NO_CERTS
632//#define NO_SIG_WRAPPER
633
634#define NO_HC128
635#define NO_RABBIT
636
637#define WOLFSSL_IGNORE_FILE_WARN
638
639#undef NO_TLS
640
641#if !defined(CRYPTO_PROFILE_AESGCM) && !defined(CRYPTO_PROFILE_CHACHA) && !defined(CRYPTO_PROFILE_MINIMAL)
642// Settings made for TLS 1.2 backward compatibility
643#define WOLFSSL_STATIC_RSA // Needed to support TLS_RSA_WITH_AES_128_CBC_SHA
644#define WOLFSSL_STATIC_DH // Needed to support TLS_ECDH_ECDSA_WITH_RC4_128_SHA
645#endif
646#define WOLFSSL_AES_128 // Needed to support TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA256
647#define WOLFSSL_AES_256 // Needed to support TLS_RSA_WITH_AES_256_CBC_SHA256
648
649#define WOLFSSL_CERT_REQ
650#define WOLFSSL_CERT_GEN
651#define WOLFSSL_ALT_NAMES
652#define WOLFSSL_DER_TO_PEM
653#define WOLFSSL_KEY_GEN
654#define WOLFSSL_EITHER_SIDE
655
656#define ENABLE_ECCKEY_CREATE // Custom define, maybe should move to predef?
657#define ENABLE_RSAKEY_CREATE // Custom define, maybe should move to predef?
658
659 // For wolfSSH
660 //#undef WOLFSSH_SFTP
661 //#define WOLFSSH_SFTP
662
663 //#undef WOLFSSH_SCP
664 //#define WOLFSSH_SCP
665
666#undef WOLFSSH_USER_IO
667#define WOLFSSH_USER_IO
668
669#ifdef __cplusplus
670}
671#endif
672
673#endif /* WOLFSSL_USER_SETTINGS_H */