Example program to test AES-GCM functionality. Used for a workshop

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers version_features.c Source File

version_features.c

00001 /*
00002  *  Version feature information
00003  *
00004  *  Copyright (C) 2006-2014, Brainspark B.V.
00005  *
00006  *  This file is part of PolarSSL (http://www.polarssl.org)
00007  *  Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
00008  *
00009  *  All rights reserved.
00010  *
00011  *  This program is free software; you can redistribute it and/or modify
00012  *  it under the terms of the GNU General Public License as published by
00013  *  the Free Software Foundation; either version 2 of the License, or
00014  *  (at your option) any later version.
00015  *
00016  *  This program is distributed in the hope that it will be useful,
00017  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00018  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00019  *  GNU General Public License for more details.
00020  *
00021  *  You should have received a copy of the GNU General Public License along
00022  *  with this program; if not, write to the Free Software Foundation, Inc.,
00023  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00024  */
00025 
00026 #if !defined(POLARSSL_CONFIG_FILE)
00027 #include "polarssl/config.h"
00028 #else
00029 #include POLARSSL_CONFIG_FILE
00030 #endif
00031 
00032 #if defined(POLARSSL_VERSION_C)
00033 
00034 #include "polarssl/version.h"
00035 
00036 #include <string.h>
00037 
00038 #if defined(_MSC_VER) && !defined strcasecmp && !defined(EFIX64) && \
00039     !defined(EFI32)
00040 #define strcasecmp _stricmp
00041 #endif
00042 
00043 const char *features[] = {
00044 #if defined(POLARSSL_VERSION_FEATURES)
00045 #if defined(POLARSSL_HAVE_INT8)
00046     "POLARSSL_HAVE_INT8",
00047 #endif /* POLARSSL_HAVE_INT8 */
00048 #if defined(POLARSSL_HAVE_INT16)
00049     "POLARSSL_HAVE_INT16",
00050 #endif /* POLARSSL_HAVE_INT16 */
00051 #if defined(POLARSSL_HAVE_LONGLONG)
00052     "POLARSSL_HAVE_LONGLONG",
00053 #endif /* POLARSSL_HAVE_LONGLONG */
00054 #if defined(POLARSSL_HAVE_ASM)
00055     "POLARSSL_HAVE_ASM",
00056 #endif /* POLARSSL_HAVE_ASM */
00057 #if defined(POLARSSL_HAVE_SSE2)
00058     "POLARSSL_HAVE_SSE2",
00059 #endif /* POLARSSL_HAVE_SSE2 */
00060 #if defined(POLARSSL_HAVE_TIME)
00061     "POLARSSL_HAVE_TIME",
00062 #endif /* POLARSSL_HAVE_TIME */
00063 #if defined(POLARSSL_HAVE_IPV6)
00064     "POLARSSL_HAVE_IPV6",
00065 #endif /* POLARSSL_HAVE_IPV6 */
00066 #if defined(POLARSSL_PLATFORM_MEMORY)
00067     "POLARSSL_PLATFORM_MEMORY",
00068 #endif /* POLARSSL_PLATFORM_MEMORY */
00069 #if defined(POLARSSL_PLATFORM_NO_STD_FUNCTIONS)
00070     "POLARSSL_PLATFORM_NO_STD_FUNCTIONS",
00071 #endif /* POLARSSL_PLATFORM_NO_STD_FUNCTIONS */
00072 #if defined(POLARSSL_PLATFORM_PRINTF_ALT)
00073     "POLARSSL_PLATFORM_PRINTF_ALT",
00074 #endif /* POLARSSL_PLATFORM_PRINTF_ALT */
00075 #if defined(POLARSSL_PLATFORM_FPRINTF_ALT)
00076     "POLARSSL_PLATFORM_FPRINTF_ALT",
00077 #endif /* POLARSSL_PLATFORM_FPRINTF_ALT */
00078 #if defined(POLARSSL_TIMING_ALT)
00079     "POLARSSL_TIMING_ALT",
00080 #endif /* POLARSSL_TIMING_ALT */
00081 #if defined(POLARSSL_AES_ALT)
00082     "POLARSSL_AES_ALT",
00083 #endif /* POLARSSL_AES_ALT */
00084 #if defined(POLARSSL_ARC4_ALT)
00085     "POLARSSL_ARC4_ALT",
00086 #endif /* POLARSSL_ARC4_ALT */
00087 #if defined(POLARSSL_BLOWFISH_ALT)
00088     "POLARSSL_BLOWFISH_ALT",
00089 #endif /* POLARSSL_BLOWFISH_ALT */
00090 #if defined(POLARSSL_CAMELLIA_ALT)
00091     "POLARSSL_CAMELLIA_ALT",
00092 #endif /* POLARSSL_CAMELLIA_ALT */
00093 #if defined(POLARSSL_DES_ALT)
00094     "POLARSSL_DES_ALT",
00095 #endif /* POLARSSL_DES_ALT */
00096 #if defined(POLARSSL_XTEA_ALT)
00097     "POLARSSL_XTEA_ALT",
00098 #endif /* POLARSSL_XTEA_ALT */
00099 #if defined(POLARSSL_MD2_ALT)
00100     "POLARSSL_MD2_ALT",
00101 #endif /* POLARSSL_MD2_ALT */
00102 #if defined(POLARSSL_MD4_ALT)
00103     "POLARSSL_MD4_ALT",
00104 #endif /* POLARSSL_MD4_ALT */
00105 #if defined(POLARSSL_MD5_ALT)
00106     "POLARSSL_MD5_ALT",
00107 #endif /* POLARSSL_MD5_ALT */
00108 #if defined(POLARSSL_RIPEMD160_ALT)
00109     "POLARSSL_RIPEMD160_ALT",
00110 #endif /* POLARSSL_RIPEMD160_ALT */
00111 #if defined(POLARSSL_SHA1_ALT)
00112     "POLARSSL_SHA1_ALT",
00113 #endif /* POLARSSL_SHA1_ALT */
00114 #if defined(POLARSSL_SHA256_ALT)
00115     "POLARSSL_SHA256_ALT",
00116 #endif /* POLARSSL_SHA256_ALT */
00117 #if defined(POLARSSL_SHA512_ALT)
00118     "POLARSSL_SHA512_ALT",
00119 #endif /* POLARSSL_SHA512_ALT */
00120 #if defined(POLARSSL_AES_ROM_TABLES)
00121     "POLARSSL_AES_ROM_TABLES",
00122 #endif /* POLARSSL_AES_ROM_TABLES */
00123 #if defined(POLARSSL_CIPHER_MODE_CBC)
00124     "POLARSSL_CIPHER_MODE_CBC",
00125 #endif /* POLARSSL_CIPHER_MODE_CBC */
00126 #if defined(POLARSSL_CIPHER_MODE_CFB)
00127     "POLARSSL_CIPHER_MODE_CFB",
00128 #endif /* POLARSSL_CIPHER_MODE_CFB */
00129 #if defined(POLARSSL_CIPHER_MODE_CTR)
00130     "POLARSSL_CIPHER_MODE_CTR",
00131 #endif /* POLARSSL_CIPHER_MODE_CTR */
00132 #if defined(POLARSSL_CIPHER_NULL_CIPHER)
00133     "POLARSSL_CIPHER_NULL_CIPHER",
00134 #endif /* POLARSSL_CIPHER_NULL_CIPHER */
00135 #if defined(POLARSSL_CIPHER_PADDING_PKCS7)
00136     "POLARSSL_CIPHER_PADDING_PKCS7",
00137 #endif /* POLARSSL_CIPHER_PADDING_PKCS7 */
00138 #if defined(POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS)
00139     "POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS",
00140 #endif /* POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS */
00141 #if defined(POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN)
00142     "POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN",
00143 #endif /* POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN */
00144 #if defined(POLARSSL_CIPHER_PADDING_ZEROS)
00145     "POLARSSL_CIPHER_PADDING_ZEROS",
00146 #endif /* POLARSSL_CIPHER_PADDING_ZEROS */
00147 #if defined(POLARSSL_ENABLE_WEAK_CIPHERSUITES)
00148     "POLARSSL_ENABLE_WEAK_CIPHERSUITES",
00149 #endif /* POLARSSL_ENABLE_WEAK_CIPHERSUITES */
00150 #if defined(POLARSSL_ECP_DP_SECP192R1_ENABLED)
00151     "POLARSSL_ECP_DP_SECP192R1_ENABLED",
00152 #endif /* POLARSSL_ECP_DP_SECP192R1_ENABLED */
00153 #if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
00154     "POLARSSL_ECP_DP_SECP224R1_ENABLED",
00155 #endif /* POLARSSL_ECP_DP_SECP224R1_ENABLED */
00156 #if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
00157     "POLARSSL_ECP_DP_SECP256R1_ENABLED",
00158 #endif /* POLARSSL_ECP_DP_SECP256R1_ENABLED */
00159 #if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
00160     "POLARSSL_ECP_DP_SECP384R1_ENABLED",
00161 #endif /* POLARSSL_ECP_DP_SECP384R1_ENABLED */
00162 #if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
00163     "POLARSSL_ECP_DP_SECP521R1_ENABLED",
00164 #endif /* POLARSSL_ECP_DP_SECP521R1_ENABLED */
00165 #if defined(POLARSSL_ECP_DP_SECP192K1_ENABLED)
00166     "POLARSSL_ECP_DP_SECP192K1_ENABLED",
00167 #endif /* POLARSSL_ECP_DP_SECP192K1_ENABLED */
00168 #if defined(POLARSSL_ECP_DP_SECP224K1_ENABLED)
00169     "POLARSSL_ECP_DP_SECP224K1_ENABLED",
00170 #endif /* POLARSSL_ECP_DP_SECP224K1_ENABLED */
00171 #if defined(POLARSSL_ECP_DP_SECP256K1_ENABLED)
00172     "POLARSSL_ECP_DP_SECP256K1_ENABLED",
00173 #endif /* POLARSSL_ECP_DP_SECP256K1_ENABLED */
00174 #if defined(POLARSSL_ECP_DP_BP256R1_ENABLED)
00175     "POLARSSL_ECP_DP_BP256R1_ENABLED",
00176 #endif /* POLARSSL_ECP_DP_BP256R1_ENABLED */
00177 #if defined(POLARSSL_ECP_DP_BP384R1_ENABLED)
00178     "POLARSSL_ECP_DP_BP384R1_ENABLED",
00179 #endif /* POLARSSL_ECP_DP_BP384R1_ENABLED */
00180 #if defined(POLARSSL_ECP_DP_BP512R1_ENABLED)
00181     "POLARSSL_ECP_DP_BP512R1_ENABLED",
00182 #endif /* POLARSSL_ECP_DP_BP512R1_ENABLED */
00183 #if defined(POLARSSL_ECP_DP_M221_ENABLED)
00184     "POLARSSL_ECP_DP_M221_ENABLED",
00185 #endif /* POLARSSL_ECP_DP_M221_ENABLED */
00186 #if defined(POLARSSL_ECP_DP_M255_ENABLED)
00187     "POLARSSL_ECP_DP_M255_ENABLED",
00188 #endif /* POLARSSL_ECP_DP_M255_ENABLED */
00189 #if defined(POLARSSL_ECP_DP_M383_ENABLED)
00190     "POLARSSL_ECP_DP_M383_ENABLED",
00191 #endif /* POLARSSL_ECP_DP_M383_ENABLED */
00192 #if defined(POLARSSL_ECP_DP_M511_ENABLED)
00193     "POLARSSL_ECP_DP_M511_ENABLED",
00194 #endif /* POLARSSL_ECP_DP_M511_ENABLED */
00195 #if defined(POLARSSL_ECP_NIST_OPTIM)
00196     "POLARSSL_ECP_NIST_OPTIM",
00197 #endif /* POLARSSL_ECP_NIST_OPTIM */
00198 #if defined(POLARSSL_ECDSA_DETERMINISTIC)
00199     "POLARSSL_ECDSA_DETERMINISTIC",
00200 #endif /* POLARSSL_ECDSA_DETERMINISTIC */
00201 #if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED)
00202     "POLARSSL_KEY_EXCHANGE_PSK_ENABLED",
00203 #endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */
00204 #if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED)
00205     "POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED",
00206 #endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */
00207 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
00208     "POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED",
00209 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
00210 #if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED)
00211     "POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED",
00212 #endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */
00213 #if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED)
00214     "POLARSSL_KEY_EXCHANGE_RSA_ENABLED",
00215 #endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
00216 #if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED)
00217     "POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED",
00218 #endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */
00219 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
00220     "POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED",
00221 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
00222 #if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
00223     "POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED",
00224 #endif /* POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
00225 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
00226     "POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED",
00227 #endif /* POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
00228 #if defined(POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED)
00229     "POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED",
00230 #endif /* POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED */
00231 #if defined(POLARSSL_PK_PARSE_EC_EXTENDED)
00232     "POLARSSL_PK_PARSE_EC_EXTENDED",
00233 #endif /* POLARSSL_PK_PARSE_EC_EXTENDED */
00234 #if defined(POLARSSL_ERROR_STRERROR_BC)
00235     "POLARSSL_ERROR_STRERROR_BC",
00236 #endif /* POLARSSL_ERROR_STRERROR_BC */
00237 #if defined(POLARSSL_ERROR_STRERROR_DUMMY)
00238     "POLARSSL_ERROR_STRERROR_DUMMY",
00239 #endif /* POLARSSL_ERROR_STRERROR_DUMMY */
00240 #if defined(POLARSSL_GENPRIME)
00241     "POLARSSL_GENPRIME",
00242 #endif /* POLARSSL_GENPRIME */
00243 #if defined(POLARSSL_FS_IO)
00244     "POLARSSL_FS_IO",
00245 #endif /* POLARSSL_FS_IO */
00246 #if defined(POLARSSL_NO_DEFAULT_ENTROPY_SOURCES)
00247     "POLARSSL_NO_DEFAULT_ENTROPY_SOURCES",
00248 #endif /* POLARSSL_NO_DEFAULT_ENTROPY_SOURCES */
00249 #if defined(POLARSSL_NO_PLATFORM_ENTROPY)
00250     "POLARSSL_NO_PLATFORM_ENTROPY",
00251 #endif /* POLARSSL_NO_PLATFORM_ENTROPY */
00252 #if defined(POLARSSL_ENTROPY_FORCE_SHA256)
00253     "POLARSSL_ENTROPY_FORCE_SHA256",
00254 #endif /* POLARSSL_ENTROPY_FORCE_SHA256 */
00255 #if defined(POLARSSL_MEMORY_DEBUG)
00256     "POLARSSL_MEMORY_DEBUG",
00257 #endif /* POLARSSL_MEMORY_DEBUG */
00258 #if defined(POLARSSL_MEMORY_BACKTRACE)
00259     "POLARSSL_MEMORY_BACKTRACE",
00260 #endif /* POLARSSL_MEMORY_BACKTRACE */
00261 #if defined(POLARSSL_PKCS1_V15)
00262     "POLARSSL_PKCS1_V15",
00263 #endif /* POLARSSL_PKCS1_V15 */
00264 #if defined(POLARSSL_PKCS1_V21)
00265     "POLARSSL_PKCS1_V21",
00266 #endif /* POLARSSL_PKCS1_V21 */
00267 #if defined(POLARSSL_RSA_NO_CRT)
00268     "POLARSSL_RSA_NO_CRT",
00269 #endif /* POLARSSL_RSA_NO_CRT */
00270 #if defined(POLARSSL_SELF_TEST)
00271     "POLARSSL_SELF_TEST",
00272 #endif /* POLARSSL_SELF_TEST */
00273 #if defined(POLARSSL_SSL_ALERT_MESSAGES)
00274     "POLARSSL_SSL_ALERT_MESSAGES",
00275 #endif /* POLARSSL_SSL_ALERT_MESSAGES */
00276 #if defined(POLARSSL_SSL_DEBUG_ALL)
00277     "POLARSSL_SSL_DEBUG_ALL",
00278 #endif /* POLARSSL_SSL_DEBUG_ALL */
00279 #if defined(POLARSSL_SSL_HW_RECORD_ACCEL)
00280     "POLARSSL_SSL_HW_RECORD_ACCEL",
00281 #endif /* POLARSSL_SSL_HW_RECORD_ACCEL */
00282 #if defined(POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
00283     "POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO",
00284 #endif /* POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */
00285 #if defined(POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE)
00286     "POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE",
00287 #endif /* POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE */
00288 #if defined(POLARSSL_SSL_MAX_FRAGMENT_LENGTH)
00289     "POLARSSL_SSL_MAX_FRAGMENT_LENGTH",
00290 #endif /* POLARSSL_SSL_MAX_FRAGMENT_LENGTH */
00291 #if defined(POLARSSL_SSL_PROTO_SSL3)
00292     "POLARSSL_SSL_PROTO_SSL3",
00293 #endif /* POLARSSL_SSL_PROTO_SSL3 */
00294 #if defined(POLARSSL_SSL_PROTO_TLS1)
00295     "POLARSSL_SSL_PROTO_TLS1",
00296 #endif /* POLARSSL_SSL_PROTO_TLS1 */
00297 #if defined(POLARSSL_SSL_PROTO_TLS1_1)
00298     "POLARSSL_SSL_PROTO_TLS1_1",
00299 #endif /* POLARSSL_SSL_PROTO_TLS1_1 */
00300 #if defined(POLARSSL_SSL_PROTO_TLS1_2)
00301     "POLARSSL_SSL_PROTO_TLS1_2",
00302 #endif /* POLARSSL_SSL_PROTO_TLS1_2 */
00303 #if defined(POLARSSL_SSL_ALPN)
00304     "POLARSSL_SSL_ALPN",
00305 #endif /* POLARSSL_SSL_ALPN */
00306 #if defined(POLARSSL_SSL_SESSION_TICKETS)
00307     "POLARSSL_SSL_SESSION_TICKETS",
00308 #endif /* POLARSSL_SSL_SESSION_TICKETS */
00309 #if defined(POLARSSL_SSL_SERVER_NAME_INDICATION)
00310     "POLARSSL_SSL_SERVER_NAME_INDICATION",
00311 #endif /* POLARSSL_SSL_SERVER_NAME_INDICATION */
00312 #if defined(POLARSSL_SSL_TRUNCATED_HMAC)
00313     "POLARSSL_SSL_TRUNCATED_HMAC",
00314 #endif /* POLARSSL_SSL_TRUNCATED_HMAC */
00315 #if defined(POLARSSL_SSL_SET_CURVES)
00316     "POLARSSL_SSL_SET_CURVES",
00317 #endif /* POLARSSL_SSL_SET_CURVES */
00318 #if defined(POLARSSL_THREADING_ALT)
00319     "POLARSSL_THREADING_ALT",
00320 #endif /* POLARSSL_THREADING_ALT */
00321 #if defined(POLARSSL_THREADING_PTHREAD)
00322     "POLARSSL_THREADING_PTHREAD",
00323 #endif /* POLARSSL_THREADING_PTHREAD */
00324 #if defined(POLARSSL_VERSION_FEATURES)
00325     "POLARSSL_VERSION_FEATURES",
00326 #endif /* POLARSSL_VERSION_FEATURES */
00327 #if defined(POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3)
00328     "POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3",
00329 #endif /* POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 */
00330 #if defined(POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION)
00331     "POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION",
00332 #endif /* POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION */
00333 #if defined(POLARSSL_X509_CHECK_KEY_USAGE)
00334     "POLARSSL_X509_CHECK_KEY_USAGE",
00335 #endif /* POLARSSL_X509_CHECK_KEY_USAGE */
00336 #if defined(POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE)
00337     "POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE",
00338 #endif /* POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE */
00339 #if defined(POLARSSL_ZLIB_SUPPORT)
00340     "POLARSSL_ZLIB_SUPPORT",
00341 #endif /* POLARSSL_ZLIB_SUPPORT */
00342 #if defined(POLARSSL_AESNI_C)
00343     "POLARSSL_AESNI_C",
00344 #endif /* POLARSSL_AESNI_C */
00345 #if defined(POLARSSL_AES_C)
00346     "POLARSSL_AES_C",
00347 #endif /* POLARSSL_AES_C */
00348 #if defined(POLARSSL_ARC4_C)
00349     "POLARSSL_ARC4_C",
00350 #endif /* POLARSSL_ARC4_C */
00351 #if defined(POLARSSL_ASN1_PARSE_C)
00352     "POLARSSL_ASN1_PARSE_C",
00353 #endif /* POLARSSL_ASN1_PARSE_C */
00354 #if defined(POLARSSL_ASN1_WRITE_C)
00355     "POLARSSL_ASN1_WRITE_C",
00356 #endif /* POLARSSL_ASN1_WRITE_C */
00357 #if defined(POLARSSL_BASE64_C)
00358     "POLARSSL_BASE64_C",
00359 #endif /* POLARSSL_BASE64_C */
00360 #if defined(POLARSSL_BIGNUM_C)
00361     "POLARSSL_BIGNUM_C",
00362 #endif /* POLARSSL_BIGNUM_C */
00363 #if defined(POLARSSL_BLOWFISH_C)
00364     "POLARSSL_BLOWFISH_C",
00365 #endif /* POLARSSL_BLOWFISH_C */
00366 #if defined(POLARSSL_CAMELLIA_C)
00367     "POLARSSL_CAMELLIA_C",
00368 #endif /* POLARSSL_CAMELLIA_C */
00369 #if defined(POLARSSL_CERTS_C)
00370     "POLARSSL_CERTS_C",
00371 #endif /* POLARSSL_CERTS_C */
00372 #if defined(POLARSSL_CIPHER_C)
00373     "POLARSSL_CIPHER_C",
00374 #endif /* POLARSSL_CIPHER_C */
00375 #if defined(POLARSSL_CTR_DRBG_C)
00376     "POLARSSL_CTR_DRBG_C",
00377 #endif /* POLARSSL_CTR_DRBG_C */
00378 #if defined(POLARSSL_DEBUG_C)
00379     "POLARSSL_DEBUG_C",
00380 #endif /* POLARSSL_DEBUG_C */
00381 #if defined(POLARSSL_DES_C)
00382     "POLARSSL_DES_C",
00383 #endif /* POLARSSL_DES_C */
00384 #if defined(POLARSSL_DHM_C)
00385     "POLARSSL_DHM_C",
00386 #endif /* POLARSSL_DHM_C */
00387 #if defined(POLARSSL_ECDH_C)
00388     "POLARSSL_ECDH_C",
00389 #endif /* POLARSSL_ECDH_C */
00390 #if defined(POLARSSL_ECDSA_C)
00391     "POLARSSL_ECDSA_C",
00392 #endif /* POLARSSL_ECDSA_C */
00393 #if defined(POLARSSL_ECP_C)
00394     "POLARSSL_ECP_C",
00395 #endif /* POLARSSL_ECP_C */
00396 #if defined(POLARSSL_ENTROPY_C)
00397     "POLARSSL_ENTROPY_C",
00398 #endif /* POLARSSL_ENTROPY_C */
00399 #if defined(POLARSSL_ERROR_C)
00400     "POLARSSL_ERROR_C",
00401 #endif /* POLARSSL_ERROR_C */
00402 #if defined(POLARSSL_GCM_C)
00403     "POLARSSL_GCM_C",
00404 #endif /* POLARSSL_GCM_C */
00405 #if defined(POLARSSL_HAVEGE_C)
00406     "POLARSSL_HAVEGE_C",
00407 #endif /* POLARSSL_HAVEGE_C */
00408 #if defined(POLARSSL_HMAC_DRBG_C)
00409     "POLARSSL_HMAC_DRBG_C",
00410 #endif /* POLARSSL_HMAC_DRBG_C */
00411 #if defined(POLARSSL_MD_C)
00412     "POLARSSL_MD_C",
00413 #endif /* POLARSSL_MD_C */
00414 #if defined(POLARSSL_MD2_C)
00415     "POLARSSL_MD2_C",
00416 #endif /* POLARSSL_MD2_C */
00417 #if defined(POLARSSL_MD4_C)
00418     "POLARSSL_MD4_C",
00419 #endif /* POLARSSL_MD4_C */
00420 #if defined(POLARSSL_MD5_C)
00421     "POLARSSL_MD5_C",
00422 #endif /* POLARSSL_MD5_C */
00423 #if defined(POLARSSL_MEMORY_C)
00424     "POLARSSL_MEMORY_C",
00425 #endif /* POLARSSL_MEMORY_C */
00426 #if defined(POLARSSL_MEMORY_BUFFER_ALLOC_C)
00427     "POLARSSL_MEMORY_BUFFER_ALLOC_C",
00428 #endif /* POLARSSL_MEMORY_BUFFER_ALLOC_C */
00429 #if defined(POLARSSL_NET_C)
00430     "POLARSSL_NET_C",
00431 #endif /* POLARSSL_NET_C */
00432 #if defined(POLARSSL_OID_C)
00433     "POLARSSL_OID_C",
00434 #endif /* POLARSSL_OID_C */
00435 #if defined(POLARSSL_PADLOCK_C)
00436     "POLARSSL_PADLOCK_C",
00437 #endif /* POLARSSL_PADLOCK_C */
00438 #if defined(POLARSSL_PBKDF2_C)
00439     "POLARSSL_PBKDF2_C",
00440 #endif /* POLARSSL_PBKDF2_C */
00441 #if defined(POLARSSL_PEM_PARSE_C)
00442     "POLARSSL_PEM_PARSE_C",
00443 #endif /* POLARSSL_PEM_PARSE_C */
00444 #if defined(POLARSSL_PEM_WRITE_C)
00445     "POLARSSL_PEM_WRITE_C",
00446 #endif /* POLARSSL_PEM_WRITE_C */
00447 #if defined(POLARSSL_PK_C)
00448     "POLARSSL_PK_C",
00449 #endif /* POLARSSL_PK_C */
00450 #if defined(POLARSSL_PK_PARSE_C)
00451     "POLARSSL_PK_PARSE_C",
00452 #endif /* POLARSSL_PK_PARSE_C */
00453 #if defined(POLARSSL_PK_WRITE_C)
00454     "POLARSSL_PK_WRITE_C",
00455 #endif /* POLARSSL_PK_WRITE_C */
00456 #if defined(POLARSSL_PKCS5_C)
00457     "POLARSSL_PKCS5_C",
00458 #endif /* POLARSSL_PKCS5_C */
00459 #if defined(POLARSSL_PKCS11_C)
00460     "POLARSSL_PKCS11_C",
00461 #endif /* POLARSSL_PKCS11_C */
00462 #if defined(POLARSSL_PKCS12_C)
00463     "POLARSSL_PKCS12_C",
00464 #endif /* POLARSSL_PKCS12_C */
00465 #if defined(POLARSSL_PLATFORM_C)
00466     "POLARSSL_PLATFORM_C",
00467 #endif /* POLARSSL_PLATFORM_C */
00468 #if defined(POLARSSL_RIPEMD160_C)
00469     "POLARSSL_RIPEMD160_C",
00470 #endif /* POLARSSL_RIPEMD160_C */
00471 #if defined(POLARSSL_RSA_C)
00472     "POLARSSL_RSA_C",
00473 #endif /* POLARSSL_RSA_C */
00474 #if defined(POLARSSL_SHA1_C)
00475     "POLARSSL_SHA1_C",
00476 #endif /* POLARSSL_SHA1_C */
00477 #if defined(POLARSSL_SHA256_C)
00478     "POLARSSL_SHA256_C",
00479 #endif /* POLARSSL_SHA256_C */
00480 #if defined(POLARSSL_SHA512_C)
00481     "POLARSSL_SHA512_C",
00482 #endif /* POLARSSL_SHA512_C */
00483 #if defined(POLARSSL_SSL_CACHE_C)
00484     "POLARSSL_SSL_CACHE_C",
00485 #endif /* POLARSSL_SSL_CACHE_C */
00486 #if defined(POLARSSL_SSL_CLI_C)
00487     "POLARSSL_SSL_CLI_C",
00488 #endif /* POLARSSL_SSL_CLI_C */
00489 #if defined(POLARSSL_SSL_SRV_C)
00490     "POLARSSL_SSL_SRV_C",
00491 #endif /* POLARSSL_SSL_SRV_C */
00492 #if defined(POLARSSL_SSL_TLS_C)
00493     "POLARSSL_SSL_TLS_C",
00494 #endif /* POLARSSL_SSL_TLS_C */
00495 #if defined(POLARSSL_THREADING_C)
00496     "POLARSSL_THREADING_C",
00497 #endif /* POLARSSL_THREADING_C */
00498 #if defined(POLARSSL_TIMING_C)
00499     "POLARSSL_TIMING_C",
00500 #endif /* POLARSSL_TIMING_C */
00501 #if defined(POLARSSL_VERSION_C)
00502     "POLARSSL_VERSION_C",
00503 #endif /* POLARSSL_VERSION_C */
00504 #if defined(POLARSSL_X509_USE_C)
00505     "POLARSSL_X509_USE_C",
00506 #endif /* POLARSSL_X509_USE_C */
00507 #if defined(POLARSSL_X509_CRT_PARSE_C)
00508     "POLARSSL_X509_CRT_PARSE_C",
00509 #endif /* POLARSSL_X509_CRT_PARSE_C */
00510 #if defined(POLARSSL_X509_CRL_PARSE_C)
00511     "POLARSSL_X509_CRL_PARSE_C",
00512 #endif /* POLARSSL_X509_CRL_PARSE_C */
00513 #if defined(POLARSSL_X509_CSR_PARSE_C)
00514     "POLARSSL_X509_CSR_PARSE_C",
00515 #endif /* POLARSSL_X509_CSR_PARSE_C */
00516 #if defined(POLARSSL_X509_CREATE_C)
00517     "POLARSSL_X509_CREATE_C",
00518 #endif /* POLARSSL_X509_CREATE_C */
00519 #if defined(POLARSSL_X509_CRT_WRITE_C)
00520     "POLARSSL_X509_CRT_WRITE_C",
00521 #endif /* POLARSSL_X509_CRT_WRITE_C */
00522 #if defined(POLARSSL_X509_CSR_WRITE_C)
00523     "POLARSSL_X509_CSR_WRITE_C",
00524 #endif /* POLARSSL_X509_CSR_WRITE_C */
00525 #if defined(POLARSSL_XTEA_C)
00526     "POLARSSL_XTEA_C",
00527 #endif /* POLARSSL_XTEA_C */
00528 #endif /* POLARSSL_VERSION_FEATURES */
00529     NULL
00530 };
00531 
00532 int version_check_feature( const char *feature )
00533 {
00534     const char **idx = features;
00535 
00536     if( *idx == NULL )
00537         return( -2 );
00538 
00539     if( feature == NULL )
00540         return( -1 );
00541 
00542     while( *idx != NULL )
00543     {
00544         if( !strcasecmp( *idx, feature ) )
00545             return( 0 );
00546         idx++;
00547     }
00548     return( -1 );
00549 }
00550 
00551 #endif /* POLARSSL_VERSION_C */
00552 
00553