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