blob: 64e9e86db66ebc4295153900fcbed523a2cb5042 [file] [log] [blame]
Paul Bakker0f90d7d2014-04-30 11:49:44 +02001/*
2 * Version feature information
3 *
Manuel Pégourié-Gonnard6fb81872015-07-27 11:11:48 +02004 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
Manuel Pégourié-Gonnard37ff1402015-09-04 14:21:07 +02005 * SPDX-License-Identifier: Apache-2.0
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License"); you may
8 * not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
15 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
Paul Bakker0f90d7d2014-04-30 11:49:44 +020018 *
Manuel Pégourié-Gonnardfe446432015-03-06 13:17:10 +000019 * This file is part of mbed TLS (https://tls.mbed.org)
Paul Bakker0f90d7d2014-04-30 11:49:44 +020020 */
21
Gilles Peskinedb09ef62020-06-03 01:43:33 +020022#include "common.h"
Paul Bakker0f90d7d2014-04-30 11:49:44 +020023
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020024#if defined(MBEDTLS_VERSION_C)
Paul Bakker0f90d7d2014-04-30 11:49:44 +020025
Manuel Pégourié-Gonnard7f809972015-03-09 17:05:11 +000026#include "mbedtls/version.h"
Paul Bakker0f90d7d2014-04-30 11:49:44 +020027
28#include <string.h>
29
Máté Vargac5de4622019-06-12 12:26:37 +020030static const char * const features[] = {
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020031#if defined(MBEDTLS_VERSION_FEATURES)
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020032#if defined(MBEDTLS_HAVE_ASM)
33 "MBEDTLS_HAVE_ASM",
34#endif /* MBEDTLS_HAVE_ASM */
Gilles Peskine683ac272017-06-15 18:01:54 +020035#if defined(MBEDTLS_NO_UDBL_DIVISION)
36 "MBEDTLS_NO_UDBL_DIVISION",
37#endif /* MBEDTLS_NO_UDBL_DIVISION */
Manuel Pégourié-Gonnard2adb3752018-06-07 10:51:44 +020038#if defined(MBEDTLS_NO_64BIT_MULTIPLICATION)
39 "MBEDTLS_NO_64BIT_MULTIPLICATION",
40#endif /* MBEDTLS_NO_64BIT_MULTIPLICATION */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020041#if defined(MBEDTLS_HAVE_SSE2)
42 "MBEDTLS_HAVE_SSE2",
43#endif /* MBEDTLS_HAVE_SSE2 */
44#if defined(MBEDTLS_HAVE_TIME)
45 "MBEDTLS_HAVE_TIME",
46#endif /* MBEDTLS_HAVE_TIME */
Manuel Pégourié-Gonnardf9cbd732015-06-22 12:06:50 +020047#if defined(MBEDTLS_HAVE_TIME_DATE)
48 "MBEDTLS_HAVE_TIME_DATE",
49#endif /* MBEDTLS_HAVE_TIME_DATE */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020050#if defined(MBEDTLS_PLATFORM_MEMORY)
51 "MBEDTLS_PLATFORM_MEMORY",
52#endif /* MBEDTLS_PLATFORM_MEMORY */
53#if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS)
54 "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS",
55#endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */
56#if defined(MBEDTLS_PLATFORM_EXIT_ALT)
57 "MBEDTLS_PLATFORM_EXIT_ALT",
58#endif /* MBEDTLS_PLATFORM_EXIT_ALT */
Simon Butcher3fe6cd32016-04-26 19:51:29 +010059#if defined(MBEDTLS_PLATFORM_TIME_ALT)
60 "MBEDTLS_PLATFORM_TIME_ALT",
61#endif /* MBEDTLS_PLATFORM_TIME_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020062#if defined(MBEDTLS_PLATFORM_FPRINTF_ALT)
63 "MBEDTLS_PLATFORM_FPRINTF_ALT",
64#endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */
65#if defined(MBEDTLS_PLATFORM_PRINTF_ALT)
66 "MBEDTLS_PLATFORM_PRINTF_ALT",
67#endif /* MBEDTLS_PLATFORM_PRINTF_ALT */
68#if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT)
69 "MBEDTLS_PLATFORM_SNPRINTF_ALT",
70#endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */
k-stachowiak723f8672018-07-16 14:27:07 +020071#if defined(MBEDTLS_PLATFORM_VSNPRINTF_ALT)
72 "MBEDTLS_PLATFORM_VSNPRINTF_ALT",
73#endif /* MBEDTLS_PLATFORM_VSNPRINTF_ALT */
Paul Bakkerbddf9ab2016-06-01 15:58:12 +010074#if defined(MBEDTLS_PLATFORM_NV_SEED_ALT)
75 "MBEDTLS_PLATFORM_NV_SEED_ALT",
76#endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */
Simon Butchera95d6302017-07-21 23:48:55 +010077#if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
78 "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT",
79#endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020080#if defined(MBEDTLS_DEPRECATED_WARNING)
81 "MBEDTLS_DEPRECATED_WARNING",
82#endif /* MBEDTLS_DEPRECATED_WARNING */
83#if defined(MBEDTLS_DEPRECATED_REMOVED)
84 "MBEDTLS_DEPRECATED_REMOVED",
85#endif /* MBEDTLS_DEPRECATED_REMOVED */
Andrzej Kurekc470b6b2019-01-31 08:20:20 -050086#if defined(MBEDTLS_CHECK_PARAMS)
87 "MBEDTLS_CHECK_PARAMS",
88#endif /* MBEDTLS_CHECK_PARAMS */
Gilles Peskinec7ad1222019-06-13 16:44:19 +020089#if defined(MBEDTLS_CHECK_PARAMS_ASSERT)
90 "MBEDTLS_CHECK_PARAMS_ASSERT",
91#endif /* MBEDTLS_CHECK_PARAMS_ASSERT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +020092#if defined(MBEDTLS_TIMING_ALT)
93 "MBEDTLS_TIMING_ALT",
94#endif /* MBEDTLS_TIMING_ALT */
95#if defined(MBEDTLS_AES_ALT)
96 "MBEDTLS_AES_ALT",
97#endif /* MBEDTLS_AES_ALT */
98#if defined(MBEDTLS_ARC4_ALT)
99 "MBEDTLS_ARC4_ALT",
100#endif /* MBEDTLS_ARC4_ALT */
Markku-Juhani O. Saarinen0fb47fe2017-12-01 15:41:38 +0000101#if defined(MBEDTLS_ARIA_ALT)
102 "MBEDTLS_ARIA_ALT",
103#endif /* MBEDTLS_ARIA_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200104#if defined(MBEDTLS_BLOWFISH_ALT)
105 "MBEDTLS_BLOWFISH_ALT",
106#endif /* MBEDTLS_BLOWFISH_ALT */
107#if defined(MBEDTLS_CAMELLIA_ALT)
108 "MBEDTLS_CAMELLIA_ALT",
109#endif /* MBEDTLS_CAMELLIA_ALT */
Steven Cooreman3a933872017-04-04 12:02:37 +0200110#if defined(MBEDTLS_CCM_ALT)
111 "MBEDTLS_CCM_ALT",
112#endif /* MBEDTLS_CCM_ALT */
Daniel King34b822c2016-05-15 17:28:08 -0300113#if defined(MBEDTLS_CHACHA20_ALT)
114 "MBEDTLS_CHACHA20_ALT",
115#endif /* MBEDTLS_CHACHA20_ALT */
Manuel Pégourié-Gonnard94175a52018-06-04 12:42:17 +0200116#if defined(MBEDTLS_CHACHAPOLY_ALT)
117 "MBEDTLS_CHACHAPOLY_ALT",
118#endif /* MBEDTLS_CHACHAPOLY_ALT */
Steven Cooreman12d9f3c2017-04-04 12:01:42 +0200119#if defined(MBEDTLS_CMAC_ALT)
120 "MBEDTLS_CMAC_ALT",
121#endif /* MBEDTLS_CMAC_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200122#if defined(MBEDTLS_DES_ALT)
123 "MBEDTLS_DES_ALT",
124#endif /* MBEDTLS_DES_ALT */
nirekh01d569ecf2018-01-09 16:43:21 +0000125#if defined(MBEDTLS_DHM_ALT)
126 "MBEDTLS_DHM_ALT",
127#endif /* MBEDTLS_DHM_ALT */
Hanno Becker616d1ca2018-01-24 10:25:05 +0000128#if defined(MBEDTLS_ECJPAKE_ALT)
129 "MBEDTLS_ECJPAKE_ALT",
130#endif /* MBEDTLS_ECJPAKE_ALT */
Jaeden Amero15263302017-09-21 12:53:48 +0100131#if defined(MBEDTLS_GCM_ALT)
132 "MBEDTLS_GCM_ALT",
133#endif /* MBEDTLS_GCM_ALT */
Ron Eldor466a57f2018-05-03 16:54:28 +0300134#if defined(MBEDTLS_NIST_KW_ALT)
135 "MBEDTLS_NIST_KW_ALT",
136#endif /* MBEDTLS_NIST_KW_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200137#if defined(MBEDTLS_MD2_ALT)
138 "MBEDTLS_MD2_ALT",
139#endif /* MBEDTLS_MD2_ALT */
140#if defined(MBEDTLS_MD4_ALT)
141 "MBEDTLS_MD4_ALT",
142#endif /* MBEDTLS_MD4_ALT */
143#if defined(MBEDTLS_MD5_ALT)
144 "MBEDTLS_MD5_ALT",
145#endif /* MBEDTLS_MD5_ALT */
Daniel King8fe47012016-05-17 20:33:28 -0300146#if defined(MBEDTLS_POLY1305_ALT)
147 "MBEDTLS_POLY1305_ALT",
148#endif /* MBEDTLS_POLY1305_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200149#if defined(MBEDTLS_RIPEMD160_ALT)
150 "MBEDTLS_RIPEMD160_ALT",
151#endif /* MBEDTLS_RIPEMD160_ALT */
Hanno Becker88683b22018-01-04 18:26:54 +0000152#if defined(MBEDTLS_RSA_ALT)
153 "MBEDTLS_RSA_ALT",
154#endif /* MBEDTLS_RSA_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200155#if defined(MBEDTLS_SHA1_ALT)
156 "MBEDTLS_SHA1_ALT",
157#endif /* MBEDTLS_SHA1_ALT */
158#if defined(MBEDTLS_SHA256_ALT)
159 "MBEDTLS_SHA256_ALT",
160#endif /* MBEDTLS_SHA256_ALT */
161#if defined(MBEDTLS_SHA512_ALT)
162 "MBEDTLS_SHA512_ALT",
163#endif /* MBEDTLS_SHA512_ALT */
Hanno Becker88683b22018-01-04 18:26:54 +0000164#if defined(MBEDTLS_XTEA_ALT)
165 "MBEDTLS_XTEA_ALT",
166#endif /* MBEDTLS_XTEA_ALT */
Janos Follath69b20512016-11-21 14:53:57 +0000167#if defined(MBEDTLS_ECP_ALT)
168 "MBEDTLS_ECP_ALT",
169#endif /* MBEDTLS_ECP_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200170#if defined(MBEDTLS_MD2_PROCESS_ALT)
171 "MBEDTLS_MD2_PROCESS_ALT",
172#endif /* MBEDTLS_MD2_PROCESS_ALT */
173#if defined(MBEDTLS_MD4_PROCESS_ALT)
174 "MBEDTLS_MD4_PROCESS_ALT",
175#endif /* MBEDTLS_MD4_PROCESS_ALT */
176#if defined(MBEDTLS_MD5_PROCESS_ALT)
177 "MBEDTLS_MD5_PROCESS_ALT",
178#endif /* MBEDTLS_MD5_PROCESS_ALT */
179#if defined(MBEDTLS_RIPEMD160_PROCESS_ALT)
180 "MBEDTLS_RIPEMD160_PROCESS_ALT",
181#endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */
182#if defined(MBEDTLS_SHA1_PROCESS_ALT)
183 "MBEDTLS_SHA1_PROCESS_ALT",
184#endif /* MBEDTLS_SHA1_PROCESS_ALT */
185#if defined(MBEDTLS_SHA256_PROCESS_ALT)
186 "MBEDTLS_SHA256_PROCESS_ALT",
187#endif /* MBEDTLS_SHA256_PROCESS_ALT */
188#if defined(MBEDTLS_SHA512_PROCESS_ALT)
189 "MBEDTLS_SHA512_PROCESS_ALT",
190#endif /* MBEDTLS_SHA512_PROCESS_ALT */
Manuel Pégourié-Gonnarda27b1972015-05-12 16:09:34 +0200191#if defined(MBEDTLS_DES_SETKEY_ALT)
192 "MBEDTLS_DES_SETKEY_ALT",
193#endif /* MBEDTLS_DES_SETKEY_ALT */
194#if defined(MBEDTLS_DES_CRYPT_ECB_ALT)
195 "MBEDTLS_DES_CRYPT_ECB_ALT",
196#endif /* MBEDTLS_DES_CRYPT_ECB_ALT */
197#if defined(MBEDTLS_DES3_CRYPT_ECB_ALT)
198 "MBEDTLS_DES3_CRYPT_ECB_ALT",
199#endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */
200#if defined(MBEDTLS_AES_SETKEY_ENC_ALT)
201 "MBEDTLS_AES_SETKEY_ENC_ALT",
202#endif /* MBEDTLS_AES_SETKEY_ENC_ALT */
203#if defined(MBEDTLS_AES_SETKEY_DEC_ALT)
204 "MBEDTLS_AES_SETKEY_DEC_ALT",
205#endif /* MBEDTLS_AES_SETKEY_DEC_ALT */
206#if defined(MBEDTLS_AES_ENCRYPT_ALT)
207 "MBEDTLS_AES_ENCRYPT_ALT",
208#endif /* MBEDTLS_AES_ENCRYPT_ALT */
209#if defined(MBEDTLS_AES_DECRYPT_ALT)
210 "MBEDTLS_AES_DECRYPT_ALT",
211#endif /* MBEDTLS_AES_DECRYPT_ALT */
Ron Eldora84c1cb2017-10-10 19:04:27 +0300212#if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
213 "MBEDTLS_ECDH_GEN_PUBLIC_ALT",
214#endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */
Ron Eldor3226d362017-10-12 14:17:48 +0300215#if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT)
216 "MBEDTLS_ECDH_COMPUTE_SHARED_ALT",
217#endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */
Ron Eldor314adb62017-10-10 18:28:25 +0300218#if defined(MBEDTLS_ECDSA_VERIFY_ALT)
219 "MBEDTLS_ECDSA_VERIFY_ALT",
220#endif /* MBEDTLS_ECDSA_VERIFY_ALT */
221#if defined(MBEDTLS_ECDSA_SIGN_ALT)
222 "MBEDTLS_ECDSA_SIGN_ALT",
223#endif /* MBEDTLS_ECDSA_SIGN_ALT */
224#if defined(MBEDTLS_ECDSA_GENKEY_ALT)
225 "MBEDTLS_ECDSA_GENKEY_ALT",
226#endif /* MBEDTLS_ECDSA_GENKEY_ALT */
Janos Follath69b20512016-11-21 14:53:57 +0000227#if defined(MBEDTLS_ECP_INTERNAL_ALT)
228 "MBEDTLS_ECP_INTERNAL_ALT",
229#endif /* MBEDTLS_ECP_INTERNAL_ALT */
230#if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT)
231 "MBEDTLS_ECP_RANDOMIZE_JAC_ALT",
232#endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */
233#if defined(MBEDTLS_ECP_ADD_MIXED_ALT)
234 "MBEDTLS_ECP_ADD_MIXED_ALT",
235#endif /* MBEDTLS_ECP_ADD_MIXED_ALT */
236#if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT)
237 "MBEDTLS_ECP_DOUBLE_JAC_ALT",
238#endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */
239#if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT)
240 "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT",
241#endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */
242#if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT)
243 "MBEDTLS_ECP_NORMALIZE_JAC_ALT",
244#endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */
245#if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT)
246 "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT",
247#endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */
248#if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT)
249 "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT",
250#endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */
251#if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT)
252 "MBEDTLS_ECP_NORMALIZE_MXZ_ALT",
253#endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */
Simon Butcherab5df402016-06-11 02:31:21 +0100254#if defined(MBEDTLS_TEST_NULL_ENTROPY)
255 "MBEDTLS_TEST_NULL_ENTROPY",
256#endif /* MBEDTLS_TEST_NULL_ENTROPY */
Manuel Pégourié-Gonnardf9cbd732015-06-22 12:06:50 +0200257#if defined(MBEDTLS_ENTROPY_HARDWARE_ALT)
258 "MBEDTLS_ENTROPY_HARDWARE_ALT",
259#endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200260#if defined(MBEDTLS_AES_ROM_TABLES)
261 "MBEDTLS_AES_ROM_TABLES",
262#endif /* MBEDTLS_AES_ROM_TABLES */
Hanno Becker177d3cf2017-06-07 15:52:48 +0100263#if defined(MBEDTLS_AES_FEWER_TABLES)
264 "MBEDTLS_AES_FEWER_TABLES",
265#endif /* MBEDTLS_AES_FEWER_TABLES */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200266#if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY)
267 "MBEDTLS_CAMELLIA_SMALL_MEMORY",
268#endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */
269#if defined(MBEDTLS_CIPHER_MODE_CBC)
270 "MBEDTLS_CIPHER_MODE_CBC",
271#endif /* MBEDTLS_CIPHER_MODE_CBC */
272#if defined(MBEDTLS_CIPHER_MODE_CFB)
273 "MBEDTLS_CIPHER_MODE_CFB",
274#endif /* MBEDTLS_CIPHER_MODE_CFB */
275#if defined(MBEDTLS_CIPHER_MODE_CTR)
276 "MBEDTLS_CIPHER_MODE_CTR",
277#endif /* MBEDTLS_CIPHER_MODE_CTR */
Jaeden Ameroff2f4932018-06-14 11:38:50 +0100278#if defined(MBEDTLS_CIPHER_MODE_OFB)
279 "MBEDTLS_CIPHER_MODE_OFB",
280#endif /* MBEDTLS_CIPHER_MODE_OFB */
281#if defined(MBEDTLS_CIPHER_MODE_XTS)
282 "MBEDTLS_CIPHER_MODE_XTS",
283#endif /* MBEDTLS_CIPHER_MODE_XTS */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200284#if defined(MBEDTLS_CIPHER_NULL_CIPHER)
285 "MBEDTLS_CIPHER_NULL_CIPHER",
286#endif /* MBEDTLS_CIPHER_NULL_CIPHER */
287#if defined(MBEDTLS_CIPHER_PADDING_PKCS7)
288 "MBEDTLS_CIPHER_PADDING_PKCS7",
289#endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */
290#if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS)
291 "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS",
292#endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */
293#if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN)
294 "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN",
295#endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */
296#if defined(MBEDTLS_CIPHER_PADDING_ZEROS)
297 "MBEDTLS_CIPHER_PADDING_ZEROS",
298#endif /* MBEDTLS_CIPHER_PADDING_ZEROS */
Gilles Peskine1540e5b2019-10-03 14:21:14 +0200299#if defined(MBEDTLS_CTR_DRBG_USE_128_BIT_KEY)
300 "MBEDTLS_CTR_DRBG_USE_128_BIT_KEY",
301#endif /* MBEDTLS_CTR_DRBG_USE_128_BIT_KEY */
Gilles Peskine4e117492020-02-26 18:56:08 +0100302#if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES)
303 "MBEDTLS_ENABLE_WEAK_CIPHERSUITES",
304#endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */
305#if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES)
306 "MBEDTLS_REMOVE_ARC4_CIPHERSUITES",
307#endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */
308#if defined(MBEDTLS_REMOVE_3DES_CIPHERSUITES)
309 "MBEDTLS_REMOVE_3DES_CIPHERSUITES",
310#endif /* MBEDTLS_REMOVE_3DES_CIPHERSUITES */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200311#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED)
312 "MBEDTLS_ECP_DP_SECP192R1_ENABLED",
313#endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */
314#if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED)
315 "MBEDTLS_ECP_DP_SECP224R1_ENABLED",
316#endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */
317#if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED)
318 "MBEDTLS_ECP_DP_SECP256R1_ENABLED",
319#endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */
320#if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED)
321 "MBEDTLS_ECP_DP_SECP384R1_ENABLED",
322#endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */
323#if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED)
324 "MBEDTLS_ECP_DP_SECP521R1_ENABLED",
325#endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */
326#if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED)
327 "MBEDTLS_ECP_DP_SECP192K1_ENABLED",
328#endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */
329#if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED)
330 "MBEDTLS_ECP_DP_SECP224K1_ENABLED",
331#endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */
332#if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED)
333 "MBEDTLS_ECP_DP_SECP256K1_ENABLED",
334#endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */
335#if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED)
336 "MBEDTLS_ECP_DP_BP256R1_ENABLED",
337#endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */
338#if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED)
339 "MBEDTLS_ECP_DP_BP384R1_ENABLED",
340#endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */
341#if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED)
342 "MBEDTLS_ECP_DP_BP512R1_ENABLED",
343#endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */
Manuel Pégourié-Gonnard07894332015-06-23 00:18:41 +0200344#if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED)
345 "MBEDTLS_ECP_DP_CURVE25519_ENABLED",
346#endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */
Nicholas Wilson08f3ef12015-11-10 13:10:01 +0000347#if defined(MBEDTLS_ECP_DP_CURVE448_ENABLED)
348 "MBEDTLS_ECP_DP_CURVE448_ENABLED",
349#endif /* MBEDTLS_ECP_DP_CURVE448_ENABLED */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200350#if defined(MBEDTLS_ECP_NIST_OPTIM)
351 "MBEDTLS_ECP_NIST_OPTIM",
352#endif /* MBEDTLS_ECP_NIST_OPTIM */
Manuel Pégourié-Gonnard1a3f9ed2020-05-19 12:38:31 +0200353#if defined(MBEDTLS_ECP_NO_INTERNAL_RNG)
354 "MBEDTLS_ECP_NO_INTERNAL_RNG",
355#endif /* MBEDTLS_ECP_NO_INTERNAL_RNG */
Manuel Pégourié-Gonnard4b9c51e2017-04-20 15:50:26 +0200356#if defined(MBEDTLS_ECP_RESTARTABLE)
357 "MBEDTLS_ECP_RESTARTABLE",
358#endif /* MBEDTLS_ECP_RESTARTABLE */
Gilles Peskine43f564f2019-02-22 12:14:02 +0100359#if defined(MBEDTLS_ECDH_LEGACY_CONTEXT)
360 "MBEDTLS_ECDH_LEGACY_CONTEXT",
361#endif /* MBEDTLS_ECDH_LEGACY_CONTEXT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200362#if defined(MBEDTLS_ECDSA_DETERMINISTIC)
363 "MBEDTLS_ECDSA_DETERMINISTIC",
364#endif /* MBEDTLS_ECDSA_DETERMINISTIC */
Gilles Peskine4e117492020-02-26 18:56:08 +0100365#if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED)
366 "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED",
367#endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */
368#if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED)
369 "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED",
370#endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */
371#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
372 "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED",
373#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
374#if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED)
375 "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED",
376#endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */
377#if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED)
378 "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED",
379#endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */
380#if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED)
381 "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED",
382#endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */
383#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
384 "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED",
385#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
386#if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
387 "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED",
388#endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
389#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
390 "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED",
391#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
392#if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED)
393 "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED",
394#endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */
395#if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED)
396 "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED",
397#endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200398#if defined(MBEDTLS_PK_PARSE_EC_EXTENDED)
399 "MBEDTLS_PK_PARSE_EC_EXTENDED",
400#endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */
401#if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
402 "MBEDTLS_ERROR_STRERROR_DUMMY",
403#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */
404#if defined(MBEDTLS_GENPRIME)
405 "MBEDTLS_GENPRIME",
406#endif /* MBEDTLS_GENPRIME */
407#if defined(MBEDTLS_FS_IO)
408 "MBEDTLS_FS_IO",
409#endif /* MBEDTLS_FS_IO */
410#if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES)
411 "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES",
412#endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */
413#if defined(MBEDTLS_NO_PLATFORM_ENTROPY)
414 "MBEDTLS_NO_PLATFORM_ENTROPY",
415#endif /* MBEDTLS_NO_PLATFORM_ENTROPY */
416#if defined(MBEDTLS_ENTROPY_FORCE_SHA256)
417 "MBEDTLS_ENTROPY_FORCE_SHA256",
418#endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */
Paul Bakkerbddf9ab2016-06-01 15:58:12 +0100419#if defined(MBEDTLS_ENTROPY_NV_SEED)
420 "MBEDTLS_ENTROPY_NV_SEED",
421#endif /* MBEDTLS_ENTROPY_NV_SEED */
Gilles Peskine69d7c8b2019-02-19 14:00:31 +0100422#if defined(MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER)
423 "MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER",
424#endif /* MBEDTLS_PSA_CRYPTO_KEY_FILE_ID_ENCODES_OWNER */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200425#if defined(MBEDTLS_MEMORY_DEBUG)
426 "MBEDTLS_MEMORY_DEBUG",
427#endif /* MBEDTLS_MEMORY_DEBUG */
428#if defined(MBEDTLS_MEMORY_BACKTRACE)
429 "MBEDTLS_MEMORY_BACKTRACE",
430#endif /* MBEDTLS_MEMORY_BACKTRACE */
431#if defined(MBEDTLS_PK_RSA_ALT_SUPPORT)
432 "MBEDTLS_PK_RSA_ALT_SUPPORT",
433#endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */
434#if defined(MBEDTLS_PKCS1_V15)
435 "MBEDTLS_PKCS1_V15",
436#endif /* MBEDTLS_PKCS1_V15 */
437#if defined(MBEDTLS_PKCS1_V21)
438 "MBEDTLS_PKCS1_V21",
439#endif /* MBEDTLS_PKCS1_V21 */
Jaeden Amero67a93512018-07-11 16:07:40 +0100440#if defined(MBEDTLS_PSA_CRYPTO_SPM)
441 "MBEDTLS_PSA_CRYPTO_SPM",
442#endif /* MBEDTLS_PSA_CRYPTO_SPM */
Gilles Peskinee3dbdd82019-02-25 11:04:06 +0100443#if defined(MBEDTLS_PSA_INJECT_ENTROPY)
444 "MBEDTLS_PSA_INJECT_ENTROPY",
445#endif /* MBEDTLS_PSA_INJECT_ENTROPY */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200446#if defined(MBEDTLS_RSA_NO_CRT)
447 "MBEDTLS_RSA_NO_CRT",
448#endif /* MBEDTLS_RSA_NO_CRT */
449#if defined(MBEDTLS_SELF_TEST)
450 "MBEDTLS_SELF_TEST",
451#endif /* MBEDTLS_SELF_TEST */
Manuel Pégourié-Gonnardeb0d8702015-05-28 12:54:04 +0200452#if defined(MBEDTLS_SHA256_SMALLER)
453 "MBEDTLS_SHA256_SMALLER",
454#endif /* MBEDTLS_SHA256_SMALLER */
Manuel Pégourié-Gonnard2306d152019-07-17 12:36:53 +0200455#if defined(MBEDTLS_SHA512_SMALLER)
456 "MBEDTLS_SHA512_SMALLER",
457#endif /* MBEDTLS_SHA512_SMALLER */
Manuel Pégourié-Gonnardad6cb112019-07-17 14:58:03 +0200458#if defined(MBEDTLS_SHA512_NO_SHA384)
459 "MBEDTLS_SHA512_NO_SHA384",
460#endif /* MBEDTLS_SHA512_NO_SHA384 */
Gilles Peskine4e117492020-02-26 18:56:08 +0100461#if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES)
462 "MBEDTLS_SSL_ALL_ALERT_MESSAGES",
463#endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */
Gilles Peskineb22d0cf2020-03-09 16:48:21 +0100464#if defined(MBEDTLS_SSL_RECORD_CHECKING)
465 "MBEDTLS_SSL_RECORD_CHECKING",
466#endif /* MBEDTLS_SSL_RECORD_CHECKING */
467#if defined(MBEDTLS_SSL_DTLS_CONNECTION_ID)
468 "MBEDTLS_SSL_DTLS_CONNECTION_ID",
469#endif /* MBEDTLS_SSL_DTLS_CONNECTION_ID */
Gilles Peskine4e117492020-02-26 18:56:08 +0100470#if defined(MBEDTLS_SSL_ASYNC_PRIVATE)
471 "MBEDTLS_SSL_ASYNC_PRIVATE",
472#endif /* MBEDTLS_SSL_ASYNC_PRIVATE */
Gilles Peskineb22d0cf2020-03-09 16:48:21 +0100473#if defined(MBEDTLS_SSL_CONTEXT_SERIALIZATION)
474 "MBEDTLS_SSL_CONTEXT_SERIALIZATION",
475#endif /* MBEDTLS_SSL_CONTEXT_SERIALIZATION */
Gilles Peskine4e117492020-02-26 18:56:08 +0100476#if defined(MBEDTLS_SSL_DEBUG_ALL)
477 "MBEDTLS_SSL_DEBUG_ALL",
478#endif /* MBEDTLS_SSL_DEBUG_ALL */
479#if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC)
480 "MBEDTLS_SSL_ENCRYPT_THEN_MAC",
481#endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */
482#if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET)
483 "MBEDTLS_SSL_EXTENDED_MASTER_SECRET",
484#endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */
485#if defined(MBEDTLS_SSL_FALLBACK_SCSV)
486 "MBEDTLS_SSL_FALLBACK_SCSV",
487#endif /* MBEDTLS_SSL_FALLBACK_SCSV */
488#if defined(MBEDTLS_SSL_KEEP_PEER_CERTIFICATE)
489 "MBEDTLS_SSL_KEEP_PEER_CERTIFICATE",
490#endif /* MBEDTLS_SSL_KEEP_PEER_CERTIFICATE */
491#if defined(MBEDTLS_SSL_HW_RECORD_ACCEL)
492 "MBEDTLS_SSL_HW_RECORD_ACCEL",
493#endif /* MBEDTLS_SSL_HW_RECORD_ACCEL */
494#if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING)
495 "MBEDTLS_SSL_CBC_RECORD_SPLITTING",
496#endif /* MBEDTLS_SSL_CBC_RECORD_SPLITTING */
497#if defined(MBEDTLS_SSL_RENEGOTIATION)
498 "MBEDTLS_SSL_RENEGOTIATION",
499#endif /* MBEDTLS_SSL_RENEGOTIATION */
500#if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
501 "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO",
502#endif /* MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */
503#if defined(MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE)
504 "MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE",
505#endif /* MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE */
506#if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH)
507 "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH",
508#endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */
509#if defined(MBEDTLS_SSL_PROTO_SSL3)
510 "MBEDTLS_SSL_PROTO_SSL3",
511#endif /* MBEDTLS_SSL_PROTO_SSL3 */
512#if defined(MBEDTLS_SSL_PROTO_TLS1)
513 "MBEDTLS_SSL_PROTO_TLS1",
514#endif /* MBEDTLS_SSL_PROTO_TLS1 */
515#if defined(MBEDTLS_SSL_PROTO_TLS1_1)
516 "MBEDTLS_SSL_PROTO_TLS1_1",
517#endif /* MBEDTLS_SSL_PROTO_TLS1_1 */
518#if defined(MBEDTLS_SSL_PROTO_TLS1_2)
519 "MBEDTLS_SSL_PROTO_TLS1_2",
520#endif /* MBEDTLS_SSL_PROTO_TLS1_2 */
Hanno Beckera0c65d82020-05-28 08:59:39 +0100521#if defined(MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL)
522 "MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL",
523#endif /* MBEDTLS_SSL_PROTO_TLS1_3_EXPERIMENTAL */
Gilles Peskine4e117492020-02-26 18:56:08 +0100524#if defined(MBEDTLS_SSL_PROTO_DTLS)
525 "MBEDTLS_SSL_PROTO_DTLS",
526#endif /* MBEDTLS_SSL_PROTO_DTLS */
527#if defined(MBEDTLS_SSL_ALPN)
528 "MBEDTLS_SSL_ALPN",
529#endif /* MBEDTLS_SSL_ALPN */
530#if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY)
531 "MBEDTLS_SSL_DTLS_ANTI_REPLAY",
532#endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */
533#if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY)
534 "MBEDTLS_SSL_DTLS_HELLO_VERIFY",
535#endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */
536#if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE)
537 "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE",
538#endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */
539#if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT)
540 "MBEDTLS_SSL_DTLS_BADMAC_LIMIT",
541#endif /* MBEDTLS_SSL_DTLS_BADMAC_LIMIT */
542#if defined(MBEDTLS_SSL_SESSION_TICKETS)
543 "MBEDTLS_SSL_SESSION_TICKETS",
544#endif /* MBEDTLS_SSL_SESSION_TICKETS */
545#if defined(MBEDTLS_SSL_EXPORT_KEYS)
546 "MBEDTLS_SSL_EXPORT_KEYS",
547#endif /* MBEDTLS_SSL_EXPORT_KEYS */
548#if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION)
549 "MBEDTLS_SSL_SERVER_NAME_INDICATION",
550#endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */
551#if defined(MBEDTLS_SSL_TRUNCATED_HMAC)
552 "MBEDTLS_SSL_TRUNCATED_HMAC",
553#endif /* MBEDTLS_SSL_TRUNCATED_HMAC */
554#if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT)
555 "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT",
556#endif /* MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT */
Gilles Peskine3ed2de92020-03-23 20:45:07 +0100557#if defined(MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH)
558 "MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH",
559#endif /* MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH */
Gilles Peskinefea6eaf2019-09-11 13:27:48 +0200560#if defined(MBEDTLS_TEST_HOOKS)
561 "MBEDTLS_TEST_HOOKS",
562#endif /* MBEDTLS_TEST_HOOKS */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200563#if defined(MBEDTLS_THREADING_ALT)
564 "MBEDTLS_THREADING_ALT",
565#endif /* MBEDTLS_THREADING_ALT */
566#if defined(MBEDTLS_THREADING_PTHREAD)
567 "MBEDTLS_THREADING_PTHREAD",
568#endif /* MBEDTLS_THREADING_PTHREAD */
Manuel Pégourié-Gonnard26fd7302018-10-22 12:14:52 +0200569#if defined(MBEDTLS_USE_PSA_CRYPTO)
570 "MBEDTLS_USE_PSA_CRYPTO",
571#endif /* MBEDTLS_USE_PSA_CRYPTO */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200572#if defined(MBEDTLS_VERSION_FEATURES)
573 "MBEDTLS_VERSION_FEATURES",
574#endif /* MBEDTLS_VERSION_FEATURES */
Gilles Peskine252e3912020-02-26 18:33:58 +0100575#if defined(MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3)
576 "MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3",
577#endif /* MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3 */
578#if defined(MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION)
579 "MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION",
580#endif /* MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION */
581#if defined(MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK)
582 "MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK",
583#endif /* MBEDTLS_X509_TRUSTED_CERTIFICATE_CALLBACK */
584#if defined(MBEDTLS_X509_CHECK_KEY_USAGE)
585 "MBEDTLS_X509_CHECK_KEY_USAGE",
586#endif /* MBEDTLS_X509_CHECK_KEY_USAGE */
587#if defined(MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE)
588 "MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE",
589#endif /* MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE */
590#if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT)
591 "MBEDTLS_X509_RSASSA_PSS_SUPPORT",
592#endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */
Gilles Peskine4e117492020-02-26 18:56:08 +0100593#if defined(MBEDTLS_ZLIB_SUPPORT)
594 "MBEDTLS_ZLIB_SUPPORT",
595#endif /* MBEDTLS_ZLIB_SUPPORT */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200596#if defined(MBEDTLS_AESNI_C)
597 "MBEDTLS_AESNI_C",
598#endif /* MBEDTLS_AESNI_C */
599#if defined(MBEDTLS_AES_C)
600 "MBEDTLS_AES_C",
601#endif /* MBEDTLS_AES_C */
602#if defined(MBEDTLS_ARC4_C)
603 "MBEDTLS_ARC4_C",
604#endif /* MBEDTLS_ARC4_C */
605#if defined(MBEDTLS_ASN1_PARSE_C)
606 "MBEDTLS_ASN1_PARSE_C",
607#endif /* MBEDTLS_ASN1_PARSE_C */
608#if defined(MBEDTLS_ASN1_WRITE_C)
609 "MBEDTLS_ASN1_WRITE_C",
610#endif /* MBEDTLS_ASN1_WRITE_C */
611#if defined(MBEDTLS_BASE64_C)
612 "MBEDTLS_BASE64_C",
613#endif /* MBEDTLS_BASE64_C */
614#if defined(MBEDTLS_BIGNUM_C)
615 "MBEDTLS_BIGNUM_C",
616#endif /* MBEDTLS_BIGNUM_C */
617#if defined(MBEDTLS_BLOWFISH_C)
618 "MBEDTLS_BLOWFISH_C",
619#endif /* MBEDTLS_BLOWFISH_C */
620#if defined(MBEDTLS_CAMELLIA_C)
621 "MBEDTLS_CAMELLIA_C",
622#endif /* MBEDTLS_CAMELLIA_C */
Markku-Juhani O. Saarinen3c0b53b2017-11-30 16:00:34 +0000623#if defined(MBEDTLS_ARIA_C)
624 "MBEDTLS_ARIA_C",
625#endif /* MBEDTLS_ARIA_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200626#if defined(MBEDTLS_CCM_C)
627 "MBEDTLS_CCM_C",
628#endif /* MBEDTLS_CCM_C */
Gilles Peskine252e3912020-02-26 18:33:58 +0100629#if defined(MBEDTLS_CERTS_C)
630 "MBEDTLS_CERTS_C",
631#endif /* MBEDTLS_CERTS_C */
Daniel King34b822c2016-05-15 17:28:08 -0300632#if defined(MBEDTLS_CHACHA20_C)
633 "MBEDTLS_CHACHA20_C",
634#endif /* MBEDTLS_CHACHA20_C */
Manuel Pégourié-Gonnard94175a52018-06-04 12:42:17 +0200635#if defined(MBEDTLS_CHACHAPOLY_C)
636 "MBEDTLS_CHACHAPOLY_C",
637#endif /* MBEDTLS_CHACHAPOLY_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200638#if defined(MBEDTLS_CIPHER_C)
639 "MBEDTLS_CIPHER_C",
640#endif /* MBEDTLS_CIPHER_C */
Robert Cragie48f2ff92015-12-14 17:34:33 +0000641#if defined(MBEDTLS_CMAC_C)
642 "MBEDTLS_CMAC_C",
643#endif /* MBEDTLS_CMAC_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200644#if defined(MBEDTLS_CTR_DRBG_C)
645 "MBEDTLS_CTR_DRBG_C",
646#endif /* MBEDTLS_CTR_DRBG_C */
Gilles Peskine4e117492020-02-26 18:56:08 +0100647#if defined(MBEDTLS_DEBUG_C)
648 "MBEDTLS_DEBUG_C",
649#endif /* MBEDTLS_DEBUG_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200650#if defined(MBEDTLS_DES_C)
651 "MBEDTLS_DES_C",
652#endif /* MBEDTLS_DES_C */
653#if defined(MBEDTLS_DHM_C)
654 "MBEDTLS_DHM_C",
655#endif /* MBEDTLS_DHM_C */
656#if defined(MBEDTLS_ECDH_C)
657 "MBEDTLS_ECDH_C",
658#endif /* MBEDTLS_ECDH_C */
659#if defined(MBEDTLS_ECDSA_C)
660 "MBEDTLS_ECDSA_C",
661#endif /* MBEDTLS_ECDSA_C */
Manuel Pégourié-Gonnard4d8685b2015-08-05 15:44:42 +0200662#if defined(MBEDTLS_ECJPAKE_C)
663 "MBEDTLS_ECJPAKE_C",
664#endif /* MBEDTLS_ECJPAKE_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200665#if defined(MBEDTLS_ECP_C)
666 "MBEDTLS_ECP_C",
667#endif /* MBEDTLS_ECP_C */
668#if defined(MBEDTLS_ENTROPY_C)
669 "MBEDTLS_ENTROPY_C",
670#endif /* MBEDTLS_ENTROPY_C */
671#if defined(MBEDTLS_ERROR_C)
672 "MBEDTLS_ERROR_C",
673#endif /* MBEDTLS_ERROR_C */
674#if defined(MBEDTLS_GCM_C)
675 "MBEDTLS_GCM_C",
676#endif /* MBEDTLS_GCM_C */
677#if defined(MBEDTLS_HAVEGE_C)
678 "MBEDTLS_HAVEGE_C",
679#endif /* MBEDTLS_HAVEGE_C */
Thomas Fossati656864b2016-07-17 08:51:22 +0100680#if defined(MBEDTLS_HKDF_C)
681 "MBEDTLS_HKDF_C",
682#endif /* MBEDTLS_HKDF_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200683#if defined(MBEDTLS_HMAC_DRBG_C)
684 "MBEDTLS_HMAC_DRBG_C",
685#endif /* MBEDTLS_HMAC_DRBG_C */
Ron Eldor466a57f2018-05-03 16:54:28 +0300686#if defined(MBEDTLS_NIST_KW_C)
687 "MBEDTLS_NIST_KW_C",
688#endif /* MBEDTLS_NIST_KW_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200689#if defined(MBEDTLS_MD_C)
690 "MBEDTLS_MD_C",
691#endif /* MBEDTLS_MD_C */
692#if defined(MBEDTLS_MD2_C)
693 "MBEDTLS_MD2_C",
694#endif /* MBEDTLS_MD2_C */
695#if defined(MBEDTLS_MD4_C)
696 "MBEDTLS_MD4_C",
697#endif /* MBEDTLS_MD4_C */
698#if defined(MBEDTLS_MD5_C)
699 "MBEDTLS_MD5_C",
700#endif /* MBEDTLS_MD5_C */
701#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
702 "MBEDTLS_MEMORY_BUFFER_ALLOC_C",
703#endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */
Gilles Peskine4e117492020-02-26 18:56:08 +0100704#if defined(MBEDTLS_NET_C)
705 "MBEDTLS_NET_C",
706#endif /* MBEDTLS_NET_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200707#if defined(MBEDTLS_OID_C)
708 "MBEDTLS_OID_C",
709#endif /* MBEDTLS_OID_C */
710#if defined(MBEDTLS_PADLOCK_C)
711 "MBEDTLS_PADLOCK_C",
712#endif /* MBEDTLS_PADLOCK_C */
713#if defined(MBEDTLS_PEM_PARSE_C)
714 "MBEDTLS_PEM_PARSE_C",
715#endif /* MBEDTLS_PEM_PARSE_C */
716#if defined(MBEDTLS_PEM_WRITE_C)
717 "MBEDTLS_PEM_WRITE_C",
718#endif /* MBEDTLS_PEM_WRITE_C */
719#if defined(MBEDTLS_PK_C)
720 "MBEDTLS_PK_C",
721#endif /* MBEDTLS_PK_C */
722#if defined(MBEDTLS_PK_PARSE_C)
723 "MBEDTLS_PK_PARSE_C",
724#endif /* MBEDTLS_PK_PARSE_C */
725#if defined(MBEDTLS_PK_WRITE_C)
726 "MBEDTLS_PK_WRITE_C",
727#endif /* MBEDTLS_PK_WRITE_C */
728#if defined(MBEDTLS_PKCS5_C)
729 "MBEDTLS_PKCS5_C",
730#endif /* MBEDTLS_PKCS5_C */
Gilles Peskine252e3912020-02-26 18:33:58 +0100731#if defined(MBEDTLS_PKCS11_C)
732 "MBEDTLS_PKCS11_C",
733#endif /* MBEDTLS_PKCS11_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200734#if defined(MBEDTLS_PKCS12_C)
735 "MBEDTLS_PKCS12_C",
736#endif /* MBEDTLS_PKCS12_C */
737#if defined(MBEDTLS_PLATFORM_C)
738 "MBEDTLS_PLATFORM_C",
739#endif /* MBEDTLS_PLATFORM_C */
Daniel Kingadc32c02016-05-16 18:25:45 -0300740#if defined(MBEDTLS_POLY1305_C)
741 "MBEDTLS_POLY1305_C",
742#endif /* MBEDTLS_POLY1305_C */
Gilles Peskinee59236f2018-01-27 23:32:46 +0100743#if defined(MBEDTLS_PSA_CRYPTO_C)
744 "MBEDTLS_PSA_CRYPTO_C",
745#endif /* MBEDTLS_PSA_CRYPTO_C */
Gilles Peskinea8ade162019-06-26 11:24:49 +0200746#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
747 "MBEDTLS_PSA_CRYPTO_SE_C",
748#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
Darryl Greendb2b8db2018-06-15 13:06:04 +0100749#if defined(MBEDTLS_PSA_CRYPTO_STORAGE_C)
750 "MBEDTLS_PSA_CRYPTO_STORAGE_C",
751#endif /* MBEDTLS_PSA_CRYPTO_STORAGE_C */
Gilles Peskine6194dc22018-11-16 22:24:15 +0100752#if defined(MBEDTLS_PSA_ITS_FILE_C)
753 "MBEDTLS_PSA_ITS_FILE_C",
754#endif /* MBEDTLS_PSA_ITS_FILE_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200755#if defined(MBEDTLS_RIPEMD160_C)
756 "MBEDTLS_RIPEMD160_C",
757#endif /* MBEDTLS_RIPEMD160_C */
758#if defined(MBEDTLS_RSA_C)
759 "MBEDTLS_RSA_C",
760#endif /* MBEDTLS_RSA_C */
761#if defined(MBEDTLS_SHA1_C)
762 "MBEDTLS_SHA1_C",
763#endif /* MBEDTLS_SHA1_C */
764#if defined(MBEDTLS_SHA256_C)
765 "MBEDTLS_SHA256_C",
766#endif /* MBEDTLS_SHA256_C */
767#if defined(MBEDTLS_SHA512_C)
768 "MBEDTLS_SHA512_C",
769#endif /* MBEDTLS_SHA512_C */
Gilles Peskine4e117492020-02-26 18:56:08 +0100770#if defined(MBEDTLS_SSL_CACHE_C)
771 "MBEDTLS_SSL_CACHE_C",
772#endif /* MBEDTLS_SSL_CACHE_C */
773#if defined(MBEDTLS_SSL_COOKIE_C)
774 "MBEDTLS_SSL_COOKIE_C",
775#endif /* MBEDTLS_SSL_COOKIE_C */
776#if defined(MBEDTLS_SSL_TICKET_C)
777 "MBEDTLS_SSL_TICKET_C",
778#endif /* MBEDTLS_SSL_TICKET_C */
779#if defined(MBEDTLS_SSL_CLI_C)
780 "MBEDTLS_SSL_CLI_C",
781#endif /* MBEDTLS_SSL_CLI_C */
782#if defined(MBEDTLS_SSL_SRV_C)
783 "MBEDTLS_SSL_SRV_C",
784#endif /* MBEDTLS_SSL_SRV_C */
785#if defined(MBEDTLS_SSL_TLS_C)
786 "MBEDTLS_SSL_TLS_C",
787#endif /* MBEDTLS_SSL_TLS_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200788#if defined(MBEDTLS_THREADING_C)
789 "MBEDTLS_THREADING_C",
790#endif /* MBEDTLS_THREADING_C */
791#if defined(MBEDTLS_TIMING_C)
792 "MBEDTLS_TIMING_C",
793#endif /* MBEDTLS_TIMING_C */
794#if defined(MBEDTLS_VERSION_C)
795 "MBEDTLS_VERSION_C",
796#endif /* MBEDTLS_VERSION_C */
Gilles Peskine252e3912020-02-26 18:33:58 +0100797#if defined(MBEDTLS_X509_USE_C)
798 "MBEDTLS_X509_USE_C",
799#endif /* MBEDTLS_X509_USE_C */
800#if defined(MBEDTLS_X509_CRT_PARSE_C)
801 "MBEDTLS_X509_CRT_PARSE_C",
802#endif /* MBEDTLS_X509_CRT_PARSE_C */
803#if defined(MBEDTLS_X509_CRL_PARSE_C)
804 "MBEDTLS_X509_CRL_PARSE_C",
805#endif /* MBEDTLS_X509_CRL_PARSE_C */
806#if defined(MBEDTLS_X509_CSR_PARSE_C)
807 "MBEDTLS_X509_CSR_PARSE_C",
808#endif /* MBEDTLS_X509_CSR_PARSE_C */
809#if defined(MBEDTLS_X509_CREATE_C)
810 "MBEDTLS_X509_CREATE_C",
811#endif /* MBEDTLS_X509_CREATE_C */
812#if defined(MBEDTLS_X509_CRT_WRITE_C)
813 "MBEDTLS_X509_CRT_WRITE_C",
814#endif /* MBEDTLS_X509_CRT_WRITE_C */
815#if defined(MBEDTLS_X509_CSR_WRITE_C)
816 "MBEDTLS_X509_CSR_WRITE_C",
817#endif /* MBEDTLS_X509_CSR_WRITE_C */
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200818#if defined(MBEDTLS_XTEA_C)
819 "MBEDTLS_XTEA_C",
820#endif /* MBEDTLS_XTEA_C */
821#endif /* MBEDTLS_VERSION_FEATURES */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200822 NULL
823};
824
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200825int mbedtls_version_check_feature( const char *feature )
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200826{
Máté Vargac5de4622019-06-12 12:26:37 +0200827 const char * const *idx = features;
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200828
Paul Bakker2ca1dc82014-04-30 17:01:25 +0200829 if( *idx == NULL )
830 return( -2 );
831
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200832 if( feature == NULL )
833 return( -1 );
834
835 while( *idx != NULL )
836 {
Manuel Pégourié-Gonnardcb46fd82015-05-28 17:06:07 +0200837 if( !strcmp( *idx, feature ) )
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200838 return( 0 );
839 idx++;
840 }
841 return( -1 );
842}
843
Manuel Pégourié-Gonnard2cf5a7c2015-04-08 12:49:31 +0200844#endif /* MBEDTLS_VERSION_C */