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