1 /* 2 * Version feature information 3 * 4 * Copyright (C) 2006-2015, ARM Limited, All Rights Reserved 5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 6 * 7 * This file is provided under the Apache License 2.0, or the 8 * GNU General Public License v2.0 or later. 9 * 10 * ********** 11 * Apache License 2.0: 12 * 13 * Licensed under the Apache License, Version 2.0 (the "License"); you may 14 * not use this file except in compliance with the License. 15 * You may obtain a copy of the License at 16 * 17 * http://www.apache.org/licenses/LICENSE-2.0 18 * 19 * Unless required by applicable law or agreed to in writing, software 20 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 21 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 22 * See the License for the specific language governing permissions and 23 * limitations under the License. 24 * 25 * ********** 26 * 27 * ********** 28 * GNU General Public License v2.0 or later: 29 * 30 * This program is free software; you can redistribute it and/or modify 31 * it under the terms of the GNU General Public License as published by 32 * the Free Software Foundation; either version 2 of the License, or 33 * (at your option) any later version. 34 * 35 * This program is distributed in the hope that it will be useful, 36 * but WITHOUT ANY WARRANTY; without even the implied warranty of 37 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 38 * GNU General Public License for more details. 39 * 40 * You should have received a copy of the GNU General Public License along 41 * with this program; if not, write to the Free Software Foundation, Inc., 42 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 43 * 44 * ********** 45 * 46 * This file is part of mbed TLS (https://tls.mbed.org) 47 */ 48 49 #if !defined(MBEDTLS_CONFIG_FILE) 50 #include "mbedtls/config.h" 51 #else 52 #include MBEDTLS_CONFIG_FILE 53 #endif 54 55 #if defined(MBEDTLS_VERSION_C) 56 57 #include "mbedtls/version.h" 58 59 #include <string.h> 60 61 static const char *features[] = { 62 #if defined(MBEDTLS_VERSION_FEATURES) 63 #if defined(MBEDTLS_HAVE_ASM) 64 "MBEDTLS_HAVE_ASM", 65 #endif /* MBEDTLS_HAVE_ASM */ 66 #if defined(MBEDTLS_NO_UDBL_DIVISION) 67 "MBEDTLS_NO_UDBL_DIVISION", 68 #endif /* MBEDTLS_NO_UDBL_DIVISION */ 69 #if defined(MBEDTLS_HAVE_SSE2) 70 "MBEDTLS_HAVE_SSE2", 71 #endif /* MBEDTLS_HAVE_SSE2 */ 72 #if defined(MBEDTLS_HAVE_TIME) 73 "MBEDTLS_HAVE_TIME", 74 #endif /* MBEDTLS_HAVE_TIME */ 75 #if defined(MBEDTLS_HAVE_TIME_DATE) 76 "MBEDTLS_HAVE_TIME_DATE", 77 #endif /* MBEDTLS_HAVE_TIME_DATE */ 78 #if defined(MBEDTLS_PLATFORM_MEMORY) 79 "MBEDTLS_PLATFORM_MEMORY", 80 #endif /* MBEDTLS_PLATFORM_MEMORY */ 81 #if defined(MBEDTLS_PLATFORM_NO_STD_FUNCTIONS) 82 "MBEDTLS_PLATFORM_NO_STD_FUNCTIONS", 83 #endif /* MBEDTLS_PLATFORM_NO_STD_FUNCTIONS */ 84 #if defined(MBEDTLS_PLATFORM_EXIT_ALT) 85 "MBEDTLS_PLATFORM_EXIT_ALT", 86 #endif /* MBEDTLS_PLATFORM_EXIT_ALT */ 87 #if defined(MBEDTLS_PLATFORM_TIME_ALT) 88 "MBEDTLS_PLATFORM_TIME_ALT", 89 #endif /* MBEDTLS_PLATFORM_TIME_ALT */ 90 #if defined(MBEDTLS_PLATFORM_FPRINTF_ALT) 91 "MBEDTLS_PLATFORM_FPRINTF_ALT", 92 #endif /* MBEDTLS_PLATFORM_FPRINTF_ALT */ 93 #if defined(MBEDTLS_PLATFORM_PRINTF_ALT) 94 "MBEDTLS_PLATFORM_PRINTF_ALT", 95 #endif /* MBEDTLS_PLATFORM_PRINTF_ALT */ 96 #if defined(MBEDTLS_PLATFORM_SNPRINTF_ALT) 97 "MBEDTLS_PLATFORM_SNPRINTF_ALT", 98 #endif /* MBEDTLS_PLATFORM_SNPRINTF_ALT */ 99 #if defined(MBEDTLS_PLATFORM_NV_SEED_ALT) 100 "MBEDTLS_PLATFORM_NV_SEED_ALT", 101 #endif /* MBEDTLS_PLATFORM_NV_SEED_ALT */ 102 #if defined(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT) 103 "MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT", 104 #endif /* MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT */ 105 #if defined(MBEDTLS_DEPRECATED_WARNING) 106 "MBEDTLS_DEPRECATED_WARNING", 107 #endif /* MBEDTLS_DEPRECATED_WARNING */ 108 #if defined(MBEDTLS_DEPRECATED_REMOVED) 109 "MBEDTLS_DEPRECATED_REMOVED", 110 #endif /* MBEDTLS_DEPRECATED_REMOVED */ 111 #if defined(MBEDTLS_TIMING_ALT) 112 "MBEDTLS_TIMING_ALT", 113 #endif /* MBEDTLS_TIMING_ALT */ 114 #if defined(MBEDTLS_AES_ALT) 115 "MBEDTLS_AES_ALT", 116 #endif /* MBEDTLS_AES_ALT */ 117 #if defined(MBEDTLS_ARC4_ALT) 118 "MBEDTLS_ARC4_ALT", 119 #endif /* MBEDTLS_ARC4_ALT */ 120 #if defined(MBEDTLS_BLOWFISH_ALT) 121 "MBEDTLS_BLOWFISH_ALT", 122 #endif /* MBEDTLS_BLOWFISH_ALT */ 123 #if defined(MBEDTLS_CAMELLIA_ALT) 124 "MBEDTLS_CAMELLIA_ALT", 125 #endif /* MBEDTLS_CAMELLIA_ALT */ 126 #if defined(MBEDTLS_CCM_ALT) 127 "MBEDTLS_CCM_ALT", 128 #endif /* MBEDTLS_CCM_ALT */ 129 #if defined(MBEDTLS_CMAC_ALT) 130 "MBEDTLS_CMAC_ALT", 131 #endif /* MBEDTLS_CMAC_ALT */ 132 #if defined(MBEDTLS_DES_ALT) 133 "MBEDTLS_DES_ALT", 134 #endif /* MBEDTLS_DES_ALT */ 135 #if defined(MBEDTLS_DHM_ALT) 136 "MBEDTLS_DHM_ALT", 137 #endif /* MBEDTLS_DHM_ALT */ 138 #if defined(MBEDTLS_ECJPAKE_ALT) 139 "MBEDTLS_ECJPAKE_ALT", 140 #endif /* MBEDTLS_ECJPAKE_ALT */ 141 #if defined(MBEDTLS_GCM_ALT) 142 "MBEDTLS_GCM_ALT", 143 #endif /* MBEDTLS_GCM_ALT */ 144 #if defined(MBEDTLS_MD2_ALT) 145 "MBEDTLS_MD2_ALT", 146 #endif /* MBEDTLS_MD2_ALT */ 147 #if defined(MBEDTLS_MD4_ALT) 148 "MBEDTLS_MD4_ALT", 149 #endif /* MBEDTLS_MD4_ALT */ 150 #if defined(MBEDTLS_MD5_ALT) 151 "MBEDTLS_MD5_ALT", 152 #endif /* MBEDTLS_MD5_ALT */ 153 #if defined(MBEDTLS_RIPEMD160_ALT) 154 "MBEDTLS_RIPEMD160_ALT", 155 #endif /* MBEDTLS_RIPEMD160_ALT */ 156 #if defined(MBEDTLS_RSA_ALT) 157 "MBEDTLS_RSA_ALT", 158 #endif /* MBEDTLS_RSA_ALT */ 159 #if defined(MBEDTLS_SHA1_ALT) 160 "MBEDTLS_SHA1_ALT", 161 #endif /* MBEDTLS_SHA1_ALT */ 162 #if defined(MBEDTLS_SHA256_ALT) 163 "MBEDTLS_SHA256_ALT", 164 #endif /* MBEDTLS_SHA256_ALT */ 165 #if defined(MBEDTLS_SHA512_ALT) 166 "MBEDTLS_SHA512_ALT", 167 #endif /* MBEDTLS_SHA512_ALT */ 168 #if defined(MBEDTLS_XTEA_ALT) 169 "MBEDTLS_XTEA_ALT", 170 #endif /* MBEDTLS_XTEA_ALT */ 171 #if defined(MBEDTLS_ECP_ALT) 172 "MBEDTLS_ECP_ALT", 173 #endif /* MBEDTLS_ECP_ALT */ 174 #if defined(MBEDTLS_MD2_PROCESS_ALT) 175 "MBEDTLS_MD2_PROCESS_ALT", 176 #endif /* MBEDTLS_MD2_PROCESS_ALT */ 177 #if defined(MBEDTLS_MD4_PROCESS_ALT) 178 "MBEDTLS_MD4_PROCESS_ALT", 179 #endif /* MBEDTLS_MD4_PROCESS_ALT */ 180 #if defined(MBEDTLS_MD5_PROCESS_ALT) 181 "MBEDTLS_MD5_PROCESS_ALT", 182 #endif /* MBEDTLS_MD5_PROCESS_ALT */ 183 #if defined(MBEDTLS_RIPEMD160_PROCESS_ALT) 184 "MBEDTLS_RIPEMD160_PROCESS_ALT", 185 #endif /* MBEDTLS_RIPEMD160_PROCESS_ALT */ 186 #if defined(MBEDTLS_SHA1_PROCESS_ALT) 187 "MBEDTLS_SHA1_PROCESS_ALT", 188 #endif /* MBEDTLS_SHA1_PROCESS_ALT */ 189 #if defined(MBEDTLS_SHA256_PROCESS_ALT) 190 "MBEDTLS_SHA256_PROCESS_ALT", 191 #endif /* MBEDTLS_SHA256_PROCESS_ALT */ 192 #if defined(MBEDTLS_SHA512_PROCESS_ALT) 193 "MBEDTLS_SHA512_PROCESS_ALT", 194 #endif /* MBEDTLS_SHA512_PROCESS_ALT */ 195 #if defined(MBEDTLS_DES_SETKEY_ALT) 196 "MBEDTLS_DES_SETKEY_ALT", 197 #endif /* MBEDTLS_DES_SETKEY_ALT */ 198 #if defined(MBEDTLS_DES_CRYPT_ECB_ALT) 199 "MBEDTLS_DES_CRYPT_ECB_ALT", 200 #endif /* MBEDTLS_DES_CRYPT_ECB_ALT */ 201 #if defined(MBEDTLS_DES3_CRYPT_ECB_ALT) 202 "MBEDTLS_DES3_CRYPT_ECB_ALT", 203 #endif /* MBEDTLS_DES3_CRYPT_ECB_ALT */ 204 #if defined(MBEDTLS_AES_SETKEY_ENC_ALT) 205 "MBEDTLS_AES_SETKEY_ENC_ALT", 206 #endif /* MBEDTLS_AES_SETKEY_ENC_ALT */ 207 #if defined(MBEDTLS_AES_SETKEY_DEC_ALT) 208 "MBEDTLS_AES_SETKEY_DEC_ALT", 209 #endif /* MBEDTLS_AES_SETKEY_DEC_ALT */ 210 #if defined(MBEDTLS_AES_ENCRYPT_ALT) 211 "MBEDTLS_AES_ENCRYPT_ALT", 212 #endif /* MBEDTLS_AES_ENCRYPT_ALT */ 213 #if defined(MBEDTLS_AES_DECRYPT_ALT) 214 "MBEDTLS_AES_DECRYPT_ALT", 215 #endif /* MBEDTLS_AES_DECRYPT_ALT */ 216 #if defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT) 217 "MBEDTLS_ECDH_GEN_PUBLIC_ALT", 218 #endif /* MBEDTLS_ECDH_GEN_PUBLIC_ALT */ 219 #if defined(MBEDTLS_ECDH_COMPUTE_SHARED_ALT) 220 "MBEDTLS_ECDH_COMPUTE_SHARED_ALT", 221 #endif /* MBEDTLS_ECDH_COMPUTE_SHARED_ALT */ 222 #if defined(MBEDTLS_ECDSA_VERIFY_ALT) 223 "MBEDTLS_ECDSA_VERIFY_ALT", 224 #endif /* MBEDTLS_ECDSA_VERIFY_ALT */ 225 #if defined(MBEDTLS_ECDSA_SIGN_ALT) 226 "MBEDTLS_ECDSA_SIGN_ALT", 227 #endif /* MBEDTLS_ECDSA_SIGN_ALT */ 228 #if defined(MBEDTLS_ECDSA_GENKEY_ALT) 229 "MBEDTLS_ECDSA_GENKEY_ALT", 230 #endif /* MBEDTLS_ECDSA_GENKEY_ALT */ 231 #if defined(MBEDTLS_ECP_INTERNAL_ALT) 232 "MBEDTLS_ECP_INTERNAL_ALT", 233 #endif /* MBEDTLS_ECP_INTERNAL_ALT */ 234 #if defined(MBEDTLS_ECP_RANDOMIZE_JAC_ALT) 235 "MBEDTLS_ECP_RANDOMIZE_JAC_ALT", 236 #endif /* MBEDTLS_ECP_RANDOMIZE_JAC_ALT */ 237 #if defined(MBEDTLS_ECP_ADD_MIXED_ALT) 238 "MBEDTLS_ECP_ADD_MIXED_ALT", 239 #endif /* MBEDTLS_ECP_ADD_MIXED_ALT */ 240 #if defined(MBEDTLS_ECP_DOUBLE_JAC_ALT) 241 "MBEDTLS_ECP_DOUBLE_JAC_ALT", 242 #endif /* MBEDTLS_ECP_DOUBLE_JAC_ALT */ 243 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT) 244 "MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT", 245 #endif /* MBEDTLS_ECP_NORMALIZE_JAC_MANY_ALT */ 246 #if defined(MBEDTLS_ECP_NORMALIZE_JAC_ALT) 247 "MBEDTLS_ECP_NORMALIZE_JAC_ALT", 248 #endif /* MBEDTLS_ECP_NORMALIZE_JAC_ALT */ 249 #if defined(MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT) 250 "MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT", 251 #endif /* MBEDTLS_ECP_DOUBLE_ADD_MXZ_ALT */ 252 #if defined(MBEDTLS_ECP_RANDOMIZE_MXZ_ALT) 253 "MBEDTLS_ECP_RANDOMIZE_MXZ_ALT", 254 #endif /* MBEDTLS_ECP_RANDOMIZE_MXZ_ALT */ 255 #if defined(MBEDTLS_ECP_NORMALIZE_MXZ_ALT) 256 "MBEDTLS_ECP_NORMALIZE_MXZ_ALT", 257 #endif /* MBEDTLS_ECP_NORMALIZE_MXZ_ALT */ 258 #if defined(MBEDTLS_TEST_NULL_ENTROPY) 259 "MBEDTLS_TEST_NULL_ENTROPY", 260 #endif /* MBEDTLS_TEST_NULL_ENTROPY */ 261 #if defined(MBEDTLS_ENTROPY_HARDWARE_ALT) 262 "MBEDTLS_ENTROPY_HARDWARE_ALT", 263 #endif /* MBEDTLS_ENTROPY_HARDWARE_ALT */ 264 #if defined(MBEDTLS_AES_ROM_TABLES) 265 "MBEDTLS_AES_ROM_TABLES", 266 #endif /* MBEDTLS_AES_ROM_TABLES */ 267 #if defined(MBEDTLS_CAMELLIA_SMALL_MEMORY) 268 "MBEDTLS_CAMELLIA_SMALL_MEMORY", 269 #endif /* MBEDTLS_CAMELLIA_SMALL_MEMORY */ 270 #if defined(MBEDTLS_CIPHER_MODE_CBC) 271 "MBEDTLS_CIPHER_MODE_CBC", 272 #endif /* MBEDTLS_CIPHER_MODE_CBC */ 273 #if defined(MBEDTLS_CIPHER_MODE_CFB) 274 "MBEDTLS_CIPHER_MODE_CFB", 275 #endif /* MBEDTLS_CIPHER_MODE_CFB */ 276 #if defined(MBEDTLS_CIPHER_MODE_CTR) 277 "MBEDTLS_CIPHER_MODE_CTR", 278 #endif /* MBEDTLS_CIPHER_MODE_CTR */ 279 #if defined(MBEDTLS_CIPHER_NULL_CIPHER) 280 "MBEDTLS_CIPHER_NULL_CIPHER", 281 #endif /* MBEDTLS_CIPHER_NULL_CIPHER */ 282 #if defined(MBEDTLS_CIPHER_PADDING_PKCS7) 283 "MBEDTLS_CIPHER_PADDING_PKCS7", 284 #endif /* MBEDTLS_CIPHER_PADDING_PKCS7 */ 285 #if defined(MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS) 286 "MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS", 287 #endif /* MBEDTLS_CIPHER_PADDING_ONE_AND_ZEROS */ 288 #if defined(MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN) 289 "MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN", 290 #endif /* MBEDTLS_CIPHER_PADDING_ZEROS_AND_LEN */ 291 #if defined(MBEDTLS_CIPHER_PADDING_ZEROS) 292 "MBEDTLS_CIPHER_PADDING_ZEROS", 293 #endif /* MBEDTLS_CIPHER_PADDING_ZEROS */ 294 #if defined(MBEDTLS_ENABLE_WEAK_CIPHERSUITES) 295 "MBEDTLS_ENABLE_WEAK_CIPHERSUITES", 296 #endif /* MBEDTLS_ENABLE_WEAK_CIPHERSUITES */ 297 #if defined(MBEDTLS_REMOVE_ARC4_CIPHERSUITES) 298 "MBEDTLS_REMOVE_ARC4_CIPHERSUITES", 299 #endif /* MBEDTLS_REMOVE_ARC4_CIPHERSUITES */ 300 #if defined(MBEDTLS_REMOVE_3DES_CIPHERSUITES) 301 "MBEDTLS_REMOVE_3DES_CIPHERSUITES", 302 #endif /* MBEDTLS_REMOVE_3DES_CIPHERSUITES */ 303 #if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) 304 "MBEDTLS_ECP_DP_SECP192R1_ENABLED", 305 #endif /* MBEDTLS_ECP_DP_SECP192R1_ENABLED */ 306 #if defined(MBEDTLS_ECP_DP_SECP224R1_ENABLED) 307 "MBEDTLS_ECP_DP_SECP224R1_ENABLED", 308 #endif /* MBEDTLS_ECP_DP_SECP224R1_ENABLED */ 309 #if defined(MBEDTLS_ECP_DP_SECP256R1_ENABLED) 310 "MBEDTLS_ECP_DP_SECP256R1_ENABLED", 311 #endif /* MBEDTLS_ECP_DP_SECP256R1_ENABLED */ 312 #if defined(MBEDTLS_ECP_DP_SECP384R1_ENABLED) 313 "MBEDTLS_ECP_DP_SECP384R1_ENABLED", 314 #endif /* MBEDTLS_ECP_DP_SECP384R1_ENABLED */ 315 #if defined(MBEDTLS_ECP_DP_SECP521R1_ENABLED) 316 "MBEDTLS_ECP_DP_SECP521R1_ENABLED", 317 #endif /* MBEDTLS_ECP_DP_SECP521R1_ENABLED */ 318 #if defined(MBEDTLS_ECP_DP_SECP192K1_ENABLED) 319 "MBEDTLS_ECP_DP_SECP192K1_ENABLED", 320 #endif /* MBEDTLS_ECP_DP_SECP192K1_ENABLED */ 321 #if defined(MBEDTLS_ECP_DP_SECP224K1_ENABLED) 322 "MBEDTLS_ECP_DP_SECP224K1_ENABLED", 323 #endif /* MBEDTLS_ECP_DP_SECP224K1_ENABLED */ 324 #if defined(MBEDTLS_ECP_DP_SECP256K1_ENABLED) 325 "MBEDTLS_ECP_DP_SECP256K1_ENABLED", 326 #endif /* MBEDTLS_ECP_DP_SECP256K1_ENABLED */ 327 #if defined(MBEDTLS_ECP_DP_BP256R1_ENABLED) 328 "MBEDTLS_ECP_DP_BP256R1_ENABLED", 329 #endif /* MBEDTLS_ECP_DP_BP256R1_ENABLED */ 330 #if defined(MBEDTLS_ECP_DP_BP384R1_ENABLED) 331 "MBEDTLS_ECP_DP_BP384R1_ENABLED", 332 #endif /* MBEDTLS_ECP_DP_BP384R1_ENABLED */ 333 #if defined(MBEDTLS_ECP_DP_BP512R1_ENABLED) 334 "MBEDTLS_ECP_DP_BP512R1_ENABLED", 335 #endif /* MBEDTLS_ECP_DP_BP512R1_ENABLED */ 336 #if defined(MBEDTLS_ECP_DP_CURVE25519_ENABLED) 337 "MBEDTLS_ECP_DP_CURVE25519_ENABLED", 338 #endif /* MBEDTLS_ECP_DP_CURVE25519_ENABLED */ 339 #if defined(MBEDTLS_ECP_NIST_OPTIM) 340 "MBEDTLS_ECP_NIST_OPTIM", 341 #endif /* MBEDTLS_ECP_NIST_OPTIM */ 342 #if defined(MBEDTLS_ECP_NO_INTERNAL_RNG) 343 "MBEDTLS_ECP_NO_INTERNAL_RNG", 344 #endif /* MBEDTLS_ECP_NO_INTERNAL_RNG */ 345 #if defined(MBEDTLS_ECDSA_DETERMINISTIC) 346 "MBEDTLS_ECDSA_DETERMINISTIC", 347 #endif /* MBEDTLS_ECDSA_DETERMINISTIC */ 348 #if defined(MBEDTLS_KEY_EXCHANGE_PSK_ENABLED) 349 "MBEDTLS_KEY_EXCHANGE_PSK_ENABLED", 350 #endif /* MBEDTLS_KEY_EXCHANGE_PSK_ENABLED */ 351 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED) 352 "MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED", 353 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_PSK_ENABLED */ 354 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED) 355 "MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED", 356 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_PSK_ENABLED */ 357 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED) 358 "MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED", 359 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_PSK_ENABLED */ 360 #if defined(MBEDTLS_KEY_EXCHANGE_RSA_ENABLED) 361 "MBEDTLS_KEY_EXCHANGE_RSA_ENABLED", 362 #endif /* MBEDTLS_KEY_EXCHANGE_RSA_ENABLED */ 363 #if defined(MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED) 364 "MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED", 365 #endif /* MBEDTLS_KEY_EXCHANGE_DHE_RSA_ENABLED */ 366 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED) 367 "MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED", 368 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_RSA_ENABLED */ 369 #if defined(MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED) 370 "MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED", 371 #endif /* MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */ 372 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED) 373 "MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED", 374 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */ 375 #if defined(MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED) 376 "MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED", 377 #endif /* MBEDTLS_KEY_EXCHANGE_ECDH_RSA_ENABLED */ 378 #if defined(MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED) 379 "MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED", 380 #endif /* MBEDTLS_KEY_EXCHANGE_ECJPAKE_ENABLED */ 381 #if defined(MBEDTLS_PK_PARSE_EC_EXTENDED) 382 "MBEDTLS_PK_PARSE_EC_EXTENDED", 383 #endif /* MBEDTLS_PK_PARSE_EC_EXTENDED */ 384 #if defined(MBEDTLS_ERROR_STRERROR_DUMMY) 385 "MBEDTLS_ERROR_STRERROR_DUMMY", 386 #endif /* MBEDTLS_ERROR_STRERROR_DUMMY */ 387 #if defined(MBEDTLS_GENPRIME) 388 "MBEDTLS_GENPRIME", 389 #endif /* MBEDTLS_GENPRIME */ 390 #if defined(MBEDTLS_FS_IO) 391 "MBEDTLS_FS_IO", 392 #endif /* MBEDTLS_FS_IO */ 393 #if defined(MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES) 394 "MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES", 395 #endif /* MBEDTLS_NO_DEFAULT_ENTROPY_SOURCES */ 396 #if defined(MBEDTLS_NO_PLATFORM_ENTROPY) 397 "MBEDTLS_NO_PLATFORM_ENTROPY", 398 #endif /* MBEDTLS_NO_PLATFORM_ENTROPY */ 399 #if defined(MBEDTLS_ENTROPY_FORCE_SHA256) 400 "MBEDTLS_ENTROPY_FORCE_SHA256", 401 #endif /* MBEDTLS_ENTROPY_FORCE_SHA256 */ 402 #if defined(MBEDTLS_ENTROPY_NV_SEED) 403 "MBEDTLS_ENTROPY_NV_SEED", 404 #endif /* MBEDTLS_ENTROPY_NV_SEED */ 405 #if defined(MBEDTLS_MEMORY_DEBUG) 406 "MBEDTLS_MEMORY_DEBUG", 407 #endif /* MBEDTLS_MEMORY_DEBUG */ 408 #if defined(MBEDTLS_MEMORY_BACKTRACE) 409 "MBEDTLS_MEMORY_BACKTRACE", 410 #endif /* MBEDTLS_MEMORY_BACKTRACE */ 411 #if defined(MBEDTLS_PK_RSA_ALT_SUPPORT) 412 "MBEDTLS_PK_RSA_ALT_SUPPORT", 413 #endif /* MBEDTLS_PK_RSA_ALT_SUPPORT */ 414 #if defined(MBEDTLS_PKCS1_V15) 415 "MBEDTLS_PKCS1_V15", 416 #endif /* MBEDTLS_PKCS1_V15 */ 417 #if defined(MBEDTLS_PKCS1_V21) 418 "MBEDTLS_PKCS1_V21", 419 #endif /* MBEDTLS_PKCS1_V21 */ 420 #if defined(MBEDTLS_RSA_NO_CRT) 421 "MBEDTLS_RSA_NO_CRT", 422 #endif /* MBEDTLS_RSA_NO_CRT */ 423 #if defined(MBEDTLS_SELF_TEST) 424 "MBEDTLS_SELF_TEST", 425 #endif /* MBEDTLS_SELF_TEST */ 426 #if defined(MBEDTLS_SHA256_SMALLER) 427 "MBEDTLS_SHA256_SMALLER", 428 #endif /* MBEDTLS_SHA256_SMALLER */ 429 #if defined(MBEDTLS_SSL_ALL_ALERT_MESSAGES) 430 "MBEDTLS_SSL_ALL_ALERT_MESSAGES", 431 #endif /* MBEDTLS_SSL_ALL_ALERT_MESSAGES */ 432 #if defined(MBEDTLS_SSL_DEBUG_ALL) 433 "MBEDTLS_SSL_DEBUG_ALL", 434 #endif /* MBEDTLS_SSL_DEBUG_ALL */ 435 #if defined(MBEDTLS_SSL_ENCRYPT_THEN_MAC) 436 "MBEDTLS_SSL_ENCRYPT_THEN_MAC", 437 #endif /* MBEDTLS_SSL_ENCRYPT_THEN_MAC */ 438 #if defined(MBEDTLS_SSL_EXTENDED_MASTER_SECRET) 439 "MBEDTLS_SSL_EXTENDED_MASTER_SECRET", 440 #endif /* MBEDTLS_SSL_EXTENDED_MASTER_SECRET */ 441 #if defined(MBEDTLS_SSL_FALLBACK_SCSV) 442 "MBEDTLS_SSL_FALLBACK_SCSV", 443 #endif /* MBEDTLS_SSL_FALLBACK_SCSV */ 444 #if defined(MBEDTLS_SSL_HW_RECORD_ACCEL) 445 "MBEDTLS_SSL_HW_RECORD_ACCEL", 446 #endif /* MBEDTLS_SSL_HW_RECORD_ACCEL */ 447 #if defined(MBEDTLS_SSL_CBC_RECORD_SPLITTING) 448 "MBEDTLS_SSL_CBC_RECORD_SPLITTING", 449 #endif /* MBEDTLS_SSL_CBC_RECORD_SPLITTING */ 450 #if defined(MBEDTLS_SSL_RENEGOTIATION) 451 "MBEDTLS_SSL_RENEGOTIATION", 452 #endif /* MBEDTLS_SSL_RENEGOTIATION */ 453 #if defined(MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO) 454 "MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO", 455 #endif /* MBEDTLS_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */ 456 #if defined(MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE) 457 "MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE", 458 #endif /* MBEDTLS_SSL_SRV_RESPECT_CLIENT_PREFERENCE */ 459 #if defined(MBEDTLS_SSL_MAX_FRAGMENT_LENGTH) 460 "MBEDTLS_SSL_MAX_FRAGMENT_LENGTH", 461 #endif /* MBEDTLS_SSL_MAX_FRAGMENT_LENGTH */ 462 #if defined(MBEDTLS_SSL_PROTO_SSL3) 463 "MBEDTLS_SSL_PROTO_SSL3", 464 #endif /* MBEDTLS_SSL_PROTO_SSL3 */ 465 #if defined(MBEDTLS_SSL_PROTO_TLS1) 466 "MBEDTLS_SSL_PROTO_TLS1", 467 #endif /* MBEDTLS_SSL_PROTO_TLS1 */ 468 #if defined(MBEDTLS_SSL_PROTO_TLS1_1) 469 "MBEDTLS_SSL_PROTO_TLS1_1", 470 #endif /* MBEDTLS_SSL_PROTO_TLS1_1 */ 471 #if defined(MBEDTLS_SSL_PROTO_TLS1_2) 472 "MBEDTLS_SSL_PROTO_TLS1_2", 473 #endif /* MBEDTLS_SSL_PROTO_TLS1_2 */ 474 #if defined(MBEDTLS_SSL_PROTO_DTLS) 475 "MBEDTLS_SSL_PROTO_DTLS", 476 #endif /* MBEDTLS_SSL_PROTO_DTLS */ 477 #if defined(MBEDTLS_SSL_ALPN) 478 "MBEDTLS_SSL_ALPN", 479 #endif /* MBEDTLS_SSL_ALPN */ 480 #if defined(MBEDTLS_SSL_DTLS_ANTI_REPLAY) 481 "MBEDTLS_SSL_DTLS_ANTI_REPLAY", 482 #endif /* MBEDTLS_SSL_DTLS_ANTI_REPLAY */ 483 #if defined(MBEDTLS_SSL_DTLS_HELLO_VERIFY) 484 "MBEDTLS_SSL_DTLS_HELLO_VERIFY", 485 #endif /* MBEDTLS_SSL_DTLS_HELLO_VERIFY */ 486 #if defined(MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE) 487 "MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE", 488 #endif /* MBEDTLS_SSL_DTLS_CLIENT_PORT_REUSE */ 489 #if defined(MBEDTLS_SSL_DTLS_BADMAC_LIMIT) 490 "MBEDTLS_SSL_DTLS_BADMAC_LIMIT", 491 #endif /* MBEDTLS_SSL_DTLS_BADMAC_LIMIT */ 492 #if defined(MBEDTLS_SSL_SESSION_TICKETS) 493 "MBEDTLS_SSL_SESSION_TICKETS", 494 #endif /* MBEDTLS_SSL_SESSION_TICKETS */ 495 #if defined(MBEDTLS_SSL_EXPORT_KEYS) 496 "MBEDTLS_SSL_EXPORT_KEYS", 497 #endif /* MBEDTLS_SSL_EXPORT_KEYS */ 498 #if defined(MBEDTLS_SSL_SERVER_NAME_INDICATION) 499 "MBEDTLS_SSL_SERVER_NAME_INDICATION", 500 #endif /* MBEDTLS_SSL_SERVER_NAME_INDICATION */ 501 #if defined(MBEDTLS_SSL_TRUNCATED_HMAC) 502 "MBEDTLS_SSL_TRUNCATED_HMAC", 503 #endif /* MBEDTLS_SSL_TRUNCATED_HMAC */ 504 #if defined(MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT) 505 "MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT", 506 #endif /* MBEDTLS_SSL_TRUNCATED_HMAC_COMPAT */ 507 #if defined(MBEDTLS_THREADING_ALT) 508 "MBEDTLS_THREADING_ALT", 509 #endif /* MBEDTLS_THREADING_ALT */ 510 #if defined(MBEDTLS_THREADING_PTHREAD) 511 "MBEDTLS_THREADING_PTHREAD", 512 #endif /* MBEDTLS_THREADING_PTHREAD */ 513 #if defined(MBEDTLS_VERSION_FEATURES) 514 "MBEDTLS_VERSION_FEATURES", 515 #endif /* MBEDTLS_VERSION_FEATURES */ 516 #if defined(MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3) 517 "MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3", 518 #endif /* MBEDTLS_X509_ALLOW_EXTENSIONS_NON_V3 */ 519 #if defined(MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION) 520 "MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION", 521 #endif /* MBEDTLS_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION */ 522 #if defined(MBEDTLS_X509_CHECK_KEY_USAGE) 523 "MBEDTLS_X509_CHECK_KEY_USAGE", 524 #endif /* MBEDTLS_X509_CHECK_KEY_USAGE */ 525 #if defined(MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE) 526 "MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE", 527 #endif /* MBEDTLS_X509_CHECK_EXTENDED_KEY_USAGE */ 528 #if defined(MBEDTLS_X509_RSASSA_PSS_SUPPORT) 529 "MBEDTLS_X509_RSASSA_PSS_SUPPORT", 530 #endif /* MBEDTLS_X509_RSASSA_PSS_SUPPORT */ 531 #if defined(MBEDTLS_ZLIB_SUPPORT) 532 "MBEDTLS_ZLIB_SUPPORT", 533 #endif /* MBEDTLS_ZLIB_SUPPORT */ 534 #if defined(MBEDTLS_AESNI_C) 535 "MBEDTLS_AESNI_C", 536 #endif /* MBEDTLS_AESNI_C */ 537 #if defined(MBEDTLS_AES_C) 538 "MBEDTLS_AES_C", 539 #endif /* MBEDTLS_AES_C */ 540 #if defined(MBEDTLS_ARC4_C) 541 "MBEDTLS_ARC4_C", 542 #endif /* MBEDTLS_ARC4_C */ 543 #if defined(MBEDTLS_ASN1_PARSE_C) 544 "MBEDTLS_ASN1_PARSE_C", 545 #endif /* MBEDTLS_ASN1_PARSE_C */ 546 #if defined(MBEDTLS_ASN1_WRITE_C) 547 "MBEDTLS_ASN1_WRITE_C", 548 #endif /* MBEDTLS_ASN1_WRITE_C */ 549 #if defined(MBEDTLS_BASE64_C) 550 "MBEDTLS_BASE64_C", 551 #endif /* MBEDTLS_BASE64_C */ 552 #if defined(MBEDTLS_BIGNUM_C) 553 "MBEDTLS_BIGNUM_C", 554 #endif /* MBEDTLS_BIGNUM_C */ 555 #if defined(MBEDTLS_BLOWFISH_C) 556 "MBEDTLS_BLOWFISH_C", 557 #endif /* MBEDTLS_BLOWFISH_C */ 558 #if defined(MBEDTLS_CAMELLIA_C) 559 "MBEDTLS_CAMELLIA_C", 560 #endif /* MBEDTLS_CAMELLIA_C */ 561 #if defined(MBEDTLS_CCM_C) 562 "MBEDTLS_CCM_C", 563 #endif /* MBEDTLS_CCM_C */ 564 #if defined(MBEDTLS_CERTS_C) 565 "MBEDTLS_CERTS_C", 566 #endif /* MBEDTLS_CERTS_C */ 567 #if defined(MBEDTLS_CIPHER_C) 568 "MBEDTLS_CIPHER_C", 569 #endif /* MBEDTLS_CIPHER_C */ 570 #if defined(MBEDTLS_CMAC_C) 571 "MBEDTLS_CMAC_C", 572 #endif /* MBEDTLS_CMAC_C */ 573 #if defined(MBEDTLS_CTR_DRBG_C) 574 "MBEDTLS_CTR_DRBG_C", 575 #endif /* MBEDTLS_CTR_DRBG_C */ 576 #if defined(MBEDTLS_DEBUG_C) 577 "MBEDTLS_DEBUG_C", 578 #endif /* MBEDTLS_DEBUG_C */ 579 #if defined(MBEDTLS_DES_C) 580 "MBEDTLS_DES_C", 581 #endif /* MBEDTLS_DES_C */ 582 #if defined(MBEDTLS_DHM_C) 583 "MBEDTLS_DHM_C", 584 #endif /* MBEDTLS_DHM_C */ 585 #if defined(MBEDTLS_ECDH_C) 586 "MBEDTLS_ECDH_C", 587 #endif /* MBEDTLS_ECDH_C */ 588 #if defined(MBEDTLS_ECDSA_C) 589 "MBEDTLS_ECDSA_C", 590 #endif /* MBEDTLS_ECDSA_C */ 591 #if defined(MBEDTLS_ECJPAKE_C) 592 "MBEDTLS_ECJPAKE_C", 593 #endif /* MBEDTLS_ECJPAKE_C */ 594 #if defined(MBEDTLS_ECP_C) 595 "MBEDTLS_ECP_C", 596 #endif /* MBEDTLS_ECP_C */ 597 #if defined(MBEDTLS_ENTROPY_C) 598 "MBEDTLS_ENTROPY_C", 599 #endif /* MBEDTLS_ENTROPY_C */ 600 #if defined(MBEDTLS_ERROR_C) 601 "MBEDTLS_ERROR_C", 602 #endif /* MBEDTLS_ERROR_C */ 603 #if defined(MBEDTLS_GCM_C) 604 "MBEDTLS_GCM_C", 605 #endif /* MBEDTLS_GCM_C */ 606 #if defined(MBEDTLS_HAVEGE_C) 607 "MBEDTLS_HAVEGE_C", 608 #endif /* MBEDTLS_HAVEGE_C */ 609 #if defined(MBEDTLS_HMAC_DRBG_C) 610 "MBEDTLS_HMAC_DRBG_C", 611 #endif /* MBEDTLS_HMAC_DRBG_C */ 612 #if defined(MBEDTLS_MD_C) 613 "MBEDTLS_MD_C", 614 #endif /* MBEDTLS_MD_C */ 615 #if defined(MBEDTLS_MD2_C) 616 "MBEDTLS_MD2_C", 617 #endif /* MBEDTLS_MD2_C */ 618 #if defined(MBEDTLS_MD4_C) 619 "MBEDTLS_MD4_C", 620 #endif /* MBEDTLS_MD4_C */ 621 #if defined(MBEDTLS_MD5_C) 622 "MBEDTLS_MD5_C", 623 #endif /* MBEDTLS_MD5_C */ 624 #if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C) 625 "MBEDTLS_MEMORY_BUFFER_ALLOC_C", 626 #endif /* MBEDTLS_MEMORY_BUFFER_ALLOC_C */ 627 #if defined(MBEDTLS_NET_C) 628 "MBEDTLS_NET_C", 629 #endif /* MBEDTLS_NET_C */ 630 #if defined(MBEDTLS_OID_C) 631 "MBEDTLS_OID_C", 632 #endif /* MBEDTLS_OID_C */ 633 #if defined(MBEDTLS_PADLOCK_C) 634 "MBEDTLS_PADLOCK_C", 635 #endif /* MBEDTLS_PADLOCK_C */ 636 #if defined(MBEDTLS_PEM_PARSE_C) 637 "MBEDTLS_PEM_PARSE_C", 638 #endif /* MBEDTLS_PEM_PARSE_C */ 639 #if defined(MBEDTLS_PEM_WRITE_C) 640 "MBEDTLS_PEM_WRITE_C", 641 #endif /* MBEDTLS_PEM_WRITE_C */ 642 #if defined(MBEDTLS_PK_C) 643 "MBEDTLS_PK_C", 644 #endif /* MBEDTLS_PK_C */ 645 #if defined(MBEDTLS_PK_PARSE_C) 646 "MBEDTLS_PK_PARSE_C", 647 #endif /* MBEDTLS_PK_PARSE_C */ 648 #if defined(MBEDTLS_PK_WRITE_C) 649 "MBEDTLS_PK_WRITE_C", 650 #endif /* MBEDTLS_PK_WRITE_C */ 651 #if defined(MBEDTLS_PKCS5_C) 652 "MBEDTLS_PKCS5_C", 653 #endif /* MBEDTLS_PKCS5_C */ 654 #if defined(MBEDTLS_PKCS11_C) 655 "MBEDTLS_PKCS11_C", 656 #endif /* MBEDTLS_PKCS11_C */ 657 #if defined(MBEDTLS_PKCS12_C) 658 "MBEDTLS_PKCS12_C", 659 #endif /* MBEDTLS_PKCS12_C */ 660 #if defined(MBEDTLS_PLATFORM_C) 661 "MBEDTLS_PLATFORM_C", 662 #endif /* MBEDTLS_PLATFORM_C */ 663 #if defined(MBEDTLS_RIPEMD160_C) 664 "MBEDTLS_RIPEMD160_C", 665 #endif /* MBEDTLS_RIPEMD160_C */ 666 #if defined(MBEDTLS_RSA_C) 667 "MBEDTLS_RSA_C", 668 #endif /* MBEDTLS_RSA_C */ 669 #if defined(MBEDTLS_SHA1_C) 670 "MBEDTLS_SHA1_C", 671 #endif /* MBEDTLS_SHA1_C */ 672 #if defined(MBEDTLS_SHA256_C) 673 "MBEDTLS_SHA256_C", 674 #endif /* MBEDTLS_SHA256_C */ 675 #if defined(MBEDTLS_SHA512_C) 676 "MBEDTLS_SHA512_C", 677 #endif /* MBEDTLS_SHA512_C */ 678 #if defined(MBEDTLS_SSL_CACHE_C) 679 "MBEDTLS_SSL_CACHE_C", 680 #endif /* MBEDTLS_SSL_CACHE_C */ 681 #if defined(MBEDTLS_SSL_COOKIE_C) 682 "MBEDTLS_SSL_COOKIE_C", 683 #endif /* MBEDTLS_SSL_COOKIE_C */ 684 #if defined(MBEDTLS_SSL_TICKET_C) 685 "MBEDTLS_SSL_TICKET_C", 686 #endif /* MBEDTLS_SSL_TICKET_C */ 687 #if defined(MBEDTLS_SSL_CLI_C) 688 "MBEDTLS_SSL_CLI_C", 689 #endif /* MBEDTLS_SSL_CLI_C */ 690 #if defined(MBEDTLS_SSL_SRV_C) 691 "MBEDTLS_SSL_SRV_C", 692 #endif /* MBEDTLS_SSL_SRV_C */ 693 #if defined(MBEDTLS_SSL_TLS_C) 694 "MBEDTLS_SSL_TLS_C", 695 #endif /* MBEDTLS_SSL_TLS_C */ 696 #if defined(MBEDTLS_THREADING_C) 697 "MBEDTLS_THREADING_C", 698 #endif /* MBEDTLS_THREADING_C */ 699 #if defined(MBEDTLS_TIMING_C) 700 "MBEDTLS_TIMING_C", 701 #endif /* MBEDTLS_TIMING_C */ 702 #if defined(MBEDTLS_VERSION_C) 703 "MBEDTLS_VERSION_C", 704 #endif /* MBEDTLS_VERSION_C */ 705 #if defined(MBEDTLS_X509_USE_C) 706 "MBEDTLS_X509_USE_C", 707 #endif /* MBEDTLS_X509_USE_C */ 708 #if defined(MBEDTLS_X509_CRT_PARSE_C) 709 "MBEDTLS_X509_CRT_PARSE_C", 710 #endif /* MBEDTLS_X509_CRT_PARSE_C */ 711 #if defined(MBEDTLS_X509_CRL_PARSE_C) 712 "MBEDTLS_X509_CRL_PARSE_C", 713 #endif /* MBEDTLS_X509_CRL_PARSE_C */ 714 #if defined(MBEDTLS_X509_CSR_PARSE_C) 715 "MBEDTLS_X509_CSR_PARSE_C", 716 #endif /* MBEDTLS_X509_CSR_PARSE_C */ 717 #if defined(MBEDTLS_X509_CREATE_C) 718 "MBEDTLS_X509_CREATE_C", 719 #endif /* MBEDTLS_X509_CREATE_C */ 720 #if defined(MBEDTLS_X509_CRT_WRITE_C) 721 "MBEDTLS_X509_CRT_WRITE_C", 722 #endif /* MBEDTLS_X509_CRT_WRITE_C */ 723 #if defined(MBEDTLS_X509_CSR_WRITE_C) 724 "MBEDTLS_X509_CSR_WRITE_C", 725 #endif /* MBEDTLS_X509_CSR_WRITE_C */ 726 #if defined(MBEDTLS_XTEA_C) 727 "MBEDTLS_XTEA_C", 728 #endif /* MBEDTLS_XTEA_C */ 729 #endif /* MBEDTLS_VERSION_FEATURES */ 730 NULL 731 }; 732 733 int mbedtls_version_check_feature( const char *feature ) 734 { 735 const char **idx = features; 736 737 if( *idx == NULL ) 738 return( -2 ); 739 740 if( feature == NULL ) 741 return( -1 ); 742 743 while( *idx != NULL ) 744 { 745 if( !strcmp( *idx, feature ) ) 746 return( 0 ); 747 idx++; 748 } 749 return( -1 ); 750 } 751 752 #endif /* MBEDTLS_VERSION_C */ 753