#
# Copyright (c) 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 Oberon - invisible"
visible if 0

if PSA_CRYPTO_DRIVER_OBERON

# Oberon AEAD driver

config PSA_NEED_OBERON_CCM_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_CCM
	depends on PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CCM_AES_128 || \
		   PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CCM_AES_192 || \
		   PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CCM_AES_256

config PSA_NEED_OBERON_GCM_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_GCM
	depends on PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_GCM_AES_128 || \
		   PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_GCM_AES_192 || \
		   PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_GCM_AES_256

config PSA_NEED_OBERON_CHACHA20_POLY1305
	bool
	default y
	depends on PSA_WANT_ALG_CHACHA20_POLY1305 && !PSA_ACCEL_CHACHA20_POLY1305

config PSA_NEED_OBERON_AEAD_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_CCM_AES || \
		   PSA_NEED_OBERON_GCM_AES || \
		   PSA_NEED_OBERON_CHACHA20_POLY1305

# Oberon Cipher Driver

config PSA_NEED_OBERON_CTR_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_CTR
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CTR_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CTR_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CTR_AES_256)

config PSA_NEED_OBERON_CBC_NO_PADDING_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_CBC_NO_PADDING
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CBC_NO_PADDING_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CBC_NO_PADDING_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CBC_NO_PADDING_AES_256)

config PSA_NEED_OBERON_CBC_PKCS7_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_CBC_PKCS7
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CBC_PKCS7_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CBC_PKCS7_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CBC_PKCS7_AES_256)

config PSA_NEED_OBERON_ECB_NO_PADDING_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_ECB_NO_PADDING
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_ECB_NO_PADDING_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_ECB_NO_PADDING_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_ECB_NO_PADDING_AES_256)

config PSA_NEED_OBERON_CCM_STAR_NO_TAG_AES
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_AES
	depends on PSA_WANT_ALG_CCM_STAR_NO_TAG
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CCM_STAR_NO_TAG_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CCM_STAR_NO_TAG_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CCM_STAR_NO_TAG_AES_256)

config PSA_NEED_OBERON_STREAM_CIPHER_CHACHA20
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_CHACHA20
	depends on PSA_WANT_ALG_STREAM_CIPHER
	depends on !PSA_ACCEL_STREAM_CIPHER_CHACHA20

config PSA_NEED_OBERON_CIPHER_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_CTR_AES              || \
		   PSA_NEED_OBERON_CBC_PKCS7_AES        || \
		   PSA_NEED_OBERON_CBC_NO_PADDING_AES   || \
		   PSA_NEED_OBERON_ECB_NO_PADDING_AES   || \
		   PSA_NEED_OBERON_CCM_STAR_NO_TAG_AES  || \
		   PSA_NEED_OBERON_STREAM_CIPHER_CHACHA20

# Oberon ECDH driver

config PSA_NEED_OBERON_ECDH_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_224 && !PSA_ACCEL_ECDH_SECP_R1_224

config PSA_NEED_OBERON_ECDH_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_256 && !PSA_ACCEL_ECDH_SECP_R1_256

config PSA_NEED_OBERON_ECDH_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_384 && !PSA_ACCEL_ECDH_SECP_R1_384

config PSA_NEED_OBERON_ECDH_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_SECP_R1_521 && !PSA_ACCEL_ECDH_SECP_R1_521

config PSA_NEED_OBERON_ECDH_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_MONTGOMERY_255 && !PSA_ACCEL_ECDH_MONTGOMERY_255

config PSA_NEED_OBERON_ECDH_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ALG_ECDH
	depends on PSA_WANT_ECC_MONTGOMERY_448 && !PSA_ACCEL_ECDH_MONTGOMERY_448

config PSA_NEED_OBERON_ECDH
	bool
	default y
	depends on PSA_NEED_OBERON_ECDH_SECP_R1_224  || \
		   PSA_NEED_OBERON_ECDH_SECP_R1_256      || \
		   PSA_NEED_OBERON_ECDH_SECP_R1_384      || \
		   PSA_NEED_OBERON_ECDH_SECP_R1_521      || \
		   PSA_NEED_OBERON_ECDH_MONTGOMERY_255   || \
		   PSA_NEED_OBERON_ECDH_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_AGREEMENT_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_ECDH

