PolarSSL v1.2.8
config.h File Reference

Configuration options (set of defines) More...

Go to the source code of this file.

Macros

SECTION: System support

This section sets system specific settings.

#define POLARSSL_HAVE_LONGLONG
 The compiler supports the 'long long' type. More...
 
#define POLARSSL_HAVE_ASM
 The compiler has support for asm() More...
 
SECTION: PolarSSL feature support

This section sets support for features that are or are not needed within the modules that are enabled.

#define POLARSSL_CIPHER_MODE_CFB
 Enable Cipher Feedback mode (CFB) for symmetric ciphers. More...
 
#define POLARSSL_CIPHER_MODE_CTR
 Enable Counter Block Cipher mode (CTR) for symmetric ciphers. More...
 
#define POLARSSL_ERROR_STRERROR_DUMMY
 Enable a dummy error function to make use of error_strerror() in third party libraries easier. More...
 
#define POLARSSL_GENPRIME
 Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C. More...
 
#define POLARSSL_FS_IO
 Enable functions that use the filesystem. More...
 
#define POLARSSL_PKCS1_V21
 Requires: POLARSSL_MD_C, POLARSSL_RSA_C. More...
 
#define POLARSSL_SELF_TEST
 Enable the checkup functions (*_self_test). More...
 
#define POLARSSL_SSL_ALERT_MESSAGES
 
#define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO
 Enable support for receiving and parsing SSLv2 Client Hello messages for the SSL Server module (POLARSSL_SSL_SRV_C) More...
 
SECTION: PolarSSL modules

This section enables or disables entire modules in PolarSSL

#define POLARSSL_AES_C
 Enable the AES block cipher. More...
 
#define POLARSSL_ARC4_C
 Enable the ARCFOUR stream cipher. More...
 
#define POLARSSL_ASN1_PARSE_C
 Enable the generic ASN1 parser. More...
 
#define POLARSSL_ASN1_WRITE_C
 Enable the generic ASN1 writer. More...
 
#define POLARSSL_BASE64_C
 Enable the Base64 module. More...
 
#define POLARSSL_BIGNUM_C
 Enable the multi-precision integer library. More...
 
#define POLARSSL_BLOWFISH_C
 Enable the Blowfish block cipher. More...
 
#define POLARSSL_CAMELLIA_C
 Enable the Camellia block cipher. More...
 
#define POLARSSL_CERTS_C
 Enable the test certificates. More...
 
#define POLARSSL_CIPHER_C
 Enable the generic cipher layer. More...
 
#define POLARSSL_CTR_DRBG_C
 Enable the CTR_DRBG AES-256-based random generator. More...
 
#define POLARSSL_DEBUG_C
 Enable the debug functions. More...
 
#define POLARSSL_DES_C
 Enable the DES block cipher. More...
 
#define POLARSSL_DHM_C
 Enable the Diffie-Hellman-Merkle key exchange. More...
 
#define POLARSSL_ENTROPY_C
 Enable the platform-specific entropy code. More...
 
#define POLARSSL_ERROR_C
 Enable error code to error string conversion. More...
 
#define POLARSSL_GCM_C
 Enable the Galois/Counter Mode (GCM) for AES. More...
 
#define POLARSSL_HAVEGE_C
 Enable the HAVEGE random generator. More...
 
#define POLARSSL_MD_C
 Enable the generic message digest layer. More...
 
#define POLARSSL_MD5_C
 Enable the MD5 hash algorithm. More...
 
#define POLARSSL_NET_C
 Enable the TCP/IP networking routines. More...
 
#define POLARSSL_PADLOCK_C
 Enable VIA Padlock support on x86. More...
 
#define POLARSSL_PEM_C
 Enable PEM decoding. More...
 
#define POLARSSL_PKCS5_C
 Enable PKCS#5 functions. More...
 
#define POLARSSL_PKCS12_C
 Enable PKCS#12 PBE functions Adds algorithms for parsing PKCS#8 encrypted private keys. More...
 
#define POLARSSL_RSA_C
 Enable the RSA public-key cryptosystem. More...
 
#define POLARSSL_SHA1_C
 Enable the SHA1 cryptographic hash algorithm. More...
 
#define POLARSSL_SHA2_C
 Enable the SHA-224 and SHA-256 cryptographic hash algorithms. More...
 
#define POLARSSL_SHA4_C
 Enable the SHA-384 and SHA-512 cryptographic hash algorithms. More...
 
#define POLARSSL_SSL_CACHE_C
 Enable simple SSL cache implementation. More...
 
