# Copyright (c) 2022 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

config BT_CRYPTO
	bool
	select TINYCRYPT if !BT_USE_PSA_API
	select TINYCRYPT_AES if !BT_USE_PSA_API
	select TINYCRYPT_AES_CMAC if !BT_USE_PSA_API
	select PSA_WANT_KEY_TYPE_AES if BT_USE_PSA_API
	select PSA_WANT_ALG_CMAC if BT_USE_PSA_API
	help
	  This option enables the Bluetooth Cryptographic Toolbox.