# Oberon ECDSA driver

config PSA_NEED_OBERON_ECDSA_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA_1)    || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA_224)      || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA_256)      || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA_384)      || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA_512)      || \
		   (PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA3_224)    || \
		   (PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA3_256)    || \
		   (PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA3_384)    || \
		   (PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_ECDSA_SECP_R1_224_SHA3_512)

config PSA_NEED_OBERON_ECDSA_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA_224)     || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA_256)     || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA_384)     || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA_512)     || \
		   (PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA3_224)   || \
		   (PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA3_256)   || \
		   (PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA3_384)   || \
		   (PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_ECDSA_SECP_R1_256_SHA3_512)

config PSA_NEED_OBERON_ECDSA_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA_224)     || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA_256)     || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA_384)     || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA_512)     || \
		   (PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA3_224)   || \
		   (PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA3_256)   || \
		   (PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA3_384)   || \
		   (PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_ECDSA_SECP_R1_384_SHA3_512)

config PSA_NEED_OBERON_ECDSA_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ALG_ECDSA || PSA_WANT_ALG_DETERMINISTIC_ECDSA
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA_224)     || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA_256)     || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA_384)     || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA_512)     || \
		   (PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA3_224)   || \
		   (PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA3_256)   || \
		   (PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA3_384)   || \
		   (PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_ECDSA_SECP_R1_521_SHA3_512)

config PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ALG_PURE_EDDSA && !PSA_ACCEL_PURE_EDDSA_TWISTED_EDWARDS_255
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255

config PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ALG_PURE_EDDSA && !PSA_ACCEL_PURE_EDDSA_TWISTED_EDWARDS_448
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_ED25519PH
	bool
	default y
	depends on PSA_WANT_ALG_ED25519PH && !PSA_ACCEL_ED25519PH

config PSA_NEED_OBERON_ED448PH
	bool
	default y
	depends on PSA_WANT_ALG_ED448PH && !PSA_ACCEL_ED448PH

config PSA_NEED_OBERON_ECDSA_VERIFY
	bool
	default y
	depends on PSA_NEED_OBERON_ECDSA_SECP_R1_224          || \
		   PSA_NEED_OBERON_ECDSA_SECP_R1_256              || \
		   PSA_NEED_OBERON_ECDSA_SECP_R1_384              || \
		   PSA_NEED_OBERON_ECDSA_SECP_R1_521              || \
		   PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_255 || \
		   PSA_NEED_OBERON_PURE_EDDSA_TWISTED_EDWARDS_448 || \
		   PSA_NEED_OBERON_ED25519PH                      || \
		   PSA_NEED_OBERON_ED448PH

config PSA_NEED_OBERON_ECDSA_SIGN
	bool
	default y
	depends on PSA_NEED_OBERON_ECDSA_VERIFY
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC

config PSA_NEED_OBERON_ECDSA_DETERMINISTIC
	bool
	default y
	depends on PSA_NEED_OBERON_ECDSA_VERIFY
	depends on PSA_WANT_ALG_DETERMINISTIC_ECDSA

config PSA_NEED_OBERON_ECDSA_RANDOMIZED
	bool
	default y
	depends on PSA_NEED_OBERON_ECDSA_VERIFY
	depends on PSA_WANT_ALG_ECDSA

# Oberon Hash Driver

config PSA_NEED_OBERON_SHA_1
	bool
	default y
	depends on PSA_WANT_ALG_SHA_1 && !PSA_ACCEL_SHA_1

config PSA_NEED_OBERON_SHA_224
	bool
	default y
	depends on PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_SHA_224

config PSA_NEED_OBERON_SHA_256
	bool
	default y
	depends on PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_SHA_256

config PSA_NEED_OBERON_SHA_384
	bool
	default y
	depends on PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_SHA_384

config PSA_NEED_OBERON_SHA_512
	bool
	default y
	depends on PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_SHA_512

config PSA_NEED_OBERON_SHA3_224
	bool
	default y
	depends on PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_SHA3_224

