blob: af90b66f015fb9914a78059e809c799d90ca625f [file] [log] [blame]
Paul Bakker0f90d7d2014-04-30 11:49:44 +02001/*
2 * Version feature information
3 *
Manuel Pégourié-Gonnarda658a402015-01-23 09:45:19 +00004 * Copyright (C) 2006-2014, ARM Limited, All Rights Reserved
Paul Bakker0f90d7d2014-04-30 11:49:44 +02005 *
Manuel Pégourié-Gonnard967a2a52015-01-22 14:28:16 +00006 * This file is part of mbed TLS (http://www.polarssl.org)
Paul Bakker0f90d7d2014-04-30 11:49:44 +02007 * Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>
8 *
Paul Bakker0f90d7d2014-04-30 11:49:44 +02009 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22 */
23
Manuel Pégourié-Gonnardcef4ad22014-04-29 12:39:06 +020024#if !defined(POLARSSL_CONFIG_FILE)
Paul Bakker0f90d7d2014-04-30 11:49:44 +020025#include "polarssl/config.h"
Manuel Pégourié-Gonnardcef4ad22014-04-29 12:39:06 +020026#else
27#include POLARSSL_CONFIG_FILE
28#endif
Paul Bakker0f90d7d2014-04-30 11:49:44 +020029
30#if defined(POLARSSL_VERSION_C)
31
32#include "polarssl/version.h"
33
34#include <string.h>
35
Paul Bakker2ca1dc82014-04-30 17:01:25 +020036#if defined(_MSC_VER) && !defined strcasecmp && !defined(EFIX64) && \
Paul Bakker0f90d7d2014-04-30 11:49:44 +020037 !defined(EFI32)
Paul Bakker2ca1dc82014-04-30 17:01:25 +020038#define strcasecmp _stricmp
Paul Bakker0f90d7d2014-04-30 11:49:44 +020039#endif
40
41const char *features[] = {
Paul Bakker2ca1dc82014-04-30 17:01:25 +020042#if defined(POLARSSL_VERSION_FEATURES)
Paul Bakker0f90d7d2014-04-30 11:49:44 +020043#if defined(POLARSSL_HAVE_INT8)
44 "POLARSSL_HAVE_INT8",
45#endif /* POLARSSL_HAVE_INT8 */
46#if defined(POLARSSL_HAVE_INT16)
47 "POLARSSL_HAVE_INT16",
48#endif /* POLARSSL_HAVE_INT16 */
49#if defined(POLARSSL_HAVE_LONGLONG)
50 "POLARSSL_HAVE_LONGLONG",
51#endif /* POLARSSL_HAVE_LONGLONG */
52#if defined(POLARSSL_HAVE_ASM)
53 "POLARSSL_HAVE_ASM",
54#endif /* POLARSSL_HAVE_ASM */
55#if defined(POLARSSL_HAVE_SSE2)
56 "POLARSSL_HAVE_SSE2",
57#endif /* POLARSSL_HAVE_SSE2 */
58#if defined(POLARSSL_HAVE_TIME)
59 "POLARSSL_HAVE_TIME",
60#endif /* POLARSSL_HAVE_TIME */
61#if defined(POLARSSL_HAVE_IPV6)
62 "POLARSSL_HAVE_IPV6",
63#endif /* POLARSSL_HAVE_IPV6 */
64#if defined(POLARSSL_PLATFORM_MEMORY)
65 "POLARSSL_PLATFORM_MEMORY",
66#endif /* POLARSSL_PLATFORM_MEMORY */
67#if defined(POLARSSL_PLATFORM_NO_STD_FUNCTIONS)
68 "POLARSSL_PLATFORM_NO_STD_FUNCTIONS",
69#endif /* POLARSSL_PLATFORM_NO_STD_FUNCTIONS */
70#if defined(POLARSSL_PLATFORM_PRINTF_ALT)
71 "POLARSSL_PLATFORM_PRINTF_ALT",
72#endif /* POLARSSL_PLATFORM_PRINTF_ALT */
73#if defined(POLARSSL_PLATFORM_FPRINTF_ALT)
74 "POLARSSL_PLATFORM_FPRINTF_ALT",
75#endif /* POLARSSL_PLATFORM_FPRINTF_ALT */
76#if defined(POLARSSL_TIMING_ALT)
77 "POLARSSL_TIMING_ALT",
78#endif /* POLARSSL_TIMING_ALT */
79#if defined(POLARSSL_AES_ALT)
80 "POLARSSL_AES_ALT",
81#endif /* POLARSSL_AES_ALT */
82#if defined(POLARSSL_ARC4_ALT)
83 "POLARSSL_ARC4_ALT",
84#endif /* POLARSSL_ARC4_ALT */
85#if defined(POLARSSL_BLOWFISH_ALT)
86 "POLARSSL_BLOWFISH_ALT",
87#endif /* POLARSSL_BLOWFISH_ALT */
88#if defined(POLARSSL_CAMELLIA_ALT)
89 "POLARSSL_CAMELLIA_ALT",
90#endif /* POLARSSL_CAMELLIA_ALT */
91#if defined(POLARSSL_DES_ALT)
92 "POLARSSL_DES_ALT",
93#endif /* POLARSSL_DES_ALT */
94#if defined(POLARSSL_XTEA_ALT)
95 "POLARSSL_XTEA_ALT",
96#endif /* POLARSSL_XTEA_ALT */
97#if defined(POLARSSL_MD2_ALT)
98 "POLARSSL_MD2_ALT",
99#endif /* POLARSSL_MD2_ALT */
100#if defined(POLARSSL_MD4_ALT)
101 "POLARSSL_MD4_ALT",
102#endif /* POLARSSL_MD4_ALT */
103#if defined(POLARSSL_MD5_ALT)
104 "POLARSSL_MD5_ALT",
105#endif /* POLARSSL_MD5_ALT */
106#if defined(POLARSSL_RIPEMD160_ALT)
107 "POLARSSL_RIPEMD160_ALT",
108#endif /* POLARSSL_RIPEMD160_ALT */
109#if defined(POLARSSL_SHA1_ALT)
110 "POLARSSL_SHA1_ALT",
111#endif /* POLARSSL_SHA1_ALT */
112#if defined(POLARSSL_SHA256_ALT)
113 "POLARSSL_SHA256_ALT",
114#endif /* POLARSSL_SHA256_ALT */
115#if defined(POLARSSL_SHA512_ALT)
116 "POLARSSL_SHA512_ALT",
117#endif /* POLARSSL_SHA512_ALT */
118#if defined(POLARSSL_AES_ROM_TABLES)
119 "POLARSSL_AES_ROM_TABLES",
120#endif /* POLARSSL_AES_ROM_TABLES */
121#if defined(POLARSSL_CIPHER_MODE_CBC)
122 "POLARSSL_CIPHER_MODE_CBC",
123#endif /* POLARSSL_CIPHER_MODE_CBC */
124#if defined(POLARSSL_CIPHER_MODE_CFB)
125 "POLARSSL_CIPHER_MODE_CFB",
126#endif /* POLARSSL_CIPHER_MODE_CFB */
127#if defined(POLARSSL_CIPHER_MODE_CTR)
128 "POLARSSL_CIPHER_MODE_CTR",
129#endif /* POLARSSL_CIPHER_MODE_CTR */
130#if defined(POLARSSL_CIPHER_NULL_CIPHER)
131 "POLARSSL_CIPHER_NULL_CIPHER",
132#endif /* POLARSSL_CIPHER_NULL_CIPHER */
133#if defined(POLARSSL_CIPHER_PADDING_PKCS7)
134 "POLARSSL_CIPHER_PADDING_PKCS7",
135#endif /* POLARSSL_CIPHER_PADDING_PKCS7 */
136#if defined(POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS)
137 "POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS",
138#endif /* POLARSSL_CIPHER_PADDING_ONE_AND_ZEROS */
139#if defined(POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN)
140 "POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN",
141#endif /* POLARSSL_CIPHER_PADDING_ZEROS_AND_LEN */
142#if defined(POLARSSL_CIPHER_PADDING_ZEROS)
143 "POLARSSL_CIPHER_PADDING_ZEROS",
144#endif /* POLARSSL_CIPHER_PADDING_ZEROS */
145#if defined(POLARSSL_ENABLE_WEAK_CIPHERSUITES)
146 "POLARSSL_ENABLE_WEAK_CIPHERSUITES",
147#endif /* POLARSSL_ENABLE_WEAK_CIPHERSUITES */
Paul Bakkerec3a6172014-07-09 10:21:28 +0200148#if defined(POLARSSL_REMOVE_ARC4_CIPHERSUITES)
149 "POLARSSL_REMOVE_ARC4_CIPHERSUITES",
150#endif /* POLARSSL_REMOVE_ARC4_CIPHERSUITES */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200151#if defined(POLARSSL_ECP_DP_SECP192R1_ENABLED)
152 "POLARSSL_ECP_DP_SECP192R1_ENABLED",
153#endif /* POLARSSL_ECP_DP_SECP192R1_ENABLED */
154#if defined(POLARSSL_ECP_DP_SECP224R1_ENABLED)
155 "POLARSSL_ECP_DP_SECP224R1_ENABLED",
156#endif /* POLARSSL_ECP_DP_SECP224R1_ENABLED */
157#if defined(POLARSSL_ECP_DP_SECP256R1_ENABLED)
158 "POLARSSL_ECP_DP_SECP256R1_ENABLED",
159#endif /* POLARSSL_ECP_DP_SECP256R1_ENABLED */
160#if defined(POLARSSL_ECP_DP_SECP384R1_ENABLED)
161 "POLARSSL_ECP_DP_SECP384R1_ENABLED",
162#endif /* POLARSSL_ECP_DP_SECP384R1_ENABLED */
163#if defined(POLARSSL_ECP_DP_SECP521R1_ENABLED)
164 "POLARSSL_ECP_DP_SECP521R1_ENABLED",
165#endif /* POLARSSL_ECP_DP_SECP521R1_ENABLED */
166#if defined(POLARSSL_ECP_DP_SECP192K1_ENABLED)
167 "POLARSSL_ECP_DP_SECP192K1_ENABLED",
168#endif /* POLARSSL_ECP_DP_SECP192K1_ENABLED */
169#if defined(POLARSSL_ECP_DP_SECP224K1_ENABLED)
170 "POLARSSL_ECP_DP_SECP224K1_ENABLED",
171#endif /* POLARSSL_ECP_DP_SECP224K1_ENABLED */
172#if defined(POLARSSL_ECP_DP_SECP256K1_ENABLED)
173 "POLARSSL_ECP_DP_SECP256K1_ENABLED",
174#endif /* POLARSSL_ECP_DP_SECP256K1_ENABLED */
175#if defined(POLARSSL_ECP_DP_BP256R1_ENABLED)
176 "POLARSSL_ECP_DP_BP256R1_ENABLED",
177#endif /* POLARSSL_ECP_DP_BP256R1_ENABLED */
178#if defined(POLARSSL_ECP_DP_BP384R1_ENABLED)
179 "POLARSSL_ECP_DP_BP384R1_ENABLED",
180#endif /* POLARSSL_ECP_DP_BP384R1_ENABLED */
181#if defined(POLARSSL_ECP_DP_BP512R1_ENABLED)
182 "POLARSSL_ECP_DP_BP512R1_ENABLED",
183#endif /* POLARSSL_ECP_DP_BP512R1_ENABLED */
184#if defined(POLARSSL_ECP_DP_M221_ENABLED)
185 "POLARSSL_ECP_DP_M221_ENABLED",
186#endif /* POLARSSL_ECP_DP_M221_ENABLED */
187#if defined(POLARSSL_ECP_DP_M255_ENABLED)
188 "POLARSSL_ECP_DP_M255_ENABLED",
189#endif /* POLARSSL_ECP_DP_M255_ENABLED */
190#if defined(POLARSSL_ECP_DP_M383_ENABLED)
191 "POLARSSL_ECP_DP_M383_ENABLED",
192#endif /* POLARSSL_ECP_DP_M383_ENABLED */
193#if defined(POLARSSL_ECP_DP_M511_ENABLED)
194 "POLARSSL_ECP_DP_M511_ENABLED",
195#endif /* POLARSSL_ECP_DP_M511_ENABLED */
196#if defined(POLARSSL_ECP_NIST_OPTIM)
197 "POLARSSL_ECP_NIST_OPTIM",
198#endif /* POLARSSL_ECP_NIST_OPTIM */
199#if defined(POLARSSL_ECDSA_DETERMINISTIC)
200 "POLARSSL_ECDSA_DETERMINISTIC",
201#endif /* POLARSSL_ECDSA_DETERMINISTIC */
202#if defined(POLARSSL_KEY_EXCHANGE_PSK_ENABLED)
203 "POLARSSL_KEY_EXCHANGE_PSK_ENABLED",
204#endif /* POLARSSL_KEY_EXCHANGE_PSK_ENABLED */
205#if defined(POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED)
206 "POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED",
207#endif /* POLARSSL_KEY_EXCHANGE_DHE_PSK_ENABLED */
208#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED)
209 "POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED",
210#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_PSK_ENABLED */
211#if defined(POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED)
212 "POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED",
213#endif /* POLARSSL_KEY_EXCHANGE_RSA_PSK_ENABLED */
214#if defined(POLARSSL_KEY_EXCHANGE_RSA_ENABLED)
215 "POLARSSL_KEY_EXCHANGE_RSA_ENABLED",
216#endif /* POLARSSL_KEY_EXCHANGE_RSA_ENABLED */
217#if defined(POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED)
218 "POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED",
219#endif /* POLARSSL_KEY_EXCHANGE_DHE_RSA_ENABLED */
220#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED)
221 "POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED",
222#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_RSA_ENABLED */
223#if defined(POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED)
224 "POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED",
225#endif /* POLARSSL_KEY_EXCHANGE_ECDHE_ECDSA_ENABLED */
226#if defined(POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED)
227 "POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED",
228#endif /* POLARSSL_KEY_EXCHANGE_ECDH_ECDSA_ENABLED */
229#if defined(POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED)
230 "POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED",
231#endif /* POLARSSL_KEY_EXCHANGE_ECDH_RSA_ENABLED */
232#if defined(POLARSSL_PK_PARSE_EC_EXTENDED)
233 "POLARSSL_PK_PARSE_EC_EXTENDED",
234#endif /* POLARSSL_PK_PARSE_EC_EXTENDED */
235#if defined(POLARSSL_ERROR_STRERROR_BC)
236 "POLARSSL_ERROR_STRERROR_BC",
237#endif /* POLARSSL_ERROR_STRERROR_BC */
238#if defined(POLARSSL_ERROR_STRERROR_DUMMY)
239 "POLARSSL_ERROR_STRERROR_DUMMY",
240#endif /* POLARSSL_ERROR_STRERROR_DUMMY */
241#if defined(POLARSSL_GENPRIME)
242 "POLARSSL_GENPRIME",
243#endif /* POLARSSL_GENPRIME */
244#if defined(POLARSSL_FS_IO)
245 "POLARSSL_FS_IO",
246#endif /* POLARSSL_FS_IO */
247#if defined(POLARSSL_NO_DEFAULT_ENTROPY_SOURCES)
248 "POLARSSL_NO_DEFAULT_ENTROPY_SOURCES",
249#endif /* POLARSSL_NO_DEFAULT_ENTROPY_SOURCES */
250#if defined(POLARSSL_NO_PLATFORM_ENTROPY)
251 "POLARSSL_NO_PLATFORM_ENTROPY",
252#endif /* POLARSSL_NO_PLATFORM_ENTROPY */
253#if defined(POLARSSL_ENTROPY_FORCE_SHA256)
254 "POLARSSL_ENTROPY_FORCE_SHA256",
255#endif /* POLARSSL_ENTROPY_FORCE_SHA256 */
256#if defined(POLARSSL_MEMORY_DEBUG)
257 "POLARSSL_MEMORY_DEBUG",
258#endif /* POLARSSL_MEMORY_DEBUG */
259#if defined(POLARSSL_MEMORY_BACKTRACE)
260 "POLARSSL_MEMORY_BACKTRACE",
261#endif /* POLARSSL_MEMORY_BACKTRACE */
262#if defined(POLARSSL_PKCS1_V15)
263 "POLARSSL_PKCS1_V15",
264#endif /* POLARSSL_PKCS1_V15 */
265#if defined(POLARSSL_PKCS1_V21)
266 "POLARSSL_PKCS1_V21",
267#endif /* POLARSSL_PKCS1_V21 */
268#if defined(POLARSSL_RSA_NO_CRT)
269 "POLARSSL_RSA_NO_CRT",
270#endif /* POLARSSL_RSA_NO_CRT */
271#if defined(POLARSSL_SELF_TEST)
272 "POLARSSL_SELF_TEST",
273#endif /* POLARSSL_SELF_TEST */
Manuel Pégourié-Gonnarda34aa702015-01-23 10:27:36 +0000274#if defined(POLARSSL_SSL_AEAD_RANDOM_IV)
275 "POLARSSL_SSL_AEAD_RANDOM_IV",
276#endif /* POLARSSL_SSL_AEAD_RANDOM_IV */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200277#if defined(POLARSSL_SSL_ALERT_MESSAGES)
278 "POLARSSL_SSL_ALERT_MESSAGES",
279#endif /* POLARSSL_SSL_ALERT_MESSAGES */
280#if defined(POLARSSL_SSL_DEBUG_ALL)
281 "POLARSSL_SSL_DEBUG_ALL",
282#endif /* POLARSSL_SSL_DEBUG_ALL */
Manuel Pégourié-Gonnarda34aa702015-01-23 10:27:36 +0000283#if defined(POLARSSL_SSL_ENCRYPT_THEN_MAC)
284 "POLARSSL_SSL_ENCRYPT_THEN_MAC",
285#endif /* POLARSSL_SSL_ENCRYPT_THEN_MAC */
286#if defined(POLARSSL_SSL_EXTENDED_MASTER_SECRET)
287 "POLARSSL_SSL_EXTENDED_MASTER_SECRET",
288#endif /* POLARSSL_SSL_EXTENDED_MASTER_SECRET */
289#if defined(POLARSSL_SSL_FALLBACK_SCSV)
290 "POLARSSL_SSL_FALLBACK_SCSV",
291#endif /* POLARSSL_SSL_FALLBACK_SCSV */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200292#if defined(POLARSSL_SSL_HW_RECORD_ACCEL)
293 "POLARSSL_SSL_HW_RECORD_ACCEL",
294#endif /* POLARSSL_SSL_HW_RECORD_ACCEL */
Manuel Pégourié-Gonnarda34aa702015-01-23 10:27:36 +0000295#if defined(POLARSSL_SSL_CBC_RECORD_SPLITTING)
296 "POLARSSL_SSL_CBC_RECORD_SPLITTING",
297#endif /* POLARSSL_SSL_CBC_RECORD_SPLITTING */
298#if defined(POLARSSL_SSL_DISABLE_RENEGOTIATION)
299 "POLARSSL_SSL_DISABLE_RENEGOTIATION",
300#endif /* POLARSSL_SSL_DISABLE_RENEGOTIATION */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200301#if defined(POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO)
302 "POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO",
303#endif /* POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO */
304#if defined(POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE)
305 "POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE",
306#endif /* POLARSSL_SSL_SRV_RESPECT_CLIENT_PREFERENCE */
307#if defined(POLARSSL_SSL_MAX_FRAGMENT_LENGTH)
308 "POLARSSL_SSL_MAX_FRAGMENT_LENGTH",
309#endif /* POLARSSL_SSL_MAX_FRAGMENT_LENGTH */
310#if defined(POLARSSL_SSL_PROTO_SSL3)
311 "POLARSSL_SSL_PROTO_SSL3",
312#endif /* POLARSSL_SSL_PROTO_SSL3 */
313#if defined(POLARSSL_SSL_PROTO_TLS1)
314 "POLARSSL_SSL_PROTO_TLS1",
315#endif /* POLARSSL_SSL_PROTO_TLS1 */
316#if defined(POLARSSL_SSL_PROTO_TLS1_1)
317 "POLARSSL_SSL_PROTO_TLS1_1",
318#endif /* POLARSSL_SSL_PROTO_TLS1_1 */
319#if defined(POLARSSL_SSL_PROTO_TLS1_2)
320 "POLARSSL_SSL_PROTO_TLS1_2",
321#endif /* POLARSSL_SSL_PROTO_TLS1_2 */
322#if defined(POLARSSL_SSL_ALPN)
323 "POLARSSL_SSL_ALPN",
324#endif /* POLARSSL_SSL_ALPN */
325#if defined(POLARSSL_SSL_SESSION_TICKETS)
326 "POLARSSL_SSL_SESSION_TICKETS",
327#endif /* POLARSSL_SSL_SESSION_TICKETS */
328#if defined(POLARSSL_SSL_SERVER_NAME_INDICATION)
329 "POLARSSL_SSL_SERVER_NAME_INDICATION",
330#endif /* POLARSSL_SSL_SERVER_NAME_INDICATION */
331#if defined(POLARSSL_SSL_TRUNCATED_HMAC)
332 "POLARSSL_SSL_TRUNCATED_HMAC",
333#endif /* POLARSSL_SSL_TRUNCATED_HMAC */
334#if defined(POLARSSL_SSL_SET_CURVES)
335 "POLARSSL_SSL_SET_CURVES",
336#endif /* POLARSSL_SSL_SET_CURVES */
337#if defined(POLARSSL_THREADING_ALT)
338 "POLARSSL_THREADING_ALT",
339#endif /* POLARSSL_THREADING_ALT */
340#if defined(POLARSSL_THREADING_PTHREAD)
341 "POLARSSL_THREADING_PTHREAD",
342#endif /* POLARSSL_THREADING_PTHREAD */
343#if defined(POLARSSL_VERSION_FEATURES)
344 "POLARSSL_VERSION_FEATURES",
345#endif /* POLARSSL_VERSION_FEATURES */
346#if defined(POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3)
347 "POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3",
348#endif /* POLARSSL_X509_ALLOW_EXTENSIONS_NON_V3 */
349#if defined(POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION)
350 "POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION",
351#endif /* POLARSSL_X509_ALLOW_UNSUPPORTED_CRITICAL_EXTENSION */
352#if defined(POLARSSL_X509_CHECK_KEY_USAGE)
353 "POLARSSL_X509_CHECK_KEY_USAGE",
354#endif /* POLARSSL_X509_CHECK_KEY_USAGE */
355#if defined(POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE)
356 "POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE",
357#endif /* POLARSSL_X509_CHECK_EXTENDED_KEY_USAGE */
Paul Bakkerec3a6172014-07-09 10:21:28 +0200358#if defined(POLARSSL_X509_RSASSA_PSS_SUPPORT)
359 "POLARSSL_X509_RSASSA_PSS_SUPPORT",
360#endif /* POLARSSL_X509_RSASSA_PSS_SUPPORT */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200361#if defined(POLARSSL_ZLIB_SUPPORT)
362 "POLARSSL_ZLIB_SUPPORT",
363#endif /* POLARSSL_ZLIB_SUPPORT */
364#if defined(POLARSSL_AESNI_C)
365 "POLARSSL_AESNI_C",
366#endif /* POLARSSL_AESNI_C */
367#if defined(POLARSSL_AES_C)
368 "POLARSSL_AES_C",
369#endif /* POLARSSL_AES_C */
370#if defined(POLARSSL_ARC4_C)
371 "POLARSSL_ARC4_C",
372#endif /* POLARSSL_ARC4_C */
373#if defined(POLARSSL_ASN1_PARSE_C)
374 "POLARSSL_ASN1_PARSE_C",
375#endif /* POLARSSL_ASN1_PARSE_C */
376#if defined(POLARSSL_ASN1_WRITE_C)
377 "POLARSSL_ASN1_WRITE_C",
378#endif /* POLARSSL_ASN1_WRITE_C */
379#if defined(POLARSSL_BASE64_C)
380 "POLARSSL_BASE64_C",
381#endif /* POLARSSL_BASE64_C */
382#if defined(POLARSSL_BIGNUM_C)
383 "POLARSSL_BIGNUM_C",
384#endif /* POLARSSL_BIGNUM_C */
385#if defined(POLARSSL_BLOWFISH_C)
386 "POLARSSL_BLOWFISH_C",
387#endif /* POLARSSL_BLOWFISH_C */
388#if defined(POLARSSL_CAMELLIA_C)
389 "POLARSSL_CAMELLIA_C",
390#endif /* POLARSSL_CAMELLIA_C */
Manuel Pégourié-Gonnarda6916fa2014-05-02 15:17:29 +0200391#if defined(POLARSSL_CCM_C)
392 "POLARSSL_CCM_C",
393#endif /* POLARSSL_CCM_C */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200394#if defined(POLARSSL_CERTS_C)
395 "POLARSSL_CERTS_C",
396#endif /* POLARSSL_CERTS_C */
397#if defined(POLARSSL_CIPHER_C)
398 "POLARSSL_CIPHER_C",
399#endif /* POLARSSL_CIPHER_C */
400#if defined(POLARSSL_CTR_DRBG_C)
401 "POLARSSL_CTR_DRBG_C",
402#endif /* POLARSSL_CTR_DRBG_C */
403#if defined(POLARSSL_DEBUG_C)
404 "POLARSSL_DEBUG_C",
405#endif /* POLARSSL_DEBUG_C */
406#if defined(POLARSSL_DES_C)
407 "POLARSSL_DES_C",
408#endif /* POLARSSL_DES_C */
409#if defined(POLARSSL_DHM_C)
410 "POLARSSL_DHM_C",
411#endif /* POLARSSL_DHM_C */
412#if defined(POLARSSL_ECDH_C)
413 "POLARSSL_ECDH_C",
414#endif /* POLARSSL_ECDH_C */
415#if defined(POLARSSL_ECDSA_C)
416 "POLARSSL_ECDSA_C",
417#endif /* POLARSSL_ECDSA_C */
418#if defined(POLARSSL_ECP_C)
419 "POLARSSL_ECP_C",
420#endif /* POLARSSL_ECP_C */
421#if defined(POLARSSL_ENTROPY_C)
422 "POLARSSL_ENTROPY_C",
423#endif /* POLARSSL_ENTROPY_C */
424#if defined(POLARSSL_ERROR_C)
425 "POLARSSL_ERROR_C",
426#endif /* POLARSSL_ERROR_C */
427#if defined(POLARSSL_GCM_C)
428 "POLARSSL_GCM_C",
429#endif /* POLARSSL_GCM_C */
430#if defined(POLARSSL_HAVEGE_C)
431 "POLARSSL_HAVEGE_C",
432#endif /* POLARSSL_HAVEGE_C */
433#if defined(POLARSSL_HMAC_DRBG_C)
434 "POLARSSL_HMAC_DRBG_C",
435#endif /* POLARSSL_HMAC_DRBG_C */
436#if defined(POLARSSL_MD_C)
437 "POLARSSL_MD_C",
438#endif /* POLARSSL_MD_C */
439#if defined(POLARSSL_MD2_C)
440 "POLARSSL_MD2_C",
441#endif /* POLARSSL_MD2_C */
442#if defined(POLARSSL_MD4_C)
443 "POLARSSL_MD4_C",
444#endif /* POLARSSL_MD4_C */
445#if defined(POLARSSL_MD5_C)
446 "POLARSSL_MD5_C",
447#endif /* POLARSSL_MD5_C */
448#if defined(POLARSSL_MEMORY_C)
449 "POLARSSL_MEMORY_C",
450#endif /* POLARSSL_MEMORY_C */
451#if defined(POLARSSL_MEMORY_BUFFER_ALLOC_C)
452 "POLARSSL_MEMORY_BUFFER_ALLOC_C",
453#endif /* POLARSSL_MEMORY_BUFFER_ALLOC_C */
454#if defined(POLARSSL_NET_C)
455 "POLARSSL_NET_C",
456#endif /* POLARSSL_NET_C */
457#if defined(POLARSSL_OID_C)
458 "POLARSSL_OID_C",
459#endif /* POLARSSL_OID_C */
460#if defined(POLARSSL_PADLOCK_C)
461 "POLARSSL_PADLOCK_C",
462#endif /* POLARSSL_PADLOCK_C */
463#if defined(POLARSSL_PBKDF2_C)
464 "POLARSSL_PBKDF2_C",
465#endif /* POLARSSL_PBKDF2_C */
466#if defined(POLARSSL_PEM_PARSE_C)
467 "POLARSSL_PEM_PARSE_C",
468#endif /* POLARSSL_PEM_PARSE_C */
469#if defined(POLARSSL_PEM_WRITE_C)
470 "POLARSSL_PEM_WRITE_C",
471#endif /* POLARSSL_PEM_WRITE_C */
472#if defined(POLARSSL_PK_C)
473 "POLARSSL_PK_C",
474#endif /* POLARSSL_PK_C */
475#if defined(POLARSSL_PK_PARSE_C)
476 "POLARSSL_PK_PARSE_C",
477#endif /* POLARSSL_PK_PARSE_C */
478#if defined(POLARSSL_PK_WRITE_C)
479 "POLARSSL_PK_WRITE_C",
480#endif /* POLARSSL_PK_WRITE_C */
481#if defined(POLARSSL_PKCS5_C)
482 "POLARSSL_PKCS5_C",
483#endif /* POLARSSL_PKCS5_C */
484#if defined(POLARSSL_PKCS11_C)
485 "POLARSSL_PKCS11_C",
486#endif /* POLARSSL_PKCS11_C */
487#if defined(POLARSSL_PKCS12_C)
488 "POLARSSL_PKCS12_C",
489#endif /* POLARSSL_PKCS12_C */
490#if defined(POLARSSL_PLATFORM_C)
491 "POLARSSL_PLATFORM_C",
492#endif /* POLARSSL_PLATFORM_C */
493#if defined(POLARSSL_RIPEMD160_C)
494 "POLARSSL_RIPEMD160_C",
495#endif /* POLARSSL_RIPEMD160_C */
496#if defined(POLARSSL_RSA_C)
497 "POLARSSL_RSA_C",
498#endif /* POLARSSL_RSA_C */
499#if defined(POLARSSL_SHA1_C)
500 "POLARSSL_SHA1_C",
501#endif /* POLARSSL_SHA1_C */
502#if defined(POLARSSL_SHA256_C)
503 "POLARSSL_SHA256_C",
504#endif /* POLARSSL_SHA256_C */
505#if defined(POLARSSL_SHA512_C)
506 "POLARSSL_SHA512_C",
507#endif /* POLARSSL_SHA512_C */
508#if defined(POLARSSL_SSL_CACHE_C)
509 "POLARSSL_SSL_CACHE_C",
510#endif /* POLARSSL_SSL_CACHE_C */
511#if defined(POLARSSL_SSL_CLI_C)
512 "POLARSSL_SSL_CLI_C",
513#endif /* POLARSSL_SSL_CLI_C */
514#if defined(POLARSSL_SSL_SRV_C)
515 "POLARSSL_SSL_SRV_C",
516#endif /* POLARSSL_SSL_SRV_C */
517#if defined(POLARSSL_SSL_TLS_C)
518 "POLARSSL_SSL_TLS_C",
519#endif /* POLARSSL_SSL_TLS_C */
520#if defined(POLARSSL_THREADING_C)
521 "POLARSSL_THREADING_C",
522#endif /* POLARSSL_THREADING_C */
523#if defined(POLARSSL_TIMING_C)
524 "POLARSSL_TIMING_C",
525#endif /* POLARSSL_TIMING_C */
526#if defined(POLARSSL_VERSION_C)
527 "POLARSSL_VERSION_C",
528#endif /* POLARSSL_VERSION_C */
529#if defined(POLARSSL_X509_USE_C)
530 "POLARSSL_X509_USE_C",
531#endif /* POLARSSL_X509_USE_C */
532#if defined(POLARSSL_X509_CRT_PARSE_C)
533 "POLARSSL_X509_CRT_PARSE_C",
534#endif /* POLARSSL_X509_CRT_PARSE_C */
535#if defined(POLARSSL_X509_CRL_PARSE_C)
536 "POLARSSL_X509_CRL_PARSE_C",
537#endif /* POLARSSL_X509_CRL_PARSE_C */
538#if defined(POLARSSL_X509_CSR_PARSE_C)
539 "POLARSSL_X509_CSR_PARSE_C",
540#endif /* POLARSSL_X509_CSR_PARSE_C */
541#if defined(POLARSSL_X509_CREATE_C)
542 "POLARSSL_X509_CREATE_C",
543#endif /* POLARSSL_X509_CREATE_C */
544#if defined(POLARSSL_X509_CRT_WRITE_C)
545 "POLARSSL_X509_CRT_WRITE_C",
546#endif /* POLARSSL_X509_CRT_WRITE_C */
547#if defined(POLARSSL_X509_CSR_WRITE_C)
548 "POLARSSL_X509_CSR_WRITE_C",
549#endif /* POLARSSL_X509_CSR_WRITE_C */
550#if defined(POLARSSL_XTEA_C)
551 "POLARSSL_XTEA_C",
552#endif /* POLARSSL_XTEA_C */
Paul Bakker9af723c2014-05-01 13:03:14 +0200553#endif /* POLARSSL_VERSION_FEATURES */
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200554 NULL
555};
556
557int version_check_feature( const char *feature )
558{
559 const char **idx = features;
560
Paul Bakker2ca1dc82014-04-30 17:01:25 +0200561 if( *idx == NULL )
562 return( -2 );
563
Paul Bakker0f90d7d2014-04-30 11:49:44 +0200564 if( feature == NULL )
565 return( -1 );
566
567 while( *idx != NULL )
568 {
569 if( !strcasecmp( *idx, feature ) )
570 return( 0 );
571 idx++;
572 }
573 return( -1 );
574}
575
576#endif /* POLARSSL_VERSION_C */