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