config PSA_NEED_OBERON_SHA3_256
	bool
	default y
	depends on PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_SHA3_256

config PSA_NEED_OBERON_SHA3_384
	bool
	default y
	depends on PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_SHA3_384

config PSA_NEED_OBERON_SHA3_512
	bool
	default y
	depends on PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_SHA3_512

config PSA_NEED_OBERON_SHA3
	bool
	default y
	depends on PSA_NEED_OBERON_SHA3_224 || \
			   PSA_NEED_OBERON_SHA3_256 || \
			   PSA_NEED_OBERON_SHA3_384 || \
			   PSA_NEED_OBERON_SHA3_512

config PSA_NEED_OBERON_SHAKE256_512
	bool
	default y
	depends on PSA_WANT_ALG_SHAKE256_512 && !PSA_ACCEL_SHAKE256_512

config PSA_NEED_OBERON_SHAKE
	bool
	default y
	depends on PSA_NEED_OBERON_SHAKE256_512

config PSA_NEED_OBERON_HASH_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_SHA_1   || \
		   PSA_NEED_OBERON_SHA_224 || \
		   PSA_NEED_OBERON_SHA_256 || \
		   PSA_NEED_OBERON_SHA_384 || \
		   PSA_NEED_OBERON_SHA_512 || \
		   PSA_NEED_OBERON_SHA3    || \
		   PSA_NEED_OBERON_SHAKE

# Oberon Key Pair Driver

# SECP_R1_224
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_224
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_224
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_224

# SECP_R1_256
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_256

# SECP_R1_384
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_384
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_384
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_384

# SECP_R1_521
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_521
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_521
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_521

# MONTGOMERY_255
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_255
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_255

# MONTGOMERY_448
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_448
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_448
	bool
	default y
	depends on PSA_WANT_ECC_MONTGOMERY_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_448

# TWISTED_EDWARDS_255
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_255
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_255
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_255

# TWISTED_EDWARDS_448
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_448
	bool
	default y
	depends on PSA_WANT_ECC_TWISTED_EDWARDS_448
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_448

#SPAKE2P
config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_SPAKE2P_PUBLIC_KEY_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ECC_SECP_R1_256
	depends on PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE && !PSA_ACCEL_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE_SECP_R1_256

# SRP6
config PSA_NEED_OBERON_KEY_TYPE_SRP_6_PUBLIC_KEY_3072
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_SRP_PUBLIC_KEY && !PSA_ACCEL_KEY_TYPE_SRP_6_PUBLIC_KEY_3072

config PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_IMPORT_3072
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_SRP_KEY_PAIR_IMPORT && !PSA_ACCEL_KEY_TYPE_SRP_6_KEY_PAIR_IMPORT_3072

config PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_EXPORT_3072
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_SRP_KEY_PAIR_EXPORT && !PSA_ACCEL_KEY_TYPE_SRP_6_KEY_PAIR_EXPORT_3072

# Key management grouping configs
# SECP
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_224 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_256    || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_384    || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_224 || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_256        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_384        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_224 || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_256        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_384        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_224 || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_256        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_384        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP_R1_521

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_224 || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_256        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_384        || \
		PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP_R1_521

# MONTGOMERY
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY_448

# TWISTED_EDWARDS
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS_448

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_255 || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS_448

# SPAKE2P
config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT_SECP_R1_256

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE_SECP
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE_SECP_R1_256

# SRP6
config PSA_NEED_OBERON_KEY_TYPE_SRP_6_PUBLIC_KEY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SRP_6_PUBLIC_KEY_3072

config PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_IMPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_IMPORT_3072

config PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_EXPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_EXPORT_3072

# Combined ECC keys
config PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_SECP    || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_MONTGOMERY || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY_TWISTED_EDWARDS

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_SECP         || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_MONTGOMERY      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT_TWISTED_EDWARDS

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_SECP         || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_MONTGOMERY      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT_TWISTED_EDWARDS

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_SECP         || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_MONTGOMERY      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE_TWISTED_EDWARDS

config PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_SECP         || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_MONTGOMERY      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE_TWISTED_EDWARDS

