# Kconfig - Crypto configuration options
#
# Copyright (c) 2017 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#


#
# CRYPTO options
#
menuconfig CRYPTO
	bool
	prompt "Crypto Drivers [EXPERIMENTAL]"
	default n

if CRYPTO

config CRYPTO_INIT_PRIORITY
	int "Crypto devices init priority"
	default 90
	help
	Crypto devices initialization priority.

config SYS_LOG_CRYPTO_LEVEL
	int "Crypto drivers log level"
	default 0
	depends on SYS_LOG
	help
	Sets log level for crypto drivers

	Levels are:

	- 0 OFF, do not write

	- 1 ERROR, only write SYS_LOG_ERR

	- 2 WARNING, write SYS_LOG_WRN in addition to previous level

	- 3 INFO, write SYS_LOG_INF in addition to previous levels

	- 4 DEBUG, write SYS_LOG_DBG in addition to previous levels

config CRYPTO_TINYCRYPT_SHIM
	bool "Enable TinyCrypt shim driver [EXPERIMENTAL] "
	default n
	select TINYCRYPT
	select TINYCRYPT_AES
	select TINYCRYPT_AES_CBC
	select TINYCRYPT_AES_CTR
	select TINYCRYPT_AES_CCM
	select TINYCRYPT_AES_CMAC
	help
	Enable TinyCrypt shim layer compliant with crypto APIs.

config CRYPTO_TINYCRYPT_SHIM_MAX_SESSION
	int "Maximum of sessions TinyCrypt shim driver can handle"
	default 2
	depends on CRYPTO_TINYCRYPT_SHIM
	help
	This can be used to tweak the amount of sessions the driver
	can handle in parallel.

config CRYPTO_TINYCRYPT_SHIM_DRV_NAME
	string "Device name for TinyCrypt Pseudo device"
	default "CRYPTO_TC"
	depends on CRYPTO_TINYCRYPT_SHIM
	help
	Device name for TinyCrypt Pseudo device.

config CRYPTO_MBEDTLS_SHIM
	bool "Enable mbedTLS shim driver [EXPERIMENTAL] "
	default n
	select MBEDTLS
	select MBEDTLS_BUILTIN
	select MBEDTLS_ENABLE_HEAP
	help
	Enable mbedTLS shim layer compliant with crypto APIs. You will need
	to fill in a relevant value to CONFIG_MBEDTLS_HEAP_SIZE.

config CRYPTO_MBEDTLS_SHIM_DRV_NAME
	string "Device name for mbedTLS Pseudo device"
	default "CRYPTO_MTLS"
	depends on CRYPTO_MBEDTLS_SHIM
	help
	Device name for mbedTLS Pseudo device.

config CRYPTO_MBEDTLS_SHIM_MAX_SESSION
	int "Maximum of sessions mbedTLS shim driver can handle"
	default 2
	depends on CRYPTO_MBEDTLS_SHIM
	help
	This can be used to tweak the amount of sessions the driver
	can handle in parallel.

source "drivers/crypto/Kconfig.ataes132a"

endif # CRYPTO
