1 /* user_settings_min_ecc.h
2  *
3  * Copyright (C) 2006-2021 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 /* should be renamed to user_settings.h for customer use
23  * generated from configure options:
24  * ./configure \
25     --enable-cryptonly --enable-ecc --enable-sp \
26     --disable-rsa --disable-dh --disable-sha3 --disable-sha224 --disable-md5 \
27     --disable-sha --disable-pkcs12 --disable-memory \
28     --disable-chacha --disable-poly1305 --disable-sha512 --disable-sha384 \
29     --disable-aesgcm --disable-aescbc --disable-aes --disable-rng \
30     CFLAGS="-DNO_SIG_WRAPPER -DWOLFSSL_PUBLIC_MP -DECC_USER_CURVES \
31         -DNO_ECC_SIGN -DNO_ECC_DHE -DNO_ECC_KEY_EXPORT"
32  *
33  * Cleaned up by David Garske
34  */
35 
36 
37 #ifndef WOLFSSL_USER_SETTINGS_H
38 #define WOLFSSL_USER_SETTINGS_H
39 
40 
41 #ifdef __cplusplus
42 extern "C" {
43 #endif
44 
45 /* WolfCrypt Only (no TLS) */
46 #define WOLFCRYPT_ONLY
47 
48 /* Endianness - defaults to little endian */
49 #ifdef __BIG_ENDIAN__
50     #define BIG_ENDIAN_ORDER
51 #endif
52 
53 /* Expose the math mp_ API's */
54 #define WOLFSSL_PUBLIC_MP
55 
56 /* Use single precision math only */
57 #define WOLFSSL_SP
58 #define WOLFSSL_SP_SMALL
59 #define WOLFSSL_SP_MATH
60 #define WOLFSSL_HAVE_SP_ECC
61 
62 /* Enable Timing Resistance */
63 #define TFM_TIMING_RESISTANT
64 #define ECC_TIMING_RESISTANT
65 
66 /* Enable ECC */
67 #define HAVE_ECC
68 #define ECC_USER_CURVES /* Only 256-Bit Curves */
69 //#define ECC_SHAMIR
70 
71 /* Optional Feature Disables */
72 #define NO_SIG_WRAPPER
73 //#define NO_ECC_KEY_EXPORT
74 //#define NO_ECC_DHE
75 //#define NO_ECC_SIGN
76 //#define NO_ECC_VERIFY
77 
78 /* Disable Algorithms */
79 #define NO_AES
80 #define NO_AES_CBC
81 #define NO_DES3
82 #define NO_DSA
83 #define NO_RSA
84 #define NO_DH
85 #define NO_RC4
86 #define NO_MD4
87 #define NO_MD5
88 #define NO_SHA
89 #define NO_HC128
90 #define NO_RABBIT
91 #define NO_PWDBASED
92 #define NO_PKCS12
93 #define NO_PKCS8
94 //#define WC_NO_RNG
95 
96 /* Disable Features */
97 //#define NO_ASN
98 //#define NO_CERTS
99 #define NO_WOLFSSL_MEMORY
100 #define WOLFSSL_NO_PEM
101 //#define NO_CODING
102 #define NO_PSK
103 #ifndef DEBUG_WOLFSSL
104     #define DEBUG_WOLFSSL
105     #define NO_ERROR_STRINGS
106 #endif
107 
108 #ifdef __cplusplus
109 }
110 #endif
111 
112 #endif /* WOLFSSL_USER_SETTINGS_H */
113