# SPAKE2P
config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY_SECP

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT_SECP

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT_SECP

config PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE_SECP

# RSA key types
config PSA_NEED_OBERON_KEY_TYPE_RSA_PUBLIC_KEY
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
	depends on (PSA_WANT_RSA_KEY_SIZE_1024 && !PSA_ACCEL_KEY_TYPE_RSA_1024_PUBLIC_KEY) || \
			   (PSA_WANT_RSA_KEY_SIZE_1536 && !PSA_ACCEL_KEY_TYPE_RSA_1536_PUBLIC_KEY) || \
			   (PSA_WANT_RSA_KEY_SIZE_2048 && !PSA_ACCEL_KEY_TYPE_RSA_2048_PUBLIC_KEY) || \
			   (PSA_WANT_RSA_KEY_SIZE_3072 && !PSA_ACCEL_KEY_TYPE_RSA_3072_PUBLIC_KEY) || \
			   PSA_WANT_RSA_KEY_SIZE_4096 || \
			   PSA_WANT_RSA_KEY_SIZE_6144 || \
			   PSA_WANT_RSA_KEY_SIZE_8192


config PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_IMPORT
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT
	depends on (PSA_WANT_RSA_KEY_SIZE_1024 && !PSA_ACCEL_KEY_TYPE_RSA_1024_KEY_PAIR_IMPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_1536 && !PSA_ACCEL_KEY_TYPE_RSA_1536_KEY_PAIR_IMPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_2048 && !PSA_ACCEL_KEY_TYPE_RSA_2048_KEY_PAIR_IMPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_3072 && !PSA_ACCEL_KEY_TYPE_RSA_3072_KEY_PAIR_IMPORT) || \
			   PSA_WANT_RSA_KEY_SIZE_4096 || \
			   PSA_WANT_RSA_KEY_SIZE_6144 || \
			   PSA_WANT_RSA_KEY_SIZE_8192

config PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_EXPORT
	bool
	default y
	depends on PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT
	depends on (PSA_WANT_RSA_KEY_SIZE_1024 && !PSA_ACCEL_KEY_TYPE_RSA_1024_KEY_PAIR_EXPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_1536 && !PSA_ACCEL_KEY_TYPE_RSA_1536_KEY_PAIR_EXPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_2048 && !PSA_ACCEL_KEY_TYPE_RSA_2048_KEY_PAIR_EXPORT) || \
			   (PSA_WANT_RSA_KEY_SIZE_3072 && !PSA_ACCEL_KEY_TYPE_RSA_3072_KEY_PAIR_EXPORT) || \
			   PSA_WANT_RSA_KEY_SIZE_4096 || \
			   PSA_WANT_RSA_KEY_SIZE_6144 || \
			   PSA_WANT_RSA_KEY_SIZE_8192

config PSA_NEED_OBERON_KEY_MANAGEMENT_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_KEY_TYPE_ECC_PUBLIC_KEY                || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_IMPORT      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_EXPORT      || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_GENERATE    || \
			PSA_NEED_OBERON_KEY_TYPE_ECC_KEY_PAIR_DERIVE      || \
			PSA_NEED_OBERON_KEY_TYPE_RSA_PUBLIC_KEY           || \
			PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_IMPORT  || \
			PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_EXPORT  || \
			PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_KEY_PAIR_DERIVE  || \
			PSA_NEED_OBERON_KEY_TYPE_SRP_6_PUBLIC_KEY         || \
			PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_IMPORT    || \
			PSA_NEED_OBERON_KEY_TYPE_SRP_6_KEY_PAIR_EXPORT    || \
			PSA_NEED_OBERON_KEY_TYPE_SPAKE2P_PUBLIC_KEY       || \
			PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_IMPORT      || \
			PSA_NEED_OBERON_KEY_TYPE_RSA_KEY_PAIR_EXPORT

# Oberon MAC Driver

config PSA_NEED_OBERON_HMAC
	bool
	default y
	depends on PSA_WANT_ALG_HMAC
	depends on (PSA_WANT_ALG_SHA_1 && !PSA_ACCEL_HMAC_SHA_1)     || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_HMAC_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_HMAC_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_HMAC_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_HMAC_SHA_512)

