#
# Copyright (c) 2021 - 2023 Nordic Semiconductor
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#

# This invisible menu helps hiding these not user selectable options
# from menuconfig even when show-all mode is enabled
menu "PSA NEED CC3XX - invisible"
visible if 0

# CC3xx AEAD Driver

config PSA_NEED_CC3XX_CCM_AES
	bool
	default y
	select PSA_ACCEL_CCM_AES_128
	select PSA_ACCEL_CCM_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_CCM_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_CCM
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_AEAD_DRIVER

config PSA_NEED_CC3XX_GCM_AES
	bool
	default y
	select PSA_ACCEL_GCM_AES_128
	select PSA_ACCEL_GCM_AES_192
	select PSA_ACCEL_GCM_AES_256
	depends on HAS_HW_NRF_CC312
	depends on PSA_WANT_ALG_GCM
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_AEAD_DRIVER

config PSA_NEED_CC3XX_STREAM_CIPHER_CHACHA20_POLY1305
	bool
	default y
	select PSA_ACCEL_CHACHA20_POLY1305
	depends on PSA_WANT_ALG_CHACHA20_POLY1305
	depends on PSA_USE_CC3XX_AEAD_DRIVER

config PSA_NEED_CC3XX_AEAD_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_CCM_AES || PSA_NEED_CC3XX_GCM_AES || PSA_NEED_CC3XX_STREAM_CIPHER_CHACHA20_POLY1305

# CC3xx Cipher Driver

config PSA_NEED_CC3XX_CTR_AES
	bool
	default y
	select PSA_ACCEL_CTR_AES_128
	select PSA_ACCEL_CTR_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_CTR_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_CTR
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_CBC_PKCS7_AES
	bool
	default y
	select PSA_ACCEL_CBC_PKCS7_AES_128
	select PSA_ACCEL_CBC_PKCS7_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_CBC_PKCS7_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_CBC_PKCS7
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_CBC_NO_PADDING_AES
	bool
	default y
	select PSA_ACCEL_CBC_NO_PADDING_AES_128
	select PSA_ACCEL_CBC_NO_PADDING_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_CBC_NO_PADDING_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_CBC_NO_PADDING
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_ECB_NO_PADDING_AES
	bool
	default y
	select PSA_ACCEL_ECB_NO_PADDING_AES_128
	select PSA_ACCEL_ECB_NO_PADDING_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_ECB_NO_PADDING_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_ECB_NO_PADDING
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_OFB_AES
	bool
	default y
	select PSA_ACCEL_OFB_AES_128
	select PSA_ACCEL_OFB_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_OFB_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_AES_KEY_SIZE_128 || !HAS_HW_NRF_CC310
	depends on PSA_WANT_ALG_OFB
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_STREAM_CIPHER_CHACHA20
	bool
	default y
	select PSA_ACCEL_STREAM_CIPHER_CHACHA20
	depends on PSA_WANT_ALG_STREAM_CIPHER
	depends on PSA_WANT_KEY_TYPE_CHACHA20
	depends on PSA_USE_CC3XX_CIPHER_DRIVER

config PSA_NEED_CC3XX_CIPHER_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_CTR_AES            || \
		   PSA_NEED_CC3XX_CBC_PKCS7_AES      || \
		   PSA_NEED_CC3XX_CBC_NO_PADDING_AES || \
		   PSA_NEED_CC3XX_ECB_NO_PADDING_AES || \
		   PSA_NEED_CC3XX_OFB_AES            || \
		   PSA_NEED_CC3XX_STREAM_CIPHER_CHACHA20

# CC3xx Key Agreement Driver

config PSA_NEED_CC3XX_ECDH_SECP_R1_224
	bool
	default y
	select PSA_ACCEL_ECDH_SECP_R1_224
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_ECDH_SECP_R1_256
	bool
	default y
	select PSA_ACCEL_ECDH_SECP_R1_256
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_ECDH_SECP_R1_384
	bool
	default y
	select PSA_ACCEL_ECDH_SECP_R1_384
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_ECDH_MONTGOMERY_255
	bool
	default y
	select PSA_ACCEL_ECDH_MONTGOMERY_255
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_ECDH_BRAINPOOL_P_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_BRAINPOOL_P_R1_256
	depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_KEY_AGREEMENT_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_ECDH_SECP_R1_224 || PSA_NEED_CC3XX_ECDH_SECP_R1_256 || \
		   PSA_NEED_CC3XX_ECDH_SECP_R1_384 || \
		   PSA_NEED_CC3XX_ECDH_MONTGOMERY_255 || PSA_NEED_CC3XX_ECDH_BRAINPOOL_P_R1_256

