# Private config options for PSA level 1 application

# Copyright (c) 2019,2020 Linaro
# SPDX-License-Identifier: Apache-2.0

mainmenu "PSA level 1 sample application"

menu "Application configuration"

module = PSA
module-str = psa
source "subsys/logging/Kconfig.template.log_config"

endmenu

config PSA_SHELL
	bool "The 'psa' shell command"
	depends on SHELL
	help
	  Enabling this option will make the 'psa' shell command available.

config PSA_IMPORT_KEY
	bool "Support for importing private key data"
	help
	  Enable support for importing a pre-generated or randomly generated
	  private key using PSA APIs and PRIVATE_KEY_STATIC or
	  PRIVATE_KEY_RANDOM.

choice
	prompt "Private Key"
	default PRIVATE_KEY_RANDOM

config PRIVATE_KEY_STATIC
	bool "Static"
	depends on PSA_IMPORT_KEY
	help
	  A static key value will be used for the elliptic curve 'secp256r1'
	  private key.

config PRIVATE_KEY_RANDOM
	bool "Random"
	depends on PSA_IMPORT_KEY
	help
	  A randomly generated value will be used for the elliptic curve
	  'secp256r1' private key.

endchoice

source "Kconfig.zephyr"