config PSA_NEED_OBERON_CMAC
	bool
	default y
	depends on PSA_WANT_ALG_CMAC
	depends on (PSA_WANT_AES_KEY_SIZE_128 && !PSA_ACCEL_CMAC_AES_128) || \
		   (PSA_WANT_AES_KEY_SIZE_192 && !PSA_ACCEL_CMAC_AES_192) || \
		   (PSA_WANT_AES_KEY_SIZE_256 && !PSA_ACCEL_CMAC_AES_256)

config PSA_NEED_OBERON_MAC_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_CMAC || PSA_NEED_OBERON_HMAC

# Oberon KDF Driver

config PSA_NEED_OBERON_HKDF
	bool
	default y
	depends on PSA_WANT_ALG_HKDF
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_HKDF_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_HKDF_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_HKDF_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_HKDF_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_HKDF_SHA_512)

config PSA_NEED_OBERON_HKDF_EXTRACT
	bool
	default y
	depends on PSA_WANT_ALG_HKDF_EXTRACT
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_HKDF_EXTRACT_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_HKDF_EXTRACT_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_HKDF_EXTRACT_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_HKDF_EXTRACT_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_HKDF_EXTRACT_SHA_512)

config PSA_NEED_OBERON_HKDF_EXPAND
	bool
	default y
	depends on PSA_WANT_ALG_HKDF_EXPAND
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_HKDF_EXPAND_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_HKDF_EXPAND_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_HKDF_EXPAND_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_HKDF_EXPAND_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_HKDF_EXPAND_SHA_512)

config PSA_NEED_OBERON_TLS12_PRF
	bool
	default y
	depends on PSA_WANT_ALG_TLS12_PRF
	depends on (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_TLS12_PRF_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_TLS12_PRF_SHA_384)

config PSA_NEED_OBERON_TLS12_PSK_TO_MS
	bool
	default y
	depends on PSA_WANT_ALG_TLS12_PSK_TO_MS
	depends on (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_TLS12_PSK_TO_MS_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_TLS12_PSK_TO_MS_SHA_384)

config PSA_NEED_OBERON_PBKDF2_HMAC
	bool
	default y
	depends on PSA_WANT_ALG_PBKDF2_HMAC
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_PBKDF2_HMAC_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_PBKDF2_HMAC_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_PBKDF2_HMAC_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_PBKDF2_HMAC_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_PBKDF2_HMAC_SHA_512)

config PSA_NEED_OBERON_PBKDF2_AES_CMAC_PRF_128
	bool
	default y
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_PBKDF2_HMAC_SHA_1)   || \
		   (PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128 && !PSA_ACCEL_PBKDF2_AES_CMAC_PRF_128)

config PSA_NEED_OBERON_TLS12_ECJPAKE_TO_PMS
	bool
	default y
	depends on PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS && !PSA_ACCEL_TLS12_ECJPAKE_TO_PMS

config PSA_NEED_OBERON_SRP_PASSWORD_HASH
	bool
	default y
	depends on PSA_WANT_ALG_SRP_PASSWORD_HASH && !PSA_ACCEL_SRP_PASSWORD_HASH

config PSA_NEED_OBERON_KEY_DERIVATION_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_HKDF                 || \
		   PSA_NEED_OBERON_HKDF_EXTRACT             || \
		   PSA_NEED_OBERON_HKDF_EXPAND              || \
		   PSA_NEED_OBERON_TLS12_PRF                || \
		   PSA_NEED_OBERON_TLS12_PSK_TO_MS          || \
		   PSA_NEED_OBERON_PBKDF2_HMAC              || \
		   PSA_NEED_OBERON_PBKDF2_AES_CMAC_PRF_128  || \
		   PSA_NEED_OBERON_SRP_PASSWORD_HASH        || \
		   PSA_NEED_OBERON_TLS12_ECJPAKE_TO_PMS


# Oberon PAKE Driver

config PSA_NEED_OBERON_ECJPAKE_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_JPAKE
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_ECJPAKE_SECP_R1_256_SHA_512)

config PSA_NEED_OBERON_JPAKE
	bool
	default y
	depends on PSA_NEED_OBERON_ECJPAKE_SECP_R1_256

