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