user_settings.h
1 /* user_settings.h : custom configuration for wolfcrypt/wolfSSL */
2 
3 #ifndef USER_SETTINGS_H
4 #define USER_SETTINGS_H
5 
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
9 
10 /* System */
11 #ifndef WOLFSSL_RIOT_OS
12 #define WOLFSSL_RIOT_OS 1
13 #endif
14 #include <random.h>
15 #define CUSTOM_RAND_GENERATE random_uint32
16 #define CUSTOM_RAND_TYPE uint32_t
17 #define NO_WRITEV
18 #define NO_DEV_RANDOM
19 #define NO_FILESYSTEM
20 #define NO_WOLFSSL_MEMORY
21 #define NO_MAIN_DRIVER
22 #define NO_SIG_WRAPPER
23 #define NO_OLD_RNGNAME
24 
25 /* Uncomment the next two lines to enable wolfSSL debug */
26 // #define DEBUG_WOLFSSL
27 // #define WOLFSSL_LOG_PRINTF
28 
29 /* Single precision math */
30 #define WOLFSSL_SP_MATH
31 #define WOLFSSL_SP_SMALL
32 #define SP_WORD_SIZE 32
33 #define WOLFSSL_SP
34 
35 
36 
37 /* GNRC support enabled if not
38  * using sockets
39  */
40 #ifndef MODULE_WOLFSSL_SOCKET
41 #define WOLFSSL_GNRC
42 #define WOLFSSL_USER_IO
43 #else
44 #include <sys/socket.h>
45 #endif
46 
47 /* Select wolfcrypt only / +wolfssl
48  * at compile time (via USEMODULE)
49  */
50 #ifndef MODULE_WOLFSSL_TLS
51 #ifndef MODULE_WOLFSSL_TLS13
52 #define WOLFCRYPT_ONLY
53 #else
54 #define NO_OLD_TLS
55 #define HAVE_TLS_EXTENSIONS
56 #define HAVE_AES_DECRYPT
57 #define HAVE_AESGCM
58 #define GCM_SMALL
59 #define HAVE_AESCCM
60 #define WOLFSSL_AES_COUNTER
61 #define WOLFSSL_AES_DIRECT
62 #endif
63 #else
64 #define HAVE_TLS_EXTENSIONS
65 #endif
66 
67 /* Align on 32-bit (exc. native,
68  * don't modify default alignment.)
69  */
70 #ifndef BOARD_NATIVE
71 #define WOLFSSL_GENERAL_ALIGNMENT 4
72 #endif
73 
74 /* ARM-specific optimizations */
75 #ifdef CPU_ARM
76 #define TFM_ARM
77 #endif
78 
79 /* defined somewhere else */
80 #ifndef __mips__
81 int strncasecmp(const char *s1, const char * s2, unsigned int sz);
82 #endif
83 
84 #define SINGLE_THREADED
85 
86 /* Global settings */
87 #define SMALL_SESSION_CACHE
88 #define WOLFSSL_DH_CONST
89 #define WORD64_AVAILABLE
90 #define TFM_TIMING_RESISTANT
91 #define USE_CERT_BUFFERS_2048
92 #define NO_RC4
93 
94 /* Modules */
95 #undef WC_NO_RNG
96 #ifndef MODULE_WOLFCRYPT_RANDOM
97 #define WC_NO_RNG
98 #endif
99 
100 #undef WOLFSSL_DTLS
101 #ifdef MODULE_WOLFSSL_DTLS
102 #define WOLFSSL_DTLS
103 #endif
104 
105 #undef HAVE_FFDHE_2048
106 #ifdef MODULE_WOLFCRYPT_FFDHE_2048
107 #define HAVE_FFDHE_2048
108 #endif
109 
110 #undef HAVE_CHACHA
111 #ifdef MODULE_WOLFCRYPT_CHACHA
112 #define HAVE_CHACHA
113 #endif
114 
115 #undef HAVE_POLY1305
116 #ifdef MODULE_WOLFCRYPT_POLY1305
117 #define HAVE_POLY1305
118 #define HAVE_ONE_TIME_AUTH
119 #endif
120 
121 #undef HAVE_CURVE25519
122 #ifdef MODULE_WOLFCRYPT_CURVE25519
123 #define HAVE_CURVE25519
124 #define CURVE25519_SMALL
125 #endif
126 
127 #undef HAVE_ED25519
128 #ifdef MODULE_WOLFCRYPT_ED25519
129 #define HAVE_ED25519
130 #define ED25519_SMALL
131 #endif
132 
133 #undef NO_AES
134 #undef NO_CODING
135 #undef NO_CMAC
136 #ifndef MODULE_WOLFCRYPT_AES
137 #define NO_AES
138 #endif
139 #ifndef MODULE_WOLFCRYPT_CMAC
140 #define NO_CMAC
141 #endif
142 #ifndef MODULE_WOLFCRYPT_CODING
143 #define NO_CODING
144 #endif
145 
146 #ifndef MODULE_WOLFCRYPT_ASN
147 #define NO_ASN
148 #endif
149 
150 #ifndef MODULE_WOLFCRYPT_HMAC
151 #define NO_HMAC
152 #endif
153 
154 #undef NO_SHA
155 #ifndef MODULE_WOLFCRYPT_SHA
156 #define NO_SHA
157 #else
158 #define USE_SLOW_SHA
159 #define USE_SLOW_SHA2
160 #endif
161 
162 #undef HAVE_SHA512
163 #undef HAVE_SHA384
164 #undef WOLFSSL_SHA384
165 #undef WOLFSSL_SHA512
166 #ifdef MODULE_WOLFCRYPT_SHA512
167 #define HAVE_SHA384
168 #define HAVE_SHA512
169 #define WOLFSSL_SHA384
170 #define WOLFSSL_SHA512
171 #define USE_SLOW_SHA512
172 #endif
173 
174 #undef WOLFSSL_SHA3
175 #ifdef MODULE_WOLFCRYPT_SHA3
176 #define WOLFSSL_SHA3
177 #endif
178 
179 #undef HAVE_ECC
180 #ifdef MODULE_WOLFCRYPT_ECC
181 #define HAVE_ECC
182 #define FP_ECC
183 #define WOLFSSL_HAVE_SP_ECC
184 #define WOLFSSL_HAVE_SP_ECC
185 #define ECC_TIMING_RESISTANT
186 #define HAVE_SUPPORTED_CURVES
187 #endif
188 
189 #undef HAVE_BLAKE2B
190 #ifdef MODULE_WOLFCRYPT_BLAKE2B
191 #define HAVE_BLAKE2B
192 #endif
193 
194 #undef HAVE_CAMELLIA
195 #ifdef MODULE_WOLFCRYPT_CAMELLIA
196 #define HAVE_CAMELLIA
197 #endif
198 
199 #undef HAVE_IDEA
200 #ifdef MODULE_WOLFCRYPT_IDEA
201 #define HAVE_IDEA
202 #endif
203 
204 #undef HAVE_HC128
205 #ifdef MODULE_WOLFCRYPT_HC128
206 #define HAVE_HC128
207 #endif
208 
209 #undef HAVE_PKCS7
210 #ifdef MODULE_WOLFCRYPT_PKCS7
211 #define HAVE_PKCS7
212 #endif
213 
214 #undef NO_PKCS12
215 #ifndef MODULE_WOLFCRYPT_PKCS12
216 #define NO_PKCS12
217 #endif
218 
219 #undef NO_PWDBASED
220 #ifndef MODULE_WOLFCRYPT_PWDBASED
221 #define NO_PWDBASED
222 #endif
223 
224 #undef WOLFSSL_STATIC_PSK
225 #ifdef MODULE_WOLFSSL_PSK
226 #define WOLFSSL_STATIC_PSK
227 #endif
228 
229 #undef HAVE_LIBZ
230 #ifdef MODULE_WOLFCRYPT_COMPRESS
231 #define HAVE_LIBZ
232 #endif
233 
234 #ifdef MODULE_WOLFCRYPT_RSA
235 #define HAVE_RSA
236 #define RSA_LOW_MEM
237 #define WC_RSA_BLINDING
238 #define WOLFSSL_STATIC_RSA
239 #define WOLFSSL_HAVE_SP_DH
240 #define WOLFSSL_HAVE_SP_RSA
241 #else
242 #define NO_RSA
243 #endif
244 
245 #undef NO_DES3
246 #ifndef MODULE_WOLFCRYPT_DES3
247 #define NO_DES3
248 #endif
249 
250 #undef NO_DH
251 #ifndef MODULE_WOLFCRYPT_DH
252 #define NO_DH
253 #endif
254 
255 #undef NO_DSA
256 #ifndef MODULE_WOLFCRYPT_DSA
257 #define NO_DSA
258 #endif
259 
260 #undef WOLFSSL_MD2
261 #ifdef MODULE_WOLFSSL_MD2
262 #define WOLFSSL_MD2
263 #endif
264 
265 #undef NO_MD4
266 #ifndef MODULE_WOLFCRYPT_MD4
267 #define NO_MD4
268 #endif
269 
270 #undef NO_RABBIT
271 #ifndef MODULE_WOLFCRYPT_RABBIT
272 #define NO_RABBIT
273 #endif
274 
275 #undef NO_MD5
276 #ifndef MODULE_WOLFCRYPT_MD5
277 #define NO_MD5
278 #endif
279 
280 #undef WOLFSSL_RIPEMD
281 #ifdef MODULE_WOLFCRYPT_RIPEMD
282 #define WOLFSSL_RIPEMD
283 #endif
284 
285 #undef NO_SIG_WRAPPER
286 #ifndef MODULE_WOLFCRYPT_SIGNATURE
287 #define NO_SIG_WRAPPER
288 #endif
289 
290 #undef HAVE_SRP
291 #ifdef MODULE_WOLFCRYPT_SRP
292 #define HAVE_SRP
293 #endif
294 
295 #undef HAVE_OCSP
296 #ifdef MODULE_WOLFSSL_OCSP
297 #define HAVE_OCSP
298 #endif
299 
300 #undef HAVE_CRL
301 #ifdef MODULE_WOLFSSL_CRL
302 #define HAVE_CRL
303 #endif
304 
305 #undef HAVE_TLS13
306 #ifdef MODULE_WOLFSSL_TLS13
307 #define HAVE_TLS13
308 #define WOLFSSL_TLS13
309 #define BUILD_TLS_AES_128_GCM_SHA256
310 #endif
311 
312 #ifdef __cplusplus
313 }
314 #endif
315 
316 /* The following defines should prevent declaration of name-colliding "Aes"
317  * structure on SAML21, SAME54 platform code
318  */
319 #define _SAML21_AES_COMPONENT_
320 #define _SAME54_AES_COMPONENT_
321 #define _SAMR34_AES_COMPONENT_
322 
323 #endif /* USER_SETTINGS_H */
random.h
Common interface to the software PRNG.
socket.h
Main socket header.