config PSA_NEED_OBERON_SPAKE2P_HMAC_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_SPAKE2P_HMAC
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_SPAKE2P_HMAC_SECP_R1_256_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_SPAKE2P_HMAC_SECP_R1_256_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_SPAKE2P_HMAC_SECP_R1_256_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_SPAKE2P_HMAC_SECP_R1_256_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_SPAKE2P_HMAC_SECP_R1_256_SHA_512)

config PSA_NEED_OBERON_SPAKE2P_CMAC_SECP_R1_256
	bool
	default y
	depends on PSA_WANT_ALG_SPAKE2P_CMAC
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_SPAKE2P_CMAC_SECP_R1_256_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_SPAKE2P_CMAC_SECP_R1_256_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_SPAKE2P_CMAC_SECP_R1_256_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_SPAKE2P_CMAC_SECP_R1_256_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_SPAKE2P_CMAC_SECP_R1_256_SHA_512)

config PSA_NEED_OBERON_SPAKE2P_MATTER
	bool
	default y
	depends on PSA_WANT_ALG_SPAKE2P_MATTER
	depends on (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_SPAKE2P_MATTER)

config PSA_NEED_OBERON_SPAKE2P
	bool
	default y
	depends on PSA_NEED_OBERON_SPAKE2P_HMAC_SECP_R1_256 || \
		PSA_NEED_OBERON_SPAKE2P_CMAC_SECP_R1_256    || \
		PSA_NEED_OBERON_SPAKE2P_MATTER

config PSA_NEED_OBERON_SRP_6_3072
	bool
	default y
	depends on PSA_WANT_ALG_SRP_6
	depends on (PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_SRP_6_3072_SHA_1)   || \
		   (PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_SRP_6_3072_SHA_224) || \
		   (PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_SRP_6_3072_SHA_256) || \
		   (PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_SRP_6_3072_SHA_384) || \
		   (PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_SRP_6_3072_SHA_512)

config PSA_NEED_OBERON_SRP_6
	bool
	default y
	depends on PSA_NEED_OBERON_SRP_6_3072

config PSA_NEED_OBERON_PAKE_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_JPAKE || \
		   PSA_NEED_OBERON_SPAKE2P || \
		   PSA_NEED_OBERON_SRP_6

# Oberon RSA Driver

config PSA_NEED_OBERON_RSA_KEY_SIZE_1024
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_1024
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_1024)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_1024_SHA_1)             || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_1024_SHA_224)           || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_1024_SHA_256)           || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_1024_SHA_384)           || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_1024_SHA_512)           || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_1024_SHA3_224)          || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_1024_SHA3_256)          || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_1024_SHA3_384)          || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_1024_SHA3_512)))        || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_1024_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_1024_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_1024_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_1024_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_1024_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_1024_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_1024_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_1024_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_1024_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                      \
			(PSA_WANT_ALG_SHA_1   && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_1)     || \
			(PSA_WANT_ALG_SHA_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_224)   || \
			(PSA_WANT_ALG_SHA_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_256)   || \
			(PSA_WANT_ALG_SHA_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_384)   || \
			(PSA_WANT_ALG_SHA_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA_512)   || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA3_224) || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA3_256) || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA3_384) || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1024_SHA3_512)))

config PSA_NEED_OBERON_RSA_KEY_SIZE_1536
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_1536
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_1536)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_1536_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_1536_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_1536_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_1536_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_1536_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_1536_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_1536_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_1536_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_1536_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_1536_SHA_1)               || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_1536_SHA_224)             || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_1536_SHA_256)             || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_1536_SHA_384)             || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_1536_SHA_512)             || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_1536_SHA3_224)            || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_1536_SHA3_256)            || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_1536_SHA3_384)            || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_1536_SHA3_512)))          || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                       \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_1)     || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_224)   || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_256)   || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_384)   || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA_512)   || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA3_224)  || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA3_256)  || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA3_384)  || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_1536_SHA3_512)))

