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