You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
276 lines
6.3 KiB
276 lines
6.3 KiB
/**
|
|
* \file config.h
|
|
*
|
|
* \brief Configuration options (set of defines)
|
|
*
|
|
* This set of compile-time options may be used to enable
|
|
* or disable features selectively, and reduce the global
|
|
* memory footprint.
|
|
*
|
|
* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* This file is part of mbed TLS (https://tls.mbed.org)
|
|
*/
|
|
|
|
#ifndef MBEDTLS_CONFIG_H
|
|
#define MBEDTLS_CONFIG_H
|
|
|
|
#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE)
|
|
#define _CRT_SECURE_NO_DEPRECATE 1
|
|
#endif
|
|
|
|
/**
|
|
* \name SECTION: System support
|
|
*
|
|
* This section sets system specific settings.
|
|
* \{
|
|
*/
|
|
|
|
/**
|
|
* \def MBEDTLS_HAVE_ASM
|
|
*
|
|
* The compiler has support for asm().
|
|
*
|
|
* Requires support for asm() in compiler.
|
|
*
|
|
* Used in:
|
|
* library/timing.c
|
|
* library/padlock.c
|
|
* include/mbedtls/bn_mul.h
|
|
*
|
|
* Comment to disable the use of assembly code.
|
|
*/
|
|
#define MBEDTLS_HAVE_ASM
|
|
|
|
/**
|
|
* \def MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
|
*
|
|
* MBEDTLS_ECP_XXXX_ENABLED: Enables specific curves within the Elliptic Curve
|
|
* module. By default all supported curves are enabled.
|
|
*
|
|
* Comment macros to disable the curve and functions for it
|
|
*/
|
|
#define MBEDTLS_ECP_DP_SECP192R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP224R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP256R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP384R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP521R1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP192K1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP224K1_ENABLED
|
|
#define MBEDTLS_ECP_DP_SECP256K1_ENABLED
|
|
|
|
/**
|
|
* \def MBEDTLS_ECDSA_DETERMINISTIC
|
|
*
|
|
* Enable deterministic ECDSA (RFC 6979).
|
|
* Standard ECDSA is "fragile" in the sense that lack of entropy when signing
|
|
* may result in a compromise of the long-term signing key. This is avoided by
|
|
* the deterministic variant.
|
|
*
|
|
* Requires: MBEDTLS_HMAC_DRBG_C
|
|
*
|
|
* Comment this macro to disable deterministic ECDSA.
|
|
*/
|
|
//#define MBEDTLS_ECDSA_DETERMINISTIC
|
|
|
|
/**
|
|
* \def MBEDTLS_GENPRIME
|
|
*
|
|
* Enable the prime-number generation code.
|
|
*
|
|
* Requires: MBEDTLS_BIGNUM_C
|
|
*/
|
|
#define MBEDTLS_GENPRIME
|
|
|
|
/**
|
|
* \def MBEDTLS_ZLIB_SUPPORT
|
|
*
|
|
* If set, the SSL/TLS module uses ZLIB to support compression and
|
|
* decompression of packet data.
|
|
*
|
|
* \warning TLS-level compression MAY REDUCE SECURITY! See for example the
|
|
* CRIME attack. Before enabling this option, you should examine with care if
|
|
* CRIME or similar exploits may be a applicable to your use case.
|
|
*
|
|
* \note Currently compression can't be used with DTLS.
|
|
*
|
|
* Used in: library/ssl_tls.c
|
|
* library/ssl_cli.c
|
|
* library/ssl_srv.c
|
|
*
|
|
* This feature requires zlib library and headers to be present.
|
|
*
|
|
* Uncomment to enable use of ZLIB
|
|
*/
|
|
//#define MBEDTLS_ZLIB_SUPPORT
|
|
/* \} name SECTION: mbed TLS feature support */
|
|
|
|
/**
|
|
* \name SECTION: mbed TLS modules
|
|
*
|
|
* This section enables or disables entire modules in mbed TLS
|
|
* \{
|
|
*/
|
|
|
|
/**
|
|
* \def MBEDTLS_AESNI_C
|
|
*
|
|
* Enable AES-NI support on x86-64.
|
|
*
|
|
* Module: library/aesni.c
|
|
* Caller: library/aes.c
|
|
*
|
|
* Requires: MBEDTLS_HAVE_ASM
|
|
*
|
|
* This modules adds support for the AES-NI instructions on x86-64
|
|
*/
|
|
#define MBEDTLS_AESNI_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ASN1_PARSE_C
|
|
*
|
|
* Enable the generic ASN1 parser.
|
|
*
|
|
* Module: library/asn1.c
|
|
* Caller: library/x509.c
|
|
* library/dhm.c
|
|
* library/pkcs12.c
|
|
* library/pkcs5.c
|
|
* library/pkparse.c
|
|
*/
|
|
#define MBEDTLS_ASN1_PARSE_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ASN1_WRITE_C
|
|
*
|
|
* Enable the generic ASN1 writer.
|
|
*
|
|
* Module: library/asn1write.c
|
|
* Caller: library/ecdsa.c
|
|
* library/pkwrite.c
|
|
* library/x509_create.c
|
|
* library/x509write_crt.c
|
|
* library/x509write_csr.c
|
|
*/
|
|
#define MBEDTLS_ASN1_WRITE_C
|
|
|
|
/**
|
|
* \def MBEDTLS_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).
|
|
*/
|
|
#define MBEDTLS_BASE64_C
|
|
|
|
/**
|
|
* \def MBEDTLS_BIGNUM_C
|
|
*
|
|
* Enable the multi-precision integer library.
|
|
*
|
|
* Module: library/bignum.c
|
|
* Caller: library/dhm.c
|
|
* library/ecp.c
|
|
* library/ecdsa.c
|
|
* library/rsa.c
|
|
* library/ssl_tls.c
|
|
*
|
|
* This module is required for RSA, DHM and ECC (ECDH, ECDSA) support.
|
|
*/
|
|
#define MBEDTLS_BIGNUM_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ECDH_C
|
|
*
|
|
* Enable the elliptic curve Diffie-Hellman library.
|
|
*
|
|
* Module: library/ecdh.c
|
|
* Caller: library/ssl_cli.c
|
|
* library/ssl_srv.c
|
|
*
|
|
* This module is used by the following key exchanges:
|
|
* ECDHE-ECDSA, ECDHE-RSA, DHE-PSK
|
|
*
|
|
* Requires: MBEDTLS_ECP_C
|
|
*/
|
|
#define MBEDTLS_ECDH_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ECDSA_C
|
|
*
|
|
* Enable the elliptic curve DSA library.
|
|
*
|
|
* Module: library/ecdsa.c
|
|
* Caller:
|
|
*
|
|
* This module is used by the following key exchanges:
|
|
* ECDHE-ECDSA
|
|
*
|
|
* Requires: MBEDTLS_ECP_C, MBEDTLS_ASN1_WRITE_C, MBEDTLS_ASN1_PARSE_C
|
|
*/
|
|
#define MBEDTLS_ECDSA_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ECJPAKE_C
|
|
*
|
|
* Enable the elliptic curve J-PAKE library.
|
|
*
|
|
* \warning This is currently experimental. EC J-PAKE support is based on the
|
|
* Thread v1.0.0 specification; incompatible changes to the specification
|
|
* might still happen. For this reason, this is disabled by default.
|
|
*
|
|
* Module: library/ecjpake.c
|
|
* Caller:
|
|
*
|
|
* This module is used by the following key exchanges:
|
|
* ECJPAKE
|
|
*
|
|
* Requires: MBEDTLS_ECP_C, MBEDTLS_MD_C
|
|
*/
|
|
//#define MBEDTLS_ECJPAKE_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ECP_C
|
|
*
|
|
* Enable the elliptic curve over GF(p) library.
|
|
*
|
|
* Module: library/ecp.c
|
|
* Caller: library/ecdh.c
|
|
* library/ecdsa.c
|
|
* library/ecjpake.c
|
|
*
|
|
* Requires: MBEDTLS_BIGNUM_C and at least one MBEDTLS_ECP_DP_XXX_ENABLED
|
|
*/
|
|
#define MBEDTLS_ECP_C
|
|
|
|
/**
|
|
* \def MBEDTLS_ERROR_C
|
|
*
|
|
* Enable error code to error string conversion.
|
|
*
|
|
* Module: library/error.c
|
|
* Caller:
|
|
*
|
|
* This module enables mbedtls_strerror().
|
|
*/
|
|
#define MBEDTLS_ERROR_C
|
|
|
|
|
|
#endif /* MBEDTLS_CONFIG_H */
|