PolarSSL v1.2.8
config.h File Reference

Configuration options (set of defines) More...

This graph shows which files directly or indirectly include this file:

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_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_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.