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