Mbed TLS v2.28.10
Loading...
Searching...
No Matches
include
mbedtls
check_config.h
Go to the documentation of this file.
1
6
/*
7
* Copyright The Mbed TLS Contributors
8
* SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
9
*/
10
11
/*
12
* It is recommended to include this file from your config.h
13
* in order to catch dependency issues early.
14
*/
15
16
#ifndef MBEDTLS_CHECK_CONFIG_H
17
#define MBEDTLS_CHECK_CONFIG_H
18
19
/* *INDENT-OFF* */
20
/*
21
* We assume CHAR_BIT is 8 in many places. In practice, this is true on our
22
* target platforms, so not an issue, but let's just be extra sure.
23
*/
24
#include <limits.h>
25
#if CHAR_BIT != 8
26
#error "Mbed TLS requires a platform with 8-bit chars"
27
#endif
28
29
#if defined(_WIN32)
30
#if !defined(MBEDTLS_PLATFORM_C)
31
#error "MBEDTLS_PLATFORM_C is required on Windows"
32
#endif
33
34
/* Fix the config here. Not convenient to put an #ifdef _WIN32 in config.h as
35
* it would confuse config.py. */
36
#if !defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && \
37
!defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO)
38
#define MBEDTLS_PLATFORM_SNPRINTF_ALT
39
#endif
40
41
#if !defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && \
42
!defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO)
43
#define MBEDTLS_PLATFORM_VSNPRINTF_ALT
44
#endif
45
#endif
/* _WIN32 */
46
47
#if defined(TARGET_LIKE_MBED) && defined(MBEDTLS_NET_C)
48
#error "The NET module is not available for mbed OS - please use the network functions provided by Mbed OS"
49
#endif
50
51
#if defined(MBEDTLS_DEPRECATED_WARNING) && \
52
!defined(__GNUC__) && !defined(__clang__)
53
#error "MBEDTLS_DEPRECATED_WARNING only works with GCC and Clang"
54
#endif
55
56
#if defined(MBEDTLS_HAVE_TIME_DATE) && !defined(MBEDTLS_HAVE_TIME)
57
#error "MBEDTLS_HAVE_TIME_DATE without MBEDTLS_HAVE_TIME does not make sense"
58
#endif
59
60
#if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C)
61
#error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites"
62
#endif
63
64
#if defined(MBEDTLS_DHM_C) && !defined(MBEDTLS_BIGNUM_C)
65
#error "MBEDTLS_DHM_C defined, but not all prerequisites"
66
#endif
67
68
#if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) && !defined(MBEDTLS_SSL_TRUNCATED_HMAC)
69
#error "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT defined, but not all prerequisites"
70
#endif
71
72
#if defined(MBEDTLS_CMAC_C) && \
73
!defined(MBEDTLS_AES_C) && !defined(MBEDTLS_DES_C)
74
#error "MBEDTLS_CMAC_C defined, but not all prerequisites"
75
#endif
76
77
#if defined(MBEDTLS_NIST_KW_C) && \
78
( !defined(MBEDTLS_AES_C) || !defined(MBEDTLS_CIPHER_C) )
79
#error "MBEDTLS_NIST_KW_C defined, but not all prerequisites"
80
#endif
81
82
#if defined(MBEDTLS_ECDH_C) && !defined(MBEDTLS_ECP_C)
83
#error "MBEDTLS_ECDH_C defined, but not all prerequisites"
84
#endif
85
86
#if defined(MBEDTLS_ECDSA_C) && \
87
( !defined(MBEDTLS_ECP_C) || \
88
!( defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \
89
defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) || \
90
defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) || \
91
defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) || \
92
defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) || \
93
defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) || \
94
defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) || \
95
defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) || \
96
defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) || \
97
defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) || \
98
defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) ) || \
99
!defined(MBEDTLS_ASN1_PARSE_C) || \
100
!defined(MBEDTLS_ASN1_WRITE_C) )
101
#error "MBEDTLS_ECDSA_C defined, but not all prerequisites"
102
#endif
103
104
#if defined(MBEDTLS_ECJPAKE_C) && \
105
( !defined(MBEDTLS_ECP_C) || !defined(MBEDTLS_MD_C) )
106
#error "MBEDTLS_ECJPAKE_C defined, but not all prerequisites"
107
#endif
108
109
#if defined(MBEDTLS_ECP_RESTARTABLE) && \
110
( defined(MBEDTLS_USE_PSA_CRYPTO) || \
111
defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) || \
112
defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) || \
113
defined(MBEDTLS_ECDSA_SIGN_ALT) || \
114
defined(MBEDTLS_ECDSA_VERIFY_ALT) || \
115
defined(MBEDTLS_ECDSA_GENKEY_ALT) || \
116
defined(MBEDTLS_ECP_INTERNAL_ALT) || \
117
defined(MBEDTLS_ECP_ALT) )
118
#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative or PSA-based ECP implementation"
119
#endif
120
121
#if defined(MBEDTLS_ECP_RESTARTABLE) && \
122
! defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
123
#error "MBEDTLS_ECP_RESTARTABLE defined, but not MBEDTLS_ECDH_LEGACY_CONTEXT"
124
#endif
125
126
#if defined(MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED) && \
127
defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
128
#error "MBEDTLS_ECDH_VARIANT_EVEREST_ENABLED defined, but MBEDTLS_ECDH_LEGACY_CONTEXT not disabled"
129
#endif
130
131
#if defined(MBEDTLS_ECP_RESTARTABLE) && \
132
!defined(MBEDTLS_ECP_C)
133
#error "MBEDTLS_ECP_RESTARTABLE defined, but not all prerequisites"
134
#endif
135
136
#if defined(MBEDTLS_ECDSA_DETERMINISTIC) && !defined(MBEDTLS_HMAC_DRBG_C)
137
#error "MBEDTLS_ECDSA_DETERMINISTIC defined, but not all prerequisites"
138
#endif
139
140
#if defined(MBEDTLS_ECP_C) && ( !defined(MBEDTLS_BIGNUM_C) || ( \
141
!defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) && \
142
!defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) && \
143
!defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) && \
144
!defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) && \
145
!defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) && \
146
!defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) && \
147
!defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) && \
148
!defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) && \
149
!defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) && \
150
!defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) && \
151
!defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) && \
152
!defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) && \
153
!defined(MBEDTLS_ECP_DP_CURVE448_ENABLED) ) )
154
#error "MBEDTLS_ECP_C defined, but not all prerequisites"
155
#endif
156
157
#if defined(MBEDTLS_ECP_C) && !( \
158
defined(MBEDTLS_ECP_ALT) || \
159
defined(MBEDTLS_CTR_DRBG_C) || \
160
defined(MBEDTLS_HMAC_DRBG_C) || \
161
defined(MBEDTLS_ECP_NO_INTERNAL_RNG))
162
#error "MBEDTLS_ECP_C requires a DRBG module unless MBEDTLS_ECP_NO_INTERNAL_RNG is defined or an alternative implementation is used"
163
#endif
164
165
#if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_ASN1_PARSE_C)
166
#error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
167
#endif
168
169
#if defined(MBEDTLS_PKCS5_C) && !defined(MBEDTLS_MD_C)
170
#error "MBEDTLS_PKCS5_C defined, but not all prerequisites"
171
#endif
172
173
#if defined(MBEDTLS_ENTROPY_C) && (!defined(MBEDTLS_SHA512_C) && \
174
!defined(MBEDTLS_SHA256_C))
175
#error "MBEDTLS_ENTROPY_C defined, but not all prerequisites"
176
#endif
177
#if defined(MBEDTLS_ENTROPY_C) && defined(MBEDTLS_SHA512_C) && \
178
defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 64)
179
#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
180
#endif
181
#if defined(MBEDTLS_ENTROPY_C) && \
182
( !defined(MBEDTLS_SHA512_C) || defined(MBEDTLS_ENTROPY_FORCE_SHA256) ) \
183
&& defined(MBEDTLS_CTR_DRBG_ENTROPY_LEN) && (MBEDTLS_CTR_DRBG_ENTROPY_LEN > 32)
184
#error "MBEDTLS_CTR_DRBG_ENTROPY_LEN value too high"
185
#endif
186
#if defined(MBEDTLS_ENTROPY_C) && \
187
defined(MBEDTLS_ENTROPY_FORCE_SHA256) && !defined(MBEDTLS_SHA256_C)
188
#error "MBEDTLS_ENTROPY_FORCE_SHA256 defined, but not all prerequisites"
189
#endif
190
191
#if defined(__has_feature)
192
#if __has_feature(memory_sanitizer)
193
#define MBEDTLS_HAS_MEMSAN
194
#endif
195
#endif
196
#if defined(MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN) && !defined(MBEDTLS_HAS_MEMSAN)
197
#error "MBEDTLS_TEST_CONSTANT_FLOW_MEMSAN requires building with MemorySanitizer"
198
#endif
199
#undef MBEDTLS_HAS_MEMSAN
200
201
#if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
202
( !defined(MBEDTLS_ENTROPY_C) || !defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) )
203
#error "MBEDTLS_TEST_NULL_ENTROPY defined, but not all prerequisites"
204
#endif
205
#if defined(MBEDTLS_TEST_NULL_ENTROPY) && \
206
( defined(MBEDTLS_ENTROPY_NV_SEED) || defined(MBEDTLS_ENTROPY_HARDWARE_ALT) || \
207
defined(MBEDTLS_HAVEGE_C) )
208
#error "MBEDTLS_TEST_NULL_ENTROPY defined, but entropy sources too"
209
#endif
210
211
#if defined(MBEDTLS_CCM_C) && ( \
212
!defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) && !defined(MBEDTLS_ARIA_C) )
213
#error "MBEDTLS_CCM_C defined, but not all prerequisites"
214
#endif
215
216
#if defined(MBEDTLS_CCM_C) && !defined(MBEDTLS_CIPHER_C)
217
#error "MBEDTLS_CCM_C defined, but not all prerequisites"
218
#endif
219
220
#if defined(MBEDTLS_GCM_C) && ( \
221
!defined(MBEDTLS_AES_C) && !defined(MBEDTLS_CAMELLIA_C) && !defined(MBEDTLS_ARIA_C) )
222
#error "MBEDTLS_GCM_C defined, but not all prerequisites"
223
#endif
224
225
#if defined(MBEDTLS_GCM_C) && !defined(MBEDTLS_CIPHER_C)
226
#error "MBEDTLS_GCM_C defined, but not all prerequisites"
227
#endif
228
229
#if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_CHACHA20_C)
230
#error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites"
231
#endif
232
233
#if defined(MBEDTLS_CHACHAPOLY_C) && !defined(MBEDTLS_POLY1305_C)
234
#error "MBEDTLS_CHACHAPOLY_C defined, but not all prerequisites"
235
#endif
236
237
#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
238
#error "MBEDTLS_ECP_RANDOMIZE_JAC_ALT defined, but not all prerequisites"
239
#endif
240
241
#if defined(MBEDTLS_ECP_ADD_MIXED_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
242
#error "MBEDTLS_ECP_ADD_MIXED_ALT defined, but not all prerequisites"
243
#endif
244
245
#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
246
#error "MBEDTLS_ECP_DOUBLE_JAC_ALT defined, but not all prerequisites"
247
#endif
248
249
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
250
#error "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT defined, but not all prerequisites"
251
#endif
252
253
#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
254
#error "MBEDTLS_ECP_NORMALIZE_JAC_ALT defined, but not all prerequisites"
255
#endif
256
257
#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
258
#error "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT defined, but not all prerequisites"
259
#endif
260
261
#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
262
#error "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT defined, but not all prerequisites"
263
#endif
264
265
#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
266
#error "MBEDTLS_ECP_NORMALIZE_MXZ_ALT defined, but not all prerequisites"
267
#endif
268
269
#if defined(MBEDTLS_ECP_NO_FALLBACK) && !defined(MBEDTLS_ECP_INTERNAL_ALT)
270
#error "MBEDTLS_ECP_NO_FALLBACK defined, but no alternative implementation enabled"
271
#endif
272
273
#if defined(MBEDTLS_HAVEGE_C) && !defined(MBEDTLS_TIMING_C)
274
#error "MBEDTLS_HAVEGE_C defined, but not all prerequisites"
275
#endif
276
277
#if defined(MBEDTLS_HKDF_C) && !defined(MBEDTLS_MD_C)
278
#error "MBEDTLS_HKDF_C defined, but not all prerequisites"
279
#endif
280
281
#if defined(MBEDTLS_HMAC_DRBG_C) && !defined(MBEDTLS_MD_C)
282
#error "MBEDTLS_HMAC_DRBG_C defined, but not all prerequisites"
283
#endif
284
285
#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) && \
286
( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \
287
!defined(MBEDTLS_X509_CRT_PARSE_C) )
288
#error "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED defined, but not all prerequisites"
289
#endif
290
291
#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) && \
292
( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \
293
!defined(MBEDTLS_X509_CRT_PARSE_C) )
294
#error "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED defined, but not all prerequisites"
295
#endif
296
297
#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) && !defined(MBEDTLS_DHM_C)
298
#error "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED defined, but not all prerequisites"
299
#endif
300
301
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) && \
302
!defined(MBEDTLS_ECDH_C)
303
#error "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED defined, but not all prerequisites"
304
#endif
305
306
#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) && \
307
( !defined(MBEDTLS_DHM_C) || !defined(MBEDTLS_RSA_C) || \
308
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
309
#error "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED defined, but not all prerequisites"
310
#endif
311
312
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) && \
313
( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_RSA_C) || \
314
!defined(MBEDTLS_X509_CRT_PARSE_C) || !defined(MBEDTLS_PKCS1_V15) )
315
#error "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED defined, but not all prerequisites"
316
#endif
317
318
#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) && \
319
( !defined(MBEDTLS_ECDH_C) || !defined(MBEDTLS_ECDSA_C) || \
320
!defined(MBEDTLS_X509_CRT_PARSE_C) )
321
#error "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED defined, but not all prerequisites"
322
#endif
323
324
#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) && \
325
( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
326
!defined(MBEDTLS_PKCS1_V15) )
327
#error "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED defined, but not all prerequisites"
328
#endif
329
330
#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) && \
331
( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_X509_CRT_PARSE_C) || \
332
!defined(MBEDTLS_PKCS1_V15) )
333
#error "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED defined, but not all prerequisites"
334
#endif
335
336
#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) && \
337
( !defined(MBEDTLS_ECJPAKE_C) || !defined(MBEDTLS_SHA256_C) || \
338
!defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) )
339
#error "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED defined, but not all prerequisites"
340
#endif
341
342
#if defined(MBEDTLS_KEY_EXCHANGE_WITH_CERT_ENABLED) && \
343
!defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE) && \
344
( !defined(MBEDTLS_SHA256_C) && \
345
!defined(MBEDTLS_SHA512_C) && \
346
!defined(MBEDTLS_SHA1_C) )
347
#error "!MBEDTLS_SSL_KEEP_PEER_CERTIFICATE requires MBEDTLS_SHA512_C, MBEDTLS_SHA256_C or MBEDTLS_SHA1_C"
348
#endif
349
350
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) && \
351
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
352
#error "MBEDTLS_MEMORY_BUFFER_ALLOC_C defined, but not all prerequisites"
353
#endif
354
355
#if defined(MBEDTLS_MEMORY_BACKTRACE) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
356
#error "MBEDTLS_MEMORY_BACKTRACE defined, but not all prerequisites"
357
#endif
358
359
#if defined(MBEDTLS_MEMORY_DEBUG) && !defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
360
#error "MBEDTLS_MEMORY_DEBUG defined, but not all prerequisites"
361
#endif
362
363
#if defined(MBEDTLS_PADLOCK_C) && !defined(MBEDTLS_HAVE_ASM)
364
#error "MBEDTLS_PADLOCK_C defined, but not all prerequisites"
365
#endif
366
367
#if defined(MBEDTLS_PEM_PARSE_C) && !defined(MBEDTLS_BASE64_C)
368
#error "MBEDTLS_PEM_PARSE_C defined, but not all prerequisites"
369
#endif
370
371
#if defined(MBEDTLS_PEM_WRITE_C) && !defined(MBEDTLS_BASE64_C)
372
#error "MBEDTLS_PEM_WRITE_C defined, but not all prerequisites"
373
#endif
374
375
#if defined(MBEDTLS_PK_C) && \
376
( !defined(MBEDTLS_RSA_C) && !defined(MBEDTLS_ECP_C) )
377
#error "MBEDTLS_PK_C defined, but not all prerequisites"
378
#endif
379
380
#if defined(MBEDTLS_PK_PARSE_C) && !defined(MBEDTLS_PK_C)
381
#error "MBEDTLS_PK_PARSE_C defined, but not all prerequisites"
382
#endif
383
384
#if defined(MBEDTLS_PK_WRITE_C) && !defined(MBEDTLS_PK_C)
385
#error "MBEDTLS_PK_WRITE_C defined, but not all prerequisites"
386
#endif
387
388
#if defined(MBEDTLS_PKCS11_C) && !defined(MBEDTLS_PK_C)
389
#error "MBEDTLS_PKCS11_C defined, but not all prerequisites"
390
#endif
391
392
#if defined(MBEDTLS_PKCS11_C)
393
#if defined(MBEDTLS_DEPRECATED_REMOVED)
394
#error "MBEDTLS_PKCS11_C is deprecated and will be removed in a future version of Mbed TLS"
395
#elif defined(MBEDTLS_DEPRECATED_WARNING)
396
#warning "MBEDTLS_PKCS11_C is deprecated and will be removed in a future version of Mbed TLS"
397
#endif
398
#endif
/* MBEDTLS_PKCS11_C */
399
400
#if defined(MBEDTLS_PLATFORM_EXIT_ALT) && !defined(MBEDTLS_PLATFORM_C)
401
#error "MBEDTLS_PLATFORM_EXIT_ALT defined, but not all prerequisites"
402
#endif
403
404
#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) && !defined(MBEDTLS_PLATFORM_C)
405
#error "MBEDTLS_PLATFORM_EXIT_MACRO defined, but not all prerequisites"
406
#endif
407
408
#if defined(MBEDTLS_PLATFORM_EXIT_MACRO) &&\
409
( defined(MBEDTLS_PLATFORM_STD_EXIT) ||\
410
defined(MBEDTLS_PLATFORM_EXIT_ALT) )
411
#error "MBEDTLS_PLATFORM_EXIT_MACRO and MBEDTLS_PLATFORM_STD_EXIT/MBEDTLS_PLATFORM_EXIT_ALT cannot be defined simultaneously"
412
#endif
413
414
#if defined(MBEDTLS_PLATFORM_TIME_ALT) &&\
415
( !defined(MBEDTLS_PLATFORM_C) ||\
416
!defined(MBEDTLS_HAVE_TIME) )
417
#error "MBEDTLS_PLATFORM_TIME_ALT defined, but not all prerequisites"
418
#endif
419
420
#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
421
( !defined(MBEDTLS_PLATFORM_C) ||\
422
!defined(MBEDTLS_HAVE_TIME) )
423
#error "MBEDTLS_PLATFORM_TIME_MACRO defined, but not all prerequisites"
424
#endif
425
426
#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
427
( !defined(MBEDTLS_PLATFORM_C) ||\
428
!defined(MBEDTLS_HAVE_TIME) )
429
#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO defined, but not all prerequisites"
430
#endif
431
432
#if defined(MBEDTLS_PLATFORM_TIME_MACRO) &&\
433
( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
434
defined(MBEDTLS_PLATFORM_TIME_ALT) )
435
#error "MBEDTLS_PLATFORM_TIME_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
436
#endif
437
438
#if defined(MBEDTLS_PLATFORM_TIME_TYPE_MACRO) &&\
439
( defined(MBEDTLS_PLATFORM_STD_TIME) ||\
440
defined(MBEDTLS_PLATFORM_TIME_ALT) )
441
#error "MBEDTLS_PLATFORM_TIME_TYPE_MACRO and MBEDTLS_PLATFORM_STD_TIME/MBEDTLS_PLATFORM_TIME_ALT cannot be defined simultaneously"
442
#endif
443
444
#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
445
#error "MBEDTLS_PLATFORM_FPRINTF_ALT defined, but not all prerequisites"
446
#endif
447
448
#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
449
#error "MBEDTLS_PLATFORM_FPRINTF_MACRO defined, but not all prerequisites"
450
#endif
451
452
#if defined(MBEDTLS_PLATFORM_FPRINTF_MACRO) &&\
453
( defined(MBEDTLS_PLATFORM_STD_FPRINTF) ||\
454
defined(MBEDTLS_PLATFORM_FPRINTF_ALT) )
455
#error "MBEDTLS_PLATFORM_FPRINTF_MACRO and MBEDTLS_PLATFORM_STD_FPRINTF/MBEDTLS_PLATFORM_FPRINTF_ALT cannot be defined simultaneously"
456
#endif
457
458
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
459
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
460
#error "MBEDTLS_PLATFORM_FREE_MACRO defined, but not all prerequisites"
461
#endif
462
463
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) &&\
464
defined(MBEDTLS_PLATFORM_STD_FREE)
465
#error "MBEDTLS_PLATFORM_FREE_MACRO and MBEDTLS_PLATFORM_STD_FREE cannot be defined simultaneously"
466
#endif
467
468
#if defined(MBEDTLS_PLATFORM_FREE_MACRO) && !defined(MBEDTLS_PLATFORM_CALLOC_MACRO)
469
#error "MBEDTLS_PLATFORM_CALLOC_MACRO must be defined if MBEDTLS_PLATFORM_FREE_MACRO is"
470
#endif
471
472
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
473
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_PLATFORM_MEMORY) )
474
#error "MBEDTLS_PLATFORM_CALLOC_MACRO defined, but not all prerequisites"
475
#endif
476
477
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) &&\
478
defined(MBEDTLS_PLATFORM_STD_CALLOC)
479
#error "MBEDTLS_PLATFORM_CALLOC_MACRO and MBEDTLS_PLATFORM_STD_CALLOC cannot be defined simultaneously"
480
#endif
481
482
#if defined(MBEDTLS_PLATFORM_CALLOC_MACRO) && !defined(MBEDTLS_PLATFORM_FREE_MACRO)
483
#error "MBEDTLS_PLATFORM_FREE_MACRO must be defined if MBEDTLS_PLATFORM_CALLOC_MACRO is"
484
#endif
485
486
#if defined(MBEDTLS_PLATFORM_MEMORY) && !defined(MBEDTLS_PLATFORM_C)
487
#error "MBEDTLS_PLATFORM_MEMORY defined, but not all prerequisites"
488
#endif
489
490
#if defined(MBEDTLS_PLATFORM_PRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
491
#error "MBEDTLS_PLATFORM_PRINTF_ALT defined, but not all prerequisites"
492
#endif
493
494
#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
495
#error "MBEDTLS_PLATFORM_PRINTF_MACRO defined, but not all prerequisites"
496
#endif
497
498
#if defined(MBEDTLS_PLATFORM_PRINTF_MACRO) &&\
499
( defined(MBEDTLS_PLATFORM_STD_PRINTF) ||\
500
defined(MBEDTLS_PLATFORM_PRINTF_ALT) )
501
#error "MBEDTLS_PLATFORM_PRINTF_MACRO and MBEDTLS_PLATFORM_STD_PRINTF/MBEDTLS_PLATFORM_PRINTF_ALT cannot be defined simultaneously"
502
#endif
503
504
#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
505
#error "MBEDTLS_PLATFORM_SNPRINTF_ALT defined, but not all prerequisites"
506
#endif
507
508
#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
509
#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO defined, but not all prerequisites"
510
#endif
511
512
#if defined(MBEDTLS_PLATFORM_SNPRINTF_MACRO) &&\
513
( defined(MBEDTLS_PLATFORM_STD_SNPRINTF) ||\
514
defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) )
515
#error "MBEDTLS_PLATFORM_SNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_SNPRINTF/MBEDTLS_PLATFORM_SNPRINTF_ALT cannot be defined simultaneously"
516
#endif
517
518
#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) && !defined(MBEDTLS_PLATFORM_C)
519
#error "MBEDTLS_PLATFORM_VSNPRINTF_ALT defined, but not all prerequisites"
520
#endif
521
522
#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) && !defined(MBEDTLS_PLATFORM_C)
523
#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO defined, but not all prerequisites"
524
#endif
525
526
#if defined(MBEDTLS_PLATFORM_VSNPRINTF_MACRO) &&\
527
( defined(MBEDTLS_PLATFORM_STD_VSNPRINTF) ||\
528
defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT) )
529
#error "MBEDTLS_PLATFORM_VSNPRINTF_MACRO and MBEDTLS_PLATFORM_STD_VSNPRINTF/MBEDTLS_PLATFORM_VSNPRINTF_ALT cannot be defined simultaneously"
530
#endif
531
532
#if defined(MBEDTLS_PLATFORM_STD_MEM_HDR) &&\
533
!defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
534
#error "MBEDTLS_PLATFORM_STD_MEM_HDR defined, but not all prerequisites"
535
#endif
536
537
#if defined(MBEDTLS_PLATFORM_STD_CALLOC) && !defined(MBEDTLS_PLATFORM_MEMORY)
538
#error "MBEDTLS_PLATFORM_STD_CALLOC defined, but not all prerequisites"
539
#endif
540
541
#if defined(MBEDTLS_PLATFORM_STD_FREE) && !defined(MBEDTLS_PLATFORM_MEMORY)
542
#error "MBEDTLS_PLATFORM_STD_FREE defined, but not all prerequisites"
543
#endif
544
545
#if defined(MBEDTLS_PLATFORM_STD_EXIT) &&\
546
!defined(MBEDTLS_PLATFORM_EXIT_ALT)
547
#error "MBEDTLS_PLATFORM_STD_EXIT defined, but not all prerequisites"
548
#endif
549
550
#if defined(MBEDTLS_PLATFORM_STD_TIME) &&\
551
( !defined(MBEDTLS_PLATFORM_TIME_ALT) ||\
552
!defined(MBEDTLS_HAVE_TIME) )
553
#error "MBEDTLS_PLATFORM_STD_TIME defined, but not all prerequisites"
554
#endif
555
556
#if defined(MBEDTLS_PLATFORM_STD_FPRINTF) &&\
557
!defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
558
#error "MBEDTLS_PLATFORM_STD_FPRINTF defined, but not all prerequisites"
559
#endif
560
561
#if defined(MBEDTLS_PLATFORM_STD_PRINTF) &&\
562
!defined(MBEDTLS_PLATFORM_PRINTF_ALT)
563
#error "MBEDTLS_PLATFORM_STD_PRINTF defined, but not all prerequisites"
564
#endif
565
566
#if defined(MBEDTLS_PLATFORM_STD_SNPRINTF) &&\
567
!defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
568
#error "MBEDTLS_PLATFORM_STD_SNPRINTF defined, but not all prerequisites"
569
#endif
570
571
#if defined(MBEDTLS_ENTROPY_NV_SEED) &&\
572
( !defined(MBEDTLS_PLATFORM_C) || !defined(MBEDTLS_ENTROPY_C) )
573
#error "MBEDTLS_ENTROPY_NV_SEED defined, but not all prerequisites"
574
#endif
575
576
#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) &&\
577
!defined(MBEDTLS_ENTROPY_NV_SEED)
578
#error "MBEDTLS_PLATFORM_NV_SEED_ALT defined, but not all prerequisites"
579
#endif
580
581
#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) &&\
582
!defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
583
#error "MBEDTLS_PLATFORM_STD_NV_SEED_READ defined, but not all prerequisites"
584
#endif
585
586
#if defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) &&\
587
!defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
588
#error "MBEDTLS_PLATFORM_STD_NV_SEED_WRITE defined, but not all prerequisites"
589
#endif
590
591
#if defined(MBEDTLS_PLATFORM_NV_SEED_READ_MACRO) &&\
592
( defined(MBEDTLS_PLATFORM_STD_NV_SEED_READ) ||\
593
defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
594
#error "MBEDTLS_PLATFORM_NV_SEED_READ_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_READ cannot be defined simultaneously"
595
#endif
596
597
#if defined(MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO) &&\
598
( defined(MBEDTLS_PLATFORM_STD_NV_SEED_WRITE) ||\
599
defined(MBEDTLS_PLATFORM_NV_SEED_ALT) )
600
#error "MBEDTLS_PLATFORM_NV_SEED_WRITE_MACRO and MBEDTLS_PLATFORM_STD_NV_SEED_WRITE cannot be defined simultaneously"
601
#endif
602
603
#if defined(MBEDTLS_PSA_CRYPTO_C) && \
604
!( ( ( defined(MBEDTLS_CTR_DRBG_C) || defined(MBEDTLS_HMAC_DRBG_C) ) && \
605
defined(MBEDTLS_ENTROPY_C) ) || \
606
defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG) )
607
#error "MBEDTLS_PSA_CRYPTO_C defined, but not all prerequisites (missing RNG)"
608
#endif
609
610
#if defined(MBEDTLS_PSA_CRYPTO_SPM) && !defined(MBEDTLS_PSA_CRYPTO_C)
611
#error "MBEDTLS_PSA_CRYPTO_SPM defined, but not all prerequisites"
612
#endif
613
614
#if defined(MBEDTLS_PSA_CRYPTO_SE_C) && \
615
! ( defined(MBEDTLS_PSA_CRYPTO_C) && \
616
defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) )
617
#error "MBEDTLS_PSA_CRYPTO_SE_C defined, but not all prerequisites"
618
#endif
619
620
#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \
621
! defined(MBEDTLS_PSA_CRYPTO_C)
622
#error "MBEDTLS_PSA_CRYPTO_STORAGE_C defined, but not all prerequisites"
623
#endif
624
625
#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
626
!( defined(MBEDTLS_PSA_CRYPTO_STORAGE_C) && \
627
defined(MBEDTLS_ENTROPY_NV_SEED) )
628
#error "MBEDTLS_PSA_INJECT_ENTROPY defined, but not all prerequisites"
629
#endif
630
631
#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
632
!defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
633
#error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with actual entropy sources"
634
#endif
635
636
#if defined(MBEDTLS_PSA_INJECT_ENTROPY) && \
637
defined(MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG)
638
#error "MBEDTLS_PSA_INJECT_ENTROPY is not compatible with MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG"
639
#endif
640
641
#if defined(MBEDTLS_PSA_ITS_FILE_C) && \
642
!defined(MBEDTLS_FS_IO)
643
#error "MBEDTLS_PSA_ITS_FILE_C defined, but not all prerequisites"
644
#endif
645
646
#if defined(MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER) && \
647
defined(MBEDTLS_USE_PSA_CRYPTO)
648
#error "MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER defined, but it cannot coexist with MBEDTLS_USE_PSA_CRYPTO."
649
#endif
650
651
#if defined(MBEDTLS_PK_C) && defined(MBEDTLS_USE_PSA_CRYPTO) && \
652
!defined(MBEDTLS_PK_WRITE_C) && defined(MBEDTLS_ECDSA_C)
653
#error "MBEDTLS_PK_C in configuration with MBEDTLS_USE_PSA_CRYPTO and \
654
MBEDTLS_ECDSA_C requires MBEDTLS_PK_WRITE_C to be defined."
655
#endif
656
657
#if defined(MBEDTLS_PSA_CRYPTO_C) && defined(MBEDTLS_RSA_C) && \
658
!( defined(MBEDTLS_PK_PARSE_C) && defined(MBEDTLS_PK_WRITE_C) )
659
#error "MBEDTLS_PSA_CRYPTO_C with MBEDTLS_RSA_C requires MBEDTLS_PK_PARSE_C and MBEDTLS_PK_WRITE_C"
660
#endif
661
662
#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
663
!defined(MBEDTLS_OID_C) )
664
#error "MBEDTLS_RSA_C defined, but not all prerequisites"
665
#endif
666
667
#if defined(MBEDTLS_RSA_C) && ( !defined(MBEDTLS_PKCS1_V21) && \
668
!defined(MBEDTLS_PKCS1_V15) )
669
#error "MBEDTLS_RSA_C defined, but none of the PKCS1 versions enabled"
670
#endif
671
672
#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) && \
673
( !defined(MBEDTLS_RSA_C) || !defined(MBEDTLS_PKCS1_V21) )
674
#error "MBEDTLS_X509_RSASSA_PSS_SUPPORT defined, but not all prerequisites"
675
#endif
676
677
#if defined(MBEDTLS_SHA512_NO_SHA384) && !defined(MBEDTLS_SHA512_C)
678
#error "MBEDTLS_SHA512_NO_SHA384 defined without MBEDTLS_SHA512_C"
679
#endif
680
681
#if defined(MBEDTLS_SSL_PROTO_SSL3) && ( !defined(MBEDTLS_MD5_C) || \
682
!defined(MBEDTLS_SHA1_C) )
683
#error "MBEDTLS_SSL_PROTO_SSL3 defined, but not all prerequisites"
684
#endif
685
686
#if defined(MBEDTLS_SSL_PROTO_TLS1) && ( !defined(MBEDTLS_MD5_C) || \
687
!defined(MBEDTLS_SHA1_C) )
688
#error "MBEDTLS_SSL_PROTO_TLS1 defined, but not all prerequisites"
689
#endif
690
691
#if defined(MBEDTLS_SSL_PROTO_TLS1_1) && ( !defined(MBEDTLS_MD5_C) || \
692
!defined(MBEDTLS_SHA1_C) )
693
#error "MBEDTLS_SSL_PROTO_TLS1_1 defined, but not all prerequisites"
694
#endif
695
696
#if defined(MBEDTLS_SSL_PROTO_TLS1_2) && ( !defined(MBEDTLS_SHA1_C) && \
697
!defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) )
698
#error "MBEDTLS_SSL_PROTO_TLS1_2 defined, but not all prerequisites"
699
#endif
700
701
#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL) && ( !defined(MBEDTLS_HKDF_C) && \
702
!defined(MBEDTLS_SHA256_C) && !defined(MBEDTLS_SHA512_C) )
703
#error "MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL defined, but not all prerequisites"
704
#endif
705
706
#if (defined(MBEDTLS_SSL_PROTO_SSL3) || defined(MBEDTLS_SSL_PROTO_TLS1) || \
707
defined(MBEDTLS_SSL_PROTO_TLS1_1) || defined(MBEDTLS_SSL_PROTO_TLS1_2)) && \
708
!(defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) || \
709
defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) || \
710
defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) || \
711
defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) || \
712
defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) || \
713
defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) || \
714
defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) || \
715
defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) || \
716
defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) || \
717
defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) || \
718
defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) )
719
#error "One or more versions of the TLS protocol are enabled "
\
720
"but no key exchange methods defined with MBEDTLS_KEY_EXCHANGE_xxxx"
721
#endif
722
723
#if defined(MBEDTLS_SSL_PROTO_DTLS) && \
724
!defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
725
!defined(MBEDTLS_SSL_PROTO_TLS1_2)
726
#error "MBEDTLS_SSL_PROTO_DTLS defined, but not all prerequisites"
727
#endif
728
729
#if defined(MBEDTLS_SSL_CLI_C) && !defined(MBEDTLS_SSL_TLS_C)
730
#error "MBEDTLS_SSL_CLI_C defined, but not all prerequisites"
731
#endif
732
733
#if defined(MBEDTLS_SSL_TLS_C) && ( !defined(MBEDTLS_CIPHER_C) || \
734
!defined(MBEDTLS_MD_C) )
735
#error "MBEDTLS_SSL_TLS_C defined, but not all prerequisites"
736
#endif
737
738
#if defined(MBEDTLS_SSL_SRV_C) && !defined(MBEDTLS_SSL_TLS_C)
739
#error "MBEDTLS_SSL_SRV_C defined, but not all prerequisites"
740
#endif
741
742
#if defined(MBEDTLS_SSL_TLS_C) && (!defined(MBEDTLS_SSL_PROTO_SSL3) && \
743
!defined(MBEDTLS_SSL_PROTO_TLS1) && !defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
744
!defined(MBEDTLS_SSL_PROTO_TLS1_2))
745
#error "MBEDTLS_SSL_TLS_C defined, but no protocols are active"
746
#endif
747
748
#if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \
749
defined(MBEDTLS_SSL_PROTO_TLS1_1) && !defined(MBEDTLS_SSL_PROTO_TLS1))
750
#error "Illegal protocol selection"
751
#endif
752
753
#if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_TLS1) && \
754
defined(MBEDTLS_SSL_PROTO_TLS1_2) && !defined(MBEDTLS_SSL_PROTO_TLS1_1))
755
#error "Illegal protocol selection"
756
#endif
757
758
#if defined(MBEDTLS_SSL_TLS_C) && (defined(MBEDTLS_SSL_PROTO_SSL3) && \
759
defined(MBEDTLS_SSL_PROTO_TLS1_2) && (!defined(MBEDTLS_SSL_PROTO_TLS1) || \
760
!defined(MBEDTLS_SSL_PROTO_TLS1_1)))
761
#error "Illegal protocol selection"
762
#endif
763
764
#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) && !defined(MBEDTLS_SSL_PROTO_DTLS)
765
#error "MBEDTLS_SSL_DTLS_HELLO_VERIFY defined, but not all prerequisites"
766
#endif
767
768
#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) && \
769
!defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
770
#error "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE defined, but not all prerequisites"
771
#endif
772
773
#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) && \
774
( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
775
#error "MBEDTLS_SSL_DTLS_ANTI_REPLAY defined, but not all prerequisites"
776
#endif
777
778
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
779
( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
780
#error "MBEDTLS_SSL_DTLS_CONNECTION_ID defined, but not all prerequisites"
781
#endif
782
783
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
784
defined(MBEDTLS_SSL_CID_IN_LEN_MAX) && \
785
MBEDTLS_SSL_CID_IN_LEN_MAX > 255
786
#error "MBEDTLS_SSL_CID_IN_LEN_MAX too large (max 255)"
787
#endif
788
789
#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID) && \
790
defined(MBEDTLS_SSL_CID_OUT_LEN_MAX) && \
791
MBEDTLS_SSL_CID_OUT_LEN_MAX > 255
792
#error "MBEDTLS_SSL_CID_OUT_LEN_MAX too large (max 255)"
793
#endif
794
795
#if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) && \
796
( !defined(MBEDTLS_SSL_TLS_C) || !defined(MBEDTLS_SSL_PROTO_DTLS) )
797
#error "MBEDTLS_SSL_DTLS_BADMAC_LIMIT defined, but not all prerequisites"
798
#endif
799
800
#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) && \
801
!defined(MBEDTLS_SSL_PROTO_TLS1) && \
802
!defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
803
!defined(MBEDTLS_SSL_PROTO_TLS1_2)
804
#error "MBEDTLS_SSL_ENCRYPT_THEN_MAC defined, but not all prerequisites"
805
#endif
806
807
#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) && \
808
!defined(MBEDTLS_SSL_PROTO_TLS1) && \
809
!defined(MBEDTLS_SSL_PROTO_TLS1_1) && \
810
!defined(MBEDTLS_SSL_PROTO_TLS1_2)
811
#error "MBEDTLS_SSL_EXTENDED_MASTER_SECRET defined, but not all prerequisites"
812
#endif
813
814
#if defined(MBEDTLS_SSL_TICKET_C) && !defined(MBEDTLS_CIPHER_C)
815
#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
816
#endif
817
818
#if defined(MBEDTLS_SSL_TICKET_C) && \
819
!( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) )
820
#error "MBEDTLS_SSL_TICKET_C defined, but not all prerequisites"
821
#endif
822
823
#if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) && \
824
!defined(MBEDTLS_SSL_PROTO_SSL3) && !defined(MBEDTLS_SSL_PROTO_TLS1)
825
#error "MBEDTLS_SSL_CBC_RECORD_SPLITTING defined, but not all prerequisites"
826
#endif
827
828
#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) && \
829
!defined(MBEDTLS_X509_CRT_PARSE_C)
830
#error "MBEDTLS_SSL_SERVER_NAME_INDICATION defined, but not all prerequisites"
831
#endif
832
833
#if defined(MBEDTLS_THREADING_PTHREAD)
834
#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
835
#error "MBEDTLS_THREADING_PTHREAD defined, but not all prerequisites"
836
#endif
837
#define MBEDTLS_THREADING_IMPL
838
#endif
839
840
#if defined(MBEDTLS_THREADING_ALT)
841
#if !defined(MBEDTLS_THREADING_C) || defined(MBEDTLS_THREADING_IMPL)
842
#error "MBEDTLS_THREADING_ALT defined, but not all prerequisites"
843
#endif
844
#define MBEDTLS_THREADING_IMPL
845
#endif
846
847
#if defined(MBEDTLS_THREADING_C) && !defined(MBEDTLS_THREADING_IMPL)
848
#error "MBEDTLS_THREADING_C defined, single threading implementation required"
849
#endif
850
#undef MBEDTLS_THREADING_IMPL
851
852
#if defined(MBEDTLS_USE_PSA_CRYPTO) && !defined(MBEDTLS_PSA_CRYPTO_C)
853
#error "MBEDTLS_USE_PSA_CRYPTO defined, but not all prerequisites"
854
#endif
855
856
#if defined(MBEDTLS_VERSION_FEATURES) && !defined(MBEDTLS_VERSION_C)
857
#error "MBEDTLS_VERSION_FEATURES defined, but not all prerequisites"
858
#endif
859
860
#if defined(MBEDTLS_X509_USE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
861
!defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_PARSE_C) || \
862
!defined(MBEDTLS_PK_PARSE_C) )
863
#error "MBEDTLS_X509_USE_C defined, but not all prerequisites"
864
#endif
865
866
#if defined(MBEDTLS_X509_CREATE_C) && ( !defined(MBEDTLS_BIGNUM_C) || \
867
!defined(MBEDTLS_OID_C) || !defined(MBEDTLS_ASN1_WRITE_C) || \
868
!defined(MBEDTLS_PK_WRITE_C) )
869
#error "MBEDTLS_X509_CREATE_C defined, but not all prerequisites"
870
#endif
871
872
#if defined(MBEDTLS_CERTS_C) && !defined(MBEDTLS_X509_USE_C)
873
#error "MBEDTLS_CERTS_C defined, but not all prerequisites"
874
#endif
875
876
#if defined(MBEDTLS_X509_CRT_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
877
#error "MBEDTLS_X509_CRT_PARSE_C defined, but not all prerequisites"
878
#endif
879
880
#if defined(MBEDTLS_X509_CRL_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
881
#error "MBEDTLS_X509_CRL_PARSE_C defined, but not all prerequisites"
882
#endif
883
884
#if defined(MBEDTLS_X509_CSR_PARSE_C) && ( !defined(MBEDTLS_X509_USE_C) )
885
#error "MBEDTLS_X509_CSR_PARSE_C defined, but not all prerequisites"
886
#endif
887
888
#if defined(MBEDTLS_X509_CRT_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
889
#error "MBEDTLS_X509_CRT_WRITE_C defined, but not all prerequisites"
890
#endif
891
892
#if defined(MBEDTLS_X509_CSR_WRITE_C) && ( !defined(MBEDTLS_X509_CREATE_C) )
893
#error "MBEDTLS_X509_CSR_WRITE_C defined, but not all prerequisites"
894
#endif
895
896
#if defined(MBEDTLS_HAVE_INT32) && defined(MBEDTLS_HAVE_INT64)
897
#error "MBEDTLS_HAVE_INT32 and MBEDTLS_HAVE_INT64 cannot be defined simultaneously"
898
#endif
/* MBEDTLS_HAVE_INT32 && MBEDTLS_HAVE_INT64 */
899
900
#if ( defined(MBEDTLS_HAVE_INT32) || defined(MBEDTLS_HAVE_INT64) ) && \
901
defined(MBEDTLS_HAVE_ASM)
902
#error "MBEDTLS_HAVE_INT32/MBEDTLS_HAVE_INT64 and MBEDTLS_HAVE_ASM cannot be defined simultaneously"
903
#endif
/* (MBEDTLS_HAVE_INT32 || MBEDTLS_HAVE_INT64) && MBEDTLS_HAVE_ASM */
904
905
#if defined(MBEDTLS_SSL_PROTO_SSL3)
906
#if defined(MBEDTLS_DEPRECATED_REMOVED)
907
#error "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS"
908
#elif defined(MBEDTLS_DEPRECATED_WARNING)
909
#warning "MBEDTLS_SSL_PROTO_SSL3 is deprecated and will be removed in a future version of Mbed TLS"
910
#endif
911
#endif
/* MBEDTLS_SSL_PROTO_SSL3 */
912
913
#if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
914
#if defined(MBEDTLS_DEPRECATED_REMOVED)
915
#error "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS"
916
#elif defined(MBEDTLS_DEPRECATED_WARNING)
917
#warning "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO is deprecated and will be removed in a future version of Mbed TLS"
918
#endif
919
#endif
/* MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */
920
921
#if defined(MBEDTLS_SSL_HW_RECORD_ACCEL)
922
#if defined(MBEDTLS_DEPRECATED_REMOVED)
923
#error "MBEDTLS_SSL_HW_RECORD_ACCEL is deprecated and will be removed in a future version of Mbed TLS"
924
#elif defined(MBEDTLS_DEPRECATED_WARNING)
925
#warning "MBEDTLS_SSL_HW_RECORD_ACCEL is deprecated and will be removed in a future version of Mbed TLS"
926
#endif
/* MBEDTLS_DEPRECATED_REMOVED */
927
#endif
/* MBEDTLS_SSL_HW_RECORD_ACCEL */
928
929
#if defined(MBEDTLS_SSL_DTLS_SRTP) && ( !defined(MBEDTLS_SSL_PROTO_DTLS) )
930
#error "MBEDTLS_SSL_DTLS_SRTP defined, but not all prerequisites"
931
#endif
932
933
#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH) && ( !defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) )
934
#error "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH defined, but not all prerequisites"
935
#endif
936
937
#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION) && !( defined(MBEDTLS_GCM_C) || defined(MBEDTLS_CCM_C) || defined(MBEDTLS_CHACHAPOLY_C) )
938
#error "MBEDTLS_SSL_CONTEXT_SERIALIZATION defined, but not all prerequisites"
939
#endif
940
941
/*
942
* Avoid warning from -pedantic. This is a convenient place for this
943
* workaround since this is included by every single file before the
944
* #if defined(MBEDTLS_xxx_C) that results in empty translation units.
945
*/
946
typedef
int
mbedtls_iso_c_forbids_empty_translation_units
;
947
948
/* *INDENT-ON* */
949
#endif
/* MBEDTLS_CHECK_CONFIG_H */
mbedtls_iso_c_forbids_empty_translation_units
int mbedtls_iso_c_forbids_empty_translation_units
Definition
check_config.h:946
Generated on Tue Apr 15 2025 11:09:25 for Mbed TLS v2.28.10 by
1.9.7