# CC3xx Signature Driver

config PSA_NEED_CC3XX_ECDSA_SECP_R1_192
	bool
	default y
	#TODO: Add ACCEL symbol selection when available
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_192
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_R1_224
	bool
	default y
	select PSA_ACCEL_ECDSA_SECP_R1_224_SHA_1
	select PSA_ACCEL_ECDSA_SECP_R1_224_SHA_224
	select PSA_ACCEL_ECDSA_SECP_R1_224_SHA_256
	select PSA_ACCEL_ECDSA_SECP_R1_224_SHA_384 if PSA_WANT_ALG_SHA_384
	select PSA_ACCEL_ECDSA_SECP_R1_224_SHA_512 if PSA_WANT_ALG_SHA_512
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_R1_256
	bool
	default y
	select PSA_ACCEL_ECDSA_SECP_R1_256_SHA_1
	select PSA_ACCEL_ECDSA_SECP_R1_256_SHA_224
	select PSA_ACCEL_ECDSA_SECP_R1_256_SHA_256
	select PSA_ACCEL_ECDSA_SECP_R1_256_SHA_384 if PSA_WANT_ALG_SHA_384
	select PSA_ACCEL_ECDSA_SECP_R1_256_SHA_512 if PSA_WANT_ALG_SHA_512
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_K1_192
	bool
	default y
	#TODO: Add the accel symbols when available
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_K1_192
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_K1_224
	bool
	default y
	#TODO: Add the accel symbols when available
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_K1_224
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_K1_256
	bool
	default y
	#TODO: Add the accel symbols when available
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_K1_256
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_SECP_R1_384
	bool
	default y
	select PSA_ACCEL_ECDSA_SECP_R1_384_SHA_1
	select PSA_ACCEL_ECDSA_SECP_R1_384_SHA_224
	select PSA_ACCEL_ECDSA_SECP_R1_384_SHA_256
	select PSA_ACCEL_ECDSA_SECP_R1_384_SHA_384 if PSA_WANT_ALG_SHA_384
	select PSA_ACCEL_ECDSA_SECP_R1_384_SHA_512 if PSA_WANT_ALG_SHA_512
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA_BRAINPOOL_P_R1_256
	bool
	default y
	#TODO: Add all the accel symbols when available
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_BRAINPOOL_P_R1_256
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_RSA_PKCS1V15_SIGN
	bool
	default y
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_224
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_256
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_224
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_256
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_224
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_256
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_224 if HAS_HW_NRF_CC312
	select PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_RSA_KEY_SIZE_1024 || PSA_WANT_RSA_KEY_SIZE_1536 || \
		   PSA_WANT_RSA_KEY_SIZE_2048 || (PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)
	depends on PSA_WANT_ALG_RSA_PKCS1V15_SIGN
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_RSA_PSS
	bool
	default y
	select PSA_ACCEL_RSA_PSS_1024_SHA_224
	select PSA_ACCEL_RSA_PSS_1024_SHA_256
	select PSA_ACCEL_RSA_PSS_1536_SHA_224
	select PSA_ACCEL_RSA_PSS_1536_SHA_256
	select PSA_ACCEL_RSA_PSS_2048_SHA_224
	select PSA_ACCEL_RSA_PSS_2048_SHA_256
	select PSA_ACCEL_RSA_PSS_3072_SHA_224 if HAS_HW_NRF_CC312
	select PSA_ACCEL_RSA_PSS_3072_SHA_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_RSA_KEY_SIZE_1024 || PSA_WANT_RSA_KEY_SIZE_1536 || \
		   PSA_WANT_RSA_KEY_SIZE_2048 || (PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)
	depends on PSA_WANT_ALG_RSA_PSS
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255
	bool
	default y
	select PSA_ACCEL_PURE_EDDSA_TWISTED_EDWARDS_255
	depends on PSA_WANT_ALG_PURE_EDDSA
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_ECDSA_SECP_R1_192        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_R1_224        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_R1_256        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_R1_384        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_K1_192        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_K1_224        || \
		   PSA_NEED_CC3XX_ECDSA_SECP_K1_256        || \
		   PSA_NEED_CC3XX_ECDSA_BRAINPOOL_P_R1_256 || \
		   PSA_NEED_CC3XX_RSA_PKCS1V15_SIGN        || \
		   PSA_NEED_CC3XX_RSA_PSS                  || \
		   PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255

