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