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