# CC3xx Asymmetric Encryption Driver

config PSA_NEED_CC3XX_RSA_OAEP
	bool
	default y
	select PSA_ACCEL_RSA_OAEP_1024_SHA_224
	select PSA_ACCEL_RSA_OAEP_1024_SHA_256
	select PSA_ACCEL_RSA_OAEP_1536_SHA_224
	select PSA_ACCEL_RSA_OAEP_1536_SHA_256
	select PSA_ACCEL_RSA_OAEP_2048_SHA_224
	select PSA_ACCEL_RSA_OAEP_2048_SHA_256
	select PSA_ACCEL_RSA_OAEP_3072_SHA_224 if HAS_HW_NRF_CC312
	select PSA_ACCEL_RSA_OAEP_3072_SHA_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_RSA_KEY_SIZE_1024 || PSA_WANT_RSA_KEY_SIZE_1536 || \
		   PSA_WANT_RSA_KEY_SIZE_2048 || (PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)
	depends on PSA_WANT_ALG_RSA_OAEP
	depends on PSA_USE_CC3XX_ASYMMETRIC_ENCRYPTION_DRIVER

config PSA_NEED_CC3XX_RSA_PKCS1V15_CRYPT
	bool
	default y
	select PSA_ACCEL_RSA_PKCS1V15_CRYPT_1024
	select PSA_ACCEL_RSA_PKCS1V15_CRYPT_1536
	select PSA_ACCEL_RSA_PKCS1V15_CRYPT_2048
	select PSA_ACCEL_RSA_PKCS1V15_CRYPT_3072 if HAS_HW_NRF_CC312
	depends on PSA_WANT_RSA_KEY_SIZE_1024 || PSA_WANT_RSA_KEY_SIZE_1536 || \
		   PSA_WANT_RSA_KEY_SIZE_2048 || (PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)
	depends on PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
	depends on PSA_USE_CC3XX_ASYMMETRIC_ENCRYPTION_DRIVER

config PSA_NEED_CC3XX_ASYMMETRIC_ENCRYPTION_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_RSA_OAEP || PSA_NEED_CC3XX_RSA_PKCS1V15_CRYPT

# CC3xx Hash Driver

config PSA_NEED_CC3XX_SHA_1
	bool
	default y
	select PSA_ACCEL_SHA_1
	depends on PSA_WANT_ALG_SHA_1
	depends on PSA_USE_CC3XX_HASH_DRIVER

config PSA_NEED_CC3XX_SHA_224
	bool
	default y
	select PSA_ACCEL_SHA_224
	depends on PSA_WANT_ALG_SHA_224
	depends on PSA_USE_CC3XX_HASH_DRIVER

config PSA_NEED_CC3XX_SHA_256
	bool
	default y
	select PSA_ACCEL_SHA_256
	depends on PSA_WANT_ALG_SHA_256
	depends on PSA_USE_CC3XX_HASH_DRIVER

config PSA_NEED_CC3XX_HASH_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_SHA_1   || \
		   PSA_NEED_CC3XX_SHA_224 || \
		   PSA_NEED_CC3XX_SHA_256