#define POLARSSL_SSL_CLI_C
 Enable the SSL/TLS client code. More...
 
#define POLARSSL_SSL_SRV_C
 Enable the SSL/TLS server code. More...
 
#define POLARSSL_SSL_TLS_C
 Enable the generic SSL/TLS code. More...
 
#define POLARSSL_TIMING_C
 Enable the portable timing interface. More...
 
#define POLARSSL_VERSION_C
 Enable run-time version information. More...
 
#define POLARSSL_X509_PARSE_C
 Enable X.509 certificate parsing. More...
 
#define POLARSSL_X509_WRITE_C
 Enable X.509 buffer writing. More...
 
#define POLARSSL_XTEA_C
 Enable the XTEA block cipher. More...
 

Detailed Description

Configuration options (set of defines)

Copyright (C) 2006-2013, Brainspark B.V.

This file is part of PolarSSL (http://www.polarssl.org) Lead Maintainer: Paul Bakker <polarssl_maintainer at polarssl.org>

All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

This set of compile-time options may be used to enable or disable features selectively, and reduce the global memory footprint.

Definition in file config.h.

Macro Definition Documentation

#define POLARSSL_AES_C

Enable the AES block cipher.

Module: library/aes.c Caller: library/ssl_tls.c library/pem.c library/ctr_drbg.c

This module enables the following ciphersuites (if other requisites are enabled as well): TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384

PEM uses AES for decrypting encrypted keys.

Definition at line 380 of file config.h.

#define POLARSSL_ARC4_C

Enable the ARCFOUR stream cipher.

Module: library/arc4.c Caller: library/ssl_tls.c

This module enables the following ciphersuites: TLS_RSA_WITH_RC4_128_MD5 TLS_RSA_WITH_RC4_128_SHA

Definition at line 394 of file config.h.

#define POLARSSL_ASN1_PARSE_C

Enable the generic ASN1 parser.

Module: library/asn1.c Caller: library/x509parse.c

Definition at line 404 of file config.h.

#define POLARSSL_ASN1_WRITE_C

Enable the generic ASN1 writer.

Module: library/asn1write.c

Definition at line 413 of file config.h.

#define POLARSSL_BASE64_C

Enable the Base64 module.

Module: library/base64.c Caller: library/pem.c

This module is required for PEM support (required by X.509).

Definition at line 425 of file config.h.

#define POLARSSL_BIGNUM_C

Enable the multi-precision integer library.

Module: library/bignum.c Caller: library/dhm.c library/rsa.c library/ssl_tls.c library/x509parse.c

This module is required for RSA and DHM support.

Definition at line 440 of file config.h.

#define POLARSSL_BLOWFISH_C

Enable the Blowfish block cipher.

Module: library/blowfish.c

Definition at line 449 of file config.h.

#define POLARSSL_CAMELLIA_C

Enable the Camellia block cipher.

Module: library/camellia.c Caller: library/ssl_tls.c

This module enables the following ciphersuites (if other requisites are enabled as well): TLS_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256

Definition at line 470 of file config.h.

#define POLARSSL_CERTS_C

Enable the test certificates.

Module: library/certs.c Caller:

This module is used for testing (ssl_client/server).

Definition at line 482 of file config.h.

#define POLARSSL_CIPHER_C

Enable the generic cipher layer.

Module: library/cipher.c Caller:

Uncomment to enable generic cipher wrappers.

Definition at line 494 of file config.h.

#define POLARSSL_CIPHER_MODE_CFB

Enable Cipher Feedback mode (CFB) for symmetric ciphers.

Definition at line 151 of file config.h.

#define POLARSSL_CIPHER_MODE_CTR

Enable Counter Block Cipher mode (CTR) for symmetric ciphers.

Definition at line 158 of file config.h.

#define POLARSSL_CTR_DRBG_C

Enable the CTR_DRBG AES-256-based random generator.

Module: library/ctr_drbg.c Caller:

Requires: POLARSSL_AES_C

This module provides the CTR_DRBG AES-256 random number generator.

Definition at line 508 of file config.h.

#define POLARSSL_DEBUG_C

Enable the debug functions.

Module: library/debug.c Caller: library/ssl_cli.c library/ssl_srv.c library/ssl_tls.c

This module provides debugging functions.

Definition at line 522 of file config.h.

#define POLARSSL_DES_C

Enable the DES block cipher.

Module: library/des.c Caller: library/pem.c library/ssl_tls.c

This module enables the following ciphersuites (if other requisites are enabled as well): TLS_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA

PEM uses DES/3DES for decrypting encrypted keys.

Definition at line 540 of file config.h.

#define POLARSSL_DHM_C

Enable the Diffie-Hellman-Merkle key exchange.

Module: library/dhm.c Caller: library/ssl_cli.c library/ssl_srv.c

This module enables the following ciphersuites (if other requisites are enabled as well): TLS_DHE_RSA_WITH_DES_CBC_SHA TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA TLS_DHE_RSA_WITH_AES_256_CBC_SHA TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

Definition at line 566 of file config.h.

#define POLARSSL_ENTROPY_C

Enable the platform-specific entropy code.

Module: library/entropy.c Caller:

Requires: POLARSSL_SHA4_C

This module provides a generic entropy pool

Definition at line 580 of file config.h.

#define POLARSSL_ERROR_C

Enable error code to error string conversion.

Module: library/error.c Caller:

This module enables err_strerror().

Definition at line 592 of file config.h.

#define POLARSSL_ERROR_STRERROR_DUMMY

Enable a dummy error function to make use of error_strerror() in third party libraries easier.

Disable if you run into name conflicts and want to really remove the error_strerror()

Definition at line 201 of file config.h.

#define POLARSSL_FS_IO

Enable functions that use the filesystem.

Definition at line 217 of file config.h.

#define POLARSSL_GCM_C

Enable the Galois/Counter Mode (GCM) for AES.

Module: library/gcm.c

Requires: POLARSSL_AES_C

This module enables the following ciphersuites (if other requisites are enabled as well): TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_GCM_SHA384

Definition at line 608 of file config.h.

#define POLARSSL_GENPRIME

Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C.

Enable the RSA prime-number generation code.

Definition at line 210 of file config.h.

#define POLARSSL_HAVE_ASM

The compiler has support for asm()

Uncomment to enable the use of assembly code.

Requires support for asm() in compiler.

Used in: library/timing.c library/padlock.c include/polarssl/bn_mul.h

Definition at line 86 of file config.h.

#define POLARSSL_HAVE_LONGLONG

The compiler supports the 'long long' type.

(Only used on 32-bit platforms)

Definition at line 69 of file config.h.

#define POLARSSL_HAVEGE_C

Enable the HAVEGE random generator.

Warning: the HAVEGE random generator is not suitable for virtualized environments

Warning: the HAVEGE random generator is dependent on timing and specific processor traits. It is therefore not advised to use HAVEGE as your applications primary random generator or primary entropy pool input. As a secondary input to your entropy pool, it IS able add the (limited) extra entropy it provides.

Module: library/havege.c Caller:

Requires: POLARSSL_TIMING_C

Uncomment to enable the HAVEGE random generator.

Definition at line 631 of file config.h.

#define POLARSSL_MD5_C

Enable the MD5 hash algorithm.

Module: library/md5.c Caller: library/pem.c library/ssl_tls.c library/x509parse.c

This module is required for SSL/TLS and X.509. PEM uses MD5 for decrypting encrypted keys.

Definition at line 684 of file config.h.

#define POLARSSL_MD_C

Enable the generic message digest layer.

Module: library/md.c Caller:

Uncomment to enable generic message digest wrappers.

Definition at line 643 of file config.h.

#define POLARSSL_NET_C

Enable the TCP/IP networking routines.

Module: library/net.c Caller:

This module provides TCP/IP networking routines.

Definition at line 696 of file config.h.

#define POLARSSL_PADLOCK_C

Enable VIA Padlock support on x86.

Module: library/padlock.c Caller: library/aes.c

This modules adds support for the VIA PadLock on x86.

Definition at line 708 of file config.h.

#define POLARSSL_PEM_C

Enable PEM decoding.

Module: library/pem.c Caller: library/x509parse.c

Requires: POLARSSL_BASE64_C

This modules adds support for decoding PEM files.

Definition at line 736 of file config.h.

#define POLARSSL_PKCS12_C

Enable PKCS#12 PBE functions Adds algorithms for parsing PKCS#8 encrypted private keys.

Module: library/pkcs12.c Caller: library/x509parse.c

Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_CIPHER_C, POLARSSL_MD_C Can use: POLARSSL_ARC4_C

This module enables PKCS#12 functions.

Definition at line 781 of file config.h.

#define POLARSSL_PKCS1_V21

Requires: POLARSSL_MD_C, POLARSSL_RSA_C.

Enable support for PKCS#1 v2.1 encoding. This enables support for RSAES-OAEP and RSASSA-PSS operations.

Definition at line 251 of file config.h.

#define POLARSSL_PKCS5_C

Enable PKCS#5 functions.

Module: library/pkcs5.c

Requires: POLARSSL_MD_C

This module adds support for the PKCS#5 functions.

Definition at line 749 of file config.h.

#define POLARSSL_RSA_C

Enable the RSA public-key cryptosystem.

Module: library/rsa.c Caller: library/ssl_cli.c library/ssl_srv.c library/ssl_tls.c library/x509.c

Requires: POLARSSL_BIGNUM_C

This module is required for SSL/TLS and MD5-signed certificates.

Definition at line 798 of file config.h.

#define POLARSSL_SELF_TEST

Enable the checkup functions (*_self_test).

Definition at line 268 of file config.h.

#define POLARSSL_SHA1_C

Enable the SHA1 cryptographic hash algorithm.

Module: library/sha1.c Caller: library/ssl_cli.c library/ssl_srv.c library/ssl_tls.c library/x509parse.c

This module is required for SSL/TLS and SHA1-signed certificates.

Definition at line 813 of file config.h.

#define POLARSSL_SHA2_C

Enable the SHA-224 and SHA-256 cryptographic hash algorithms.

Module: library/sha2.c Caller: library/md_wrap.c library/x509parse.c

This module adds support for SHA-224 and SHA-256. This module is required for the SSL/TLS 1.2 PRF function.

Definition at line 827 of file config.h.

#define POLARSSL_SHA4_C

Enable the SHA-384 and SHA-512 cryptographic hash algorithms.

Module: library/sha4.c Caller: library/md_wrap.c library/x509parse.c

This module adds support for SHA-384 and SHA-512.

Definition at line 840 of file config.h.

#define POLARSSL_SSL_ALERT_MESSAGES

Definition at line 282 of file config.h.

#define POLARSSL_SSL_CACHE_C

Enable simple SSL cache implementation.

Module: library/ssl_cache.c Caller:

Requires: POLARSSL_SSL_CACHE_C

Definition at line 852 of file config.h.

#define POLARSSL_SSL_CLI_C

Enable the SSL/TLS client code.

Module: library/ssl_cli.c Caller:

Requires: POLARSSL_SSL_TLS_C

This module is required for SSL/TLS client support.

Definition at line 866 of file config.h.

#define POLARSSL_SSL_SRV_C

Enable the SSL/TLS server code.

Module: library/ssl_srv.c Caller:

Requires: POLARSSL_SSL_TLS_C

This module is required for SSL/TLS server support.

Definition at line 880 of file config.h.

#define POLARSSL_SSL_SRV_SUPPORT_SSLV2_CLIENT_HELLO

Enable support for receiving and parsing SSLv2 Client Hello messages for the SSL Server module (POLARSSL_SSL_SRV_C)

Comment this macro to disable support for SSLv2 Client Hello messages.

Definition at line 318 of file config.h.

#define POLARSSL_SSL_TLS_C

Enable the generic SSL/TLS code.

Module: library/ssl_tls.c Caller: library/ssl_cli.c library/ssl_srv.c

Requires: POLARSSL_MD5_C, POLARSSL_SHA1_C, POLARSSL_X509_PARSE_C

This module is required for SSL/TLS.

Definition at line 895 of file config.h.

#define POLARSSL_TIMING_C

Enable the portable timing interface.

Module: library/timing.c Caller: library/havege.c

This module is used by the HAVEGE random number generator.

Definition at line 907 of file config.h.

#define POLARSSL_VERSION_C

Enable run-time version information.

Module: library/version.c

This module provides run-time version information.

Definition at line 918 of file config.h.

#define POLARSSL_X509_PARSE_C

Enable X.509 certificate parsing.

Module: library/x509parse.c Caller: library/ssl_cli.c library/ssl_srv.c library/ssl_tls.c

Requires: POLARSSL_ASN1_PARSE_C, POLARSSL_BIGNUM_C, POLARSSL_RSA_C

This module is required for X.509 certificate parsing.

Definition at line 934 of file config.h.

#define POLARSSL_X509_WRITE_C

Enable X.509 buffer writing.

Module: library/x509write.c

Requires: POLARSSL_BIGNUM_C, POLARSSL_RSA_C

This module is required for X.509 certificate request writing.

Definition at line 947 of file config.h.

#define POLARSSL_XTEA_C

Enable the XTEA block cipher.

Module: library/xtea.c Caller:

Definition at line 957 of file config.h.