# Kconfig - Cryptography primitive options for TinyCrypt version 2.0

#
# Copyright (c) 2015 Intel Corporation
#
# SPDX-License-Identifier: Apache-2.0
#

config TINYCRYPT
	bool
	prompt "Cryptography Support"
	default n
	help
	This option enables the TinyCrypt cryptography library.

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

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

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

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

config TINYCRYPT_ECC_DH
	bool
	prompt "ECC_DH anonymous key agreement protocol"
	depends on TINYCRYPT
	select RANDOM_GENERATOR
	default n
	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
	prompt "ECC_DSA digital signature algorithm"
	depends on TINYCRYPT
	select RANDOM_GENERATOR
	default n
	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
	prompt "AES-128 decrypt/encrypt"
	depends on TINYCRYPT
	default n
	help
	This option enables support for AES-128 decrypt and encrypt.

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

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

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

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