#
# For a description of the syntax of this configuration file,
# see the file kconfig-language.txt in the NuttX tools repository.
#

menu "Crypto: TinyCrypt cryptography library"

config TINYCRYPT
	bool "TinyCrypt Support"
	---help---
		This option enables the TinyCrypt cryptography library.

if TINYCRYPT
config TINYCRYPT_VERSION
	string "Tinycrypt Version"
	default "0.2.8"

config TINYCRYPT_CTR_PRNG
	bool "PRNG in counter mode"
	default n
	---help---
		This option enables support for the pseudo-random number
		generator in counter mode.

config TINYCRYPT_SHA256
	bool "SHA-256 Hash function support"
	default n
	---help---
		This option enables support for SHA-256
		hash function primitive.

config TINYCRYPT_SHA256_HMAC
	bool "HMAC (via SHA256) message auth support"
	default n
	---help---
		This option enables support for HMAC using SHA-256
		message authentication code.

config TINYCRYPT_SHA256_HMAC_PRNG
	bool "PRNG (via HMAC-SHA256) support"
	default n
	---help---
		This option enables support for pseudo-random number
		generator.

config TINYCRYPT_ECC
	bool
	default n

config TINYCRYPT_ECC_DH
	bool "ECC_DH anonymous key agreement protocol"
	default n
	select TINYCRYPT_ECC
	---help---
		This option enables support for the Elliptic curve
		Diffie-Hellman anonymous key agreement protocol.

		Enabling ECC requires a cryptographically secure random number
		generator.

config TINYCRYPT_ECC_DSA
	bool "ECC_DSA digital signature algorithm"
	default n
	select TINYCRYPT_ECC
	---help---
		This option enables support for the Elliptic Curve Digital
		Signature Algorithm (ECDSA).

		Enabling ECC requires a cryptographically secure random number
		generator.

config TINYCRYPT_AES
	bool "AES-128 decrypt/encrypt"
	default n
	---help---
		This option enables support for AES-128 decrypt and encrypt.

config TINYCRYPT_AES_CBC
	bool "AES-128 block cipher"
	default n
	---help---
		This option enables support for AES-128 block cipher mode.

config TINYCRYPT_AES_CTR
	bool "AES-128 counter mode"
	default n
	---help---
		This option enables support for AES-128 counter mode.

config TINYCRYPT_AES_CCM
	bool "AES-128 CCM mode"
	default n
	---help---
		This option enables support for AES-128 CCM mode.

config TINYCRYPT_AES_CMAC
	bool "AES-128 CMAC mode"
	default n
	---help---
		This option enables support for AES-128 CMAC mode.

config TINYCRYPT_TEST
	tristate "Enable TinyCrypt test"
	default n
	---help---
		Enable the TinyCrypt test.

if TINYCRYPT_TEST

config TINYCRYPT_TEST_PRIORITY
	int "TinyCrypt test priority"
	default 100

config TINYCRYPT_TEST_STACKSIZE
	int "TinyCrypt test stack size"
	default DEFAULT_TASK_STACKSIZE

endif # TINYCRYPT_TEST

endif # TINYCRYPT

endmenu # "Crypto: TinyCrypt cryptography library"