config PSA_NEED_OBERON_RSA_KEY_SIZE_2048
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_2048
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_2048)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_2048_SHA_1)             || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_2048_SHA_224)           || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_2048_SHA_256)           || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_2048_SHA_384)           || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_2048_SHA_512)           || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_2048_SHA3_224)          || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_2048_SHA3_256)          || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_2048_SHA3_384)          || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_2048_SHA3_512)))        || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_2048_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_2048_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_2048_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_2048_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_2048_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_2048_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_2048_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_2048_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_2048_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                      \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_1)    || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_224)  || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_256)  || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_384)  || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA_512)  || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA3_224) || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA3_256) || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA3_384) || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_2048_SHA3_512)))

config PSA_NEED_OBERON_RSA_KEY_SIZE_3072
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_3072
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_3072)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_3072_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_3072_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_3072_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_3072_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_3072_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_3072_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_3072_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_3072_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_3072_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_3072_SHA_1)               || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_3072_SHA_224)             || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_3072_SHA_256)             || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_3072_SHA_384)             || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_3072_SHA_512)             || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_3072_SHA3_224)            || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_3072_SHA3_256)            || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_3072_SHA3_384)            || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_3072_SHA3_512)))          || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                       \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_1)     || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_224)   || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_256)   || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_384)   || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA_512)   || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA3_224)  || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA3_256)  || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA3_384)  || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_3072_SHA3_512)))


config PSA_NEED_OBERON_RSA_KEY_SIZE_4096
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_4096
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_4096)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_4096_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_4096_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_4096_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_4096_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_4096_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_4096_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_4096_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_4096_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_4096_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_4096_SHA_1)               || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_4096_SHA_224)             || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_4096_SHA_256)             || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_4096_SHA_384)             || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_4096_SHA_512)             || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_4096_SHA3_224)            || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_4096_SHA3_256)            || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_4096_SHA3_384)            || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_4096_SHA3_512)))          || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                       \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA_1)     || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA_224)   || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA_256)   || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA_384)   || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA_512)   || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA3_224)  || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA3_256)  || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA3_384)  || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_4096_SHA3_512)))

config PSA_NEED_OBERON_RSA_KEY_SIZE_6144
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_6144
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_6144)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                               \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_6144_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_6144_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_6144_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_6144_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_6144_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_6144_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_6144_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_6144_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_6144_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PSS && (                                                 \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_6144_SHA_1)               || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_6144_SHA_224)             || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_6144_SHA_256)             || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_6144_SHA_384)             || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_6144_SHA_512)             || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_6144_SHA3_224)            || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_6144_SHA3_256)            || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_6144_SHA3_384)            || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_6144_SHA3_512)))          || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                       \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA_1)     || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA_224)   || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA_256)   || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA_384)   || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA_512)   || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA3_224)  || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA3_256)  || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA3_384)  || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_6144_SHA3_512)))

config PSA_NEED_OBERON_RSA_KEY_SIZE_8192
	bool
	default y
	depends on PSA_WANT_RSA_KEY_SIZE_8192
	depends on (PSA_WANT_ALG_RSA_PKCS1V15_CRYPT && !PSA_ACCEL_RSA_PKCS1V15_CRYPT_8192)  || \
		   (PSA_WANT_ALG_RSA_OAEP  && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_OAEP_8192_SHA_1)             || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_OAEP_8192_SHA_224)           || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_OAEP_8192_SHA_256)           || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_OAEP_8192_SHA_384)           || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_OAEP_8192_SHA_512)           || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_OAEP_8192_SHA3_224)          || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_OAEP_8192_SHA3_256)          || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_OAEP_8192_SHA3_384)          || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_OAEP_8192_SHA3_512)))        || \
		   (PSA_WANT_ALG_RSA_PSS   && (                                              \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PSS_8192_SHA_1)              || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PSS_8192_SHA_224)            || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PSS_8192_SHA_256)            || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PSS_8192_SHA_384)            || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PSS_8192_SHA_512)            || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PSS_8192_SHA3_224)           || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PSS_8192_SHA3_256)           || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PSS_8192_SHA3_384)           || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PSS_8192_SHA3_512)))         || \
		   (PSA_WANT_ALG_RSA_PKCS1V15_SIGN && (                                      \
			(PSA_WANT_ALG_SHA_1    && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA_1)    || \
			(PSA_WANT_ALG_SHA_224  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA_224)  || \
			(PSA_WANT_ALG_SHA_256  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA_256)  || \
			(PSA_WANT_ALG_SHA_384  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA_384)  || \
			(PSA_WANT_ALG_SHA_512  && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA_512)  || \
			(PSA_WANT_ALG_SHA3_224 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA3_224) || \
			(PSA_WANT_ALG_SHA3_256 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA3_256) || \
			(PSA_WANT_ALG_SHA3_384 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA3_384) || \
			(PSA_WANT_ALG_SHA3_512 && !PSA_ACCEL_RSA_PKCS1V15_SIGN_8192_SHA3_512)))