# CC3xx Key Generation Driver
config PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY
	bool
	default y
	select PSA_ACCEL_KEY_TYPE_RSA_1024_KEY_PAIR_EXPORT
	select PSA_ACCEL_KEY_TYPE_RSA_1024_KEY_PAIR_IMPORT
	select PSA_ACCEL_KEY_TYPE_RSA_1024_PUBLIC_KEY
	select PSA_ACCEL_KEY_TYPE_RSA_1536_KEY_PAIR_EXPORT
	select PSA_ACCEL_KEY_TYPE_RSA_1536_KEY_PAIR_IMPORT
	select PSA_ACCEL_KEY_TYPE_RSA_1536_PUBLIC_KEY
	select PSA_ACCEL_KEY_TYPE_RSA_2048_KEY_PAIR_EXPORT
	select PSA_ACCEL_KEY_TYPE_RSA_2048_KEY_PAIR_IMPORT
	select PSA_ACCEL_KEY_TYPE_RSA_2048_PUBLIC_KEY
	select PSA_ACCEL_KEY_TYPE_RSA_3072_KEY_PAIR_EXPORT if HAS_HW_NRF_CC312
	select PSA_ACCEL_KEY_TYPE_RSA_3072_KEY_PAIR_IMPORT if HAS_HW_NRF_CC312
	select PSA_ACCEL_KEY_TYPE_RSA_3072_PUBLIC_KEY if HAS_HW_NRF_CC312
	depends on PSA_USE_CC3XX_KEY_MANAGEMENT_DRIVER
	depends on PSA_WANT_RSA_KEY_SIZE_1024 || \
		PSA_WANT_RSA_KEY_SIZE_2048 || \
		(PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)

config PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY
	bool
	default y
	# R1 192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_192
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_192
	# R1 224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_224
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224
	# R1 256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256
	# R1 384
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_384
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384
	# K1 192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_K1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_K1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_K1_192
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_K1_192
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_K1_192
	# K1 224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_K1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_K1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_K1_224
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_K1_224
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_K1_224
	# K1 256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_K1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_K1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_K1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_K1_256
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_K1_256
	# Twisted edwards 255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_255
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255
	# Montgomery 255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_255
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255
	# Brainpool 256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_BRAINPOOL_P_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_BRAINPOOL_P_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_BRAINPOOL_P_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_BRAINPOOL_P_R1_256
	select PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_BRAINPOOL_P_R1_256
	# Depends
	depends on PSA_WANT_ECC_SECP_R1_192      || \
			PSA_WANT_ECC_SECP_R1_224         || \
			PSA_WANT_ECC_SECP_R1_256         || \
			PSA_WANT_ECC_SECP_R1_384         || \
			PSA_WANT_ECC_SECP_K1_192         || \
			PSA_WANT_ECC_SECP_K1_224         || \
			PSA_WANT_ECC_SECP_K1_256         || \
			PSA_WANT_ECC_MONTGOMERY_255      || \
			PSA_WANT_ECC_TWISTED_EDWARDS_255 || \
			PSA_WANT_ECC_BRAINPOOL_P_R1_256
	depends on PSA_USE_CC3XX_KEY_MANAGEMENT_DRIVER

config PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY || \
			PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY

# CC3xx MAC Driver

config PSA_NEED_CC3XX_HMAC
	bool
	default y
	select PSA_ACCEL_HMAC_SHA_1
	select PSA_ACCEL_HMAC_SHA_224
	select PSA_ACCEL_HMAC_SHA_256
	depends on PSA_WANT_ALG_HMAC
	depends on PSA_USE_CC3XX_MAC_DRIVER

config PSA_NEED_CC3XX_CMAC
	bool
	default y
	select PSA_ACCEL_CMAC_AES_128
	select PSA_ACCEL_CMAC_AES_192 if HAS_HW_NRF_CC312
	select PSA_ACCEL_CMAC_AES_256 if HAS_HW_NRF_CC312
	depends on PSA_WANT_ALG_CMAC
	depends on PSA_USE_CC3XX_MAC_DRIVER

config PSA_NEED_CC3XX_MAC_DRIVER
	bool
	default y
	depends on PSA_NEED_CC3XX_HMAC || PSA_NEED_CC3XX_CMAC

# CC3xx Entropy Driver

config PSA_NEED_CC3XX_CTR_DRBG_DRIVER
	bool
	default y
	select PSA_ACCEL_GENERATE_RANDOM
	depends on PSA_USE_CTR_DRBG_DRIVER
	depends on PSA_USE_CC3XX_CTR_DRBG_DRIVER

config PSA_NEED_CC3XX_HMAC_DRBG_DRIVER
	bool
	default y
	select PSA_ACCEL_GENERATE_RANDOM
	depends on PSA_USE_HMAC_DRBG_DRIVER
	depends on PSA_USE_CC3XX_HMAC_DRBG_DRIVER

endmenu
