# Kconfig - Cryptography primitive options for wolfSSL

#
# Copyright (c) 2016 Intel Corporation
#
# 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.
#

config ZEPHYR_WOLFSSL_MODULE
        bool
config WOLFSSL_PROMPTLESS
        bool
        help
          Symbol to disable the prompt for WOLFSSL selection.
          This symbol may be used internally in a Kconfig tree to hide the
          wolfSSL menu prompt and instead handle the selection of WOLFSSL from
          dependent sub-configurations and thus prevent stuck symbol behavior.


menuconfig WOLFSSL
	bool "wolfSSL Support" if !WOLFSSL_PROMPTLESS
	help
	  This option enables the wolfSSL cryptography library.

if WOLFSSL

choice WOLFSSL_IMPLEMENTATION
	prompt "Select implementation"
	default WOLFSSL_BUILTIN

config WOLFSSL_BUILTIN
	bool "Enable wolfSSL integrated sources"
	help
	  Link with local wolfSSL sources instead of external library.

config WOLFSSL_LIBRARY
	bool "Enable wolfSSL external library"
	help
	  This option enables wolfSSL library.

endchoice

config WOLFSSL_SETTINGS_FILE
	string "wolfSSL settings file"
	depends on WOLFSSL_BUILTIN
	default "user_settings-tls-generic.h"
	help
	  Use a specific wolfSSL settings file. The default config file
	  file can be tweaked with Kconfig. The default settings 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 settings, or select an
	  alternative config.

rsource "Kconfig.tls-generic"

config WOLFSSL_DEBUG
	bool "wolfSSL debug activation"
	depends on WOLFSSL_BUILTIN
	help
	  Enable debugging activation for wolfSSL configuration. If you use
	  wolfSSL/Zephyr integration (e.g. net_app), this will activate debug
	  logging (of the level configured by WOLFSSL_DEBUG_LEVEL).

config WOLFSSL_INSTALL_PATH
	string "wolfSSL install path"
	depends on WOLFSSL_LIBRARY
	help
	  This option holds the path where the wolfSSL libraries and headers are
	  installed. Make sure this option is properly set when WOLFSSL_LIBRARY
	  is enabled otherwise the build will fail.

config APP_LINK_WITH_WOLFSSL
	bool "Link 'app' with WOLFSSL"
	default y
	help
	  Add WOLFSSL header files to the 'app' include path. It may be
	  disabled if the include paths for WOLFSSL are causing aliasing
	  issues for 'app'.

endif