config PSA_NEED_OBERON_ANY_RSA_KEY_SIZE
	bool
	default y
	depends on PSA_NEED_OBERON_RSA_KEY_SIZE_1024 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_1536 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_2048 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_3072 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_4096 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_6144 || \
		   PSA_NEED_OBERON_RSA_KEY_SIZE_8192

config PSA_NEED_OBERON_RSA_PSS
	bool
	default y
	depends on PSA_WANT_ALG_RSA_PSS
	depends on PSA_NEED_OBERON_ANY_RSA_KEY_SIZE

config PSA_NEED_OBERON_RSA_PKCS1V15_SIGN
	bool
	default y
	depends on PSA_WANT_ALG_RSA_PKCS1V15_SIGN
	depends on PSA_NEED_OBERON_ANY_RSA_KEY_SIZE

config PSA_NEED_OBERON_RSA_ANY_VERIFY
	bool
	default y
	depends on PSA_WANT_ALG_RSA_PSS || PSA_WANT_ALG_RSA_PKCS1V15_SIGN
	depends on PSA_NEED_OBERON_ANY_RSA_KEY_SIZE

config PSA_NEED_OBERON_RSA_ANY_SIGN
	bool
	default y
	depends on PSA_NEED_OBERON_RSA_ANY_VERIFY
	depends on PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC

config PSA_NEED_OBERON_RSA_PKCS1V15_CRYPT
	bool
	default y
	depends on PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
	depends on PSA_NEED_OBERON_ANY_RSA_KEY_SIZE

config PSA_NEED_OBERON_RSA_OAEP
	bool
	default y
	depends on PSA_WANT_ALG_RSA_OAEP
	depends on PSA_NEED_OBERON_ANY_RSA_KEY_SIZE

config PSA_NEED_OBERON_RSA_ANY_CRYPT
	bool
	default y
	depends on PSA_NEED_OBERON_RSA_PKCS1V15_CRYPT || PSA_NEED_OBERON_RSA_OAEP

config PSA_NEED_OBERON_ASYMMETRIC_ENCRYPTION_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_RSA_ANY_CRYPT

config PSA_NEED_OBERON_ASYMMETRIC_SIGNATURE_DRIVER
	bool
	default y
	depends on PSA_NEED_OBERON_ECDSA_VERIFY || \
			PSA_NEED_OBERON_RSA_ANY_VERIFY

# Oberon Random Driver

config PSA_NEED_OBERON_CTR_DRBG_DRIVER
	bool
	default y
	depends on PSA_ACCEL_GET_ENTROPY
	depends on PSA_USE_CTR_DRBG_DRIVER && !PSA_ACCEL_GENERATE_RANDOM
	select PSA_WANT_ALG_ECB_NO_PADDING
	select PSA_WANT_KEY_TYPE_AES

config PSA_NEED_OBERON_HMAC_DRBG_DRIVER
	bool
	default y
	depends on PSA_ACCEL_GET_ENTROPY
	depends on PSA_USE_HMAC_DRBG_DRIVER && !PSA_ACCEL_GENERATE_RANDOM

endif # PSA_CRYPTO_DRIVER_OBERON
endmenu
