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