123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- # Cryptography primitive options for mbed TLS
- # Copyright (c) 2016 Intel Corporation
- # SPDX-License-Identifier: Apache-2.0
- config ZEPHYR_MBEDTLS_MODULE
- bool
- config MBEDTLS_PROMPTLESS
- bool
- help
- Symbol to disable the prompt for MBEDTLS selection.
- This symbol may be used internally in a Kconfig tree to hide the
- mbed TLS menu prompt and instead handle the selection of MBEDTLS from
- dependent sub-configurations and thus preven stuck symbol behavior.
- menuconfig MBEDTLS
- bool "mbed TLS Support" if !MBEDTLS_PROMPTLESS
- help
- This option enables the mbedTLS cryptography library.
- if MBEDTLS
- choice MBEDTLS_IMPLEMENTATION
- prompt "Select implementation"
- default MBEDTLS_BUILTIN
- config MBEDTLS_BUILTIN
- bool "Use Zephyr in-tree mbedTLS version"
- help
- Link with mbedTLS sources included with Zephyr distribution.
- Included mbedTLS version is well integrated with and supported
- by Zephyr, and the recommended choice for most users.
- config MBEDTLS_LIBRARY
- bool "Use external mbedTLS library"
- help
- Use external, out-of-tree prebuilt mbedTLS library. For advanced
- users only.
- endchoice
- config CUSTOM_MBEDTLS_CFG_FILE
- bool "Custom mbed TLS configuration file"
- help
- Allow user defined input for the MBEDTLS_CFG_FILE setting.
- You can specify the actual configuration file using the
- MBEDTLS_CFG_FILE setting.
- config MBEDTLS_CFG_FILE
- string "mbed TLS configuration file" if CUSTOM_MBEDTLS_CFG_FILE
- depends on MBEDTLS_BUILTIN
- default "config-tls-generic.h"
- help
- Use a specific mbedTLS configuration file. The default config file
- file can be tweaked with Kconfig. The default configuration is
- suitable to communicate with majority of HTTPS servers on the Internet,
- but has relatively many features enabled. To optimize resources for
- special TLS usage, use available Kconfig options, or select an
- alternative config.
- rsource "Kconfig.tls-generic"
- config MBEDTLS_SSL_MAX_CONTENT_LEN
- int "Max payload size for TLS protocol message"
- default 1500
- depends on MBEDTLS_BUILTIN
- help
- The TLS standards mandate max payload size of 16384 bytes. So, for
- maximum operability and for general-purpose usage, that value must
- be used. For specific usages, that value can be largely decreased.
- E.g. for DTLS, payload size is limited by UDP datagram size, and
- even for HTTPS REST API, the payload can be limited to max size of
- (REST request, REST response, server certificate(s)).
- mbedTLS uses this value separate for input and output buffers, so
- twice this value will be allocated (on mbedTLS own heap, so the
- value of MBEDTLS_HEAP_SIZE should accommodate that).
- config MBEDTLS_DEBUG
- bool "mbed TLS debug activation"
- depends on MBEDTLS_BUILTIN
- help
- Enable debugging activation for mbed TLS configuration. If you use
- mbedTLS/Zephyr integration (e.g. net_app), this will activate debug
- logging (of the level configured by MBEDTLS_DEBUG_LEVEL).
- If you use mbedTLS directly instead, you will need to perform
- additional configuration yourself: call
- mbedtls_ssl_conf_dbg(&mbedtls.conf, my_debug, NULL);
- mbedtls_debug_set_threshold(level);
- functions in your application, and create the my_debug() function to
- actually print something useful.
- config MBEDTLS_DEBUG_LEVEL
- int "mbed TLS default debug level"
- depends on MBEDTLS_DEBUG
- default 0
- range 0 4
- help
- Default mbed TLS debug logging level for Zephyr integration code
- (from ext/lib/crypto/mbedtls/include/mbedtls/debug.h):
- 0 No debug
- 1 Error
- 2 State change
- 3 Information
- 4 Verbose
- config MBEDTLS_MEMORY_DEBUG
- bool "mbed TLS memory debug activation"
- depends on MBEDTLS_BUILTIN
- help
- Enable debugging of buffer allocator memory issues. Automatically
- prints (to stderr) all (fatal) messages on memory allocation
- issues. Enables function for 'debug output' of allocated memory.
- config MBEDTLS_TEST
- bool "Compile internal self test functions"
- depends on MBEDTLS_BUILTIN
- help
- Enable self test function for the crypto algorithms
- config MBEDTLS_INSTALL_PATH
- string "mbedTLS install path"
- depends on MBEDTLS_LIBRARY
- help
- This option holds the path where the mbedTLS libraries and headers are
- installed. Make sure this option is properly set when MBEDTLS_LIBRARY
- is enabled otherwise the build will fail.
- config MBEDTLS_ENABLE_HEAP
- bool "Enable global heap for mbed TLS"
- help
- This option enables the mbedtls to use the heap. This setting must
- be global so that various applications and libraries in Zephyr do not
- try to do this themselves as there can be only one heap defined
- in mbedtls. If this is enabled, then the Zephyr will, during the device
- startup, initialize the heap automatically.
- config MBEDTLS_HEAP_SIZE
- int "Heap size for mbed TLS"
- default 10240 if OPENTHREAD_COMMISSIONER || OPENTHREAD_JOINER
- default 512
- depends on MBEDTLS_ENABLE_HEAP
- help
- The mbedtls routines will use this heap if enabled.
- See ext/lib/crypto/mbedtls/include/mbedtls/config.h and
- MBEDTLS_MEMORY_BUFFER_ALLOC_C option for details. That option is not
- enabled by default.
- Default value for the heap size is not set as it depends on the
- application. For streaming communication with arbitrary (HTTPS)
- servers on the Internet, 32KB + overheads (up to another 20KB) may
- be needed. For some dedicated and specific usage of mbedtls API, the
- 1000 bytes might be ok.
- config MBEDTLS_SHELL
- bool "mbed TLS shell"
- depends on MBEDTLS
- depends on SHELL
- help
- Enable mbed TLS shell module, which allows to show debug information
- about mbed TLS library, such as heap usage.
- config APP_LINK_WITH_MBEDTLS
- bool "Link 'app' with MBEDTLS"
- default y
- help
- Add MBEDTLS header files to the 'app' include path. It may be
- disabled if the include paths for MBEDTLS are causing aliasing
- issues for 'app'.
- endif # MBEDTLS
|