# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0

# This file was automatically generated by create_psa_files.py
# from: ../../../modules/crypto/mbedtls/include/psa/crypto_config.h.
# Do not edit it manually.

config PSA_CRYPTO_CLIENT
	bool
	help
	  Promptless symbol to state that there is a PSA crypto API provider
	  enabled in the system. This allows to select desired PSA_WANT features.

if PSA_CRYPTO_CLIENT

config PSA_CRYPTO_ENABLE_ALL
	bool "All PSA crypto features"

config PSA_WANT_ALG_CBC_NO_PADDING
	bool "PSA_WANT_ALG_CBC_NO_PADDING" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CBC_PKCS7
	bool "PSA_WANT_ALG_CBC_PKCS7" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CCM
	bool "PSA_WANT_ALG_CCM" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CCM_STAR_NO_TAG
	bool "PSA_WANT_ALG_CCM_STAR_NO_TAG" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CMAC
	bool "PSA_WANT_ALG_CMAC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CFB
	bool "PSA_WANT_ALG_CFB" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CHACHA20_POLY1305
	bool "PSA_WANT_ALG_CHACHA20_POLY1305" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_CTR
	bool "PSA_WANT_ALG_CTR" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_DETERMINISTIC_ECDSA
	bool "PSA_WANT_ALG_DETERMINISTIC_ECDSA" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_ECB_NO_PADDING
	bool "PSA_WANT_ALG_ECB_NO_PADDING" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_ECDH
	bool "PSA_WANT_ALG_ECDH" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_FFDH
	bool "PSA_WANT_ALG_FFDH" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_ECDSA
	bool "PSA_WANT_ALG_ECDSA" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_JPAKE
	bool "PSA_WANT_ALG_JPAKE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_GCM
	bool "PSA_WANT_ALG_GCM" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_HKDF
	bool "PSA_WANT_ALG_HKDF" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_HKDF_EXTRACT
	bool "PSA_WANT_ALG_HKDF_EXTRACT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_HKDF_EXPAND
	bool "PSA_WANT_ALG_HKDF_EXPAND" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_HMAC
	bool "PSA_WANT_ALG_HMAC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_MD5
	bool "PSA_WANT_ALG_MD5" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_OFB
	bool "PSA_WANT_ALG_OFB" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_PBKDF2_HMAC
	bool "PSA_WANT_ALG_PBKDF2_HMAC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128
	bool "PSA_WANT_ALG_PBKDF2_AES_CMAC_PRF_128" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_RIPEMD160
	bool "PSA_WANT_ALG_RIPEMD160" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_RSA_OAEP
	bool "PSA_WANT_ALG_RSA_OAEP" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_RSA_PKCS1V15_CRYPT
	bool "PSA_WANT_ALG_RSA_PKCS1V15_CRYPT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_RSA_PKCS1V15_SIGN
	bool "PSA_WANT_ALG_RSA_PKCS1V15_SIGN" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_RSA_PSS
	bool "PSA_WANT_ALG_RSA_PSS" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA_1
	bool "PSA_WANT_ALG_SHA_1" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA_224
	bool "PSA_WANT_ALG_SHA_224" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA_256
	bool "PSA_WANT_ALG_SHA_256" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA_384
	bool "PSA_WANT_ALG_SHA_384" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA_512
	bool "PSA_WANT_ALG_SHA_512" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA3_224
	bool "PSA_WANT_ALG_SHA3_224" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA3_256
	bool "PSA_WANT_ALG_SHA3_256" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA3_384
	bool "PSA_WANT_ALG_SHA3_384" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_SHA3_512
	bool "PSA_WANT_ALG_SHA3_512" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_STREAM_CIPHER
	bool "PSA_WANT_ALG_STREAM_CIPHER" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_TLS12_PRF
	bool "PSA_WANT_ALG_TLS12_PRF" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_TLS12_PSK_TO_MS
	bool "PSA_WANT_ALG_TLS12_PSK_TO_MS" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS
	bool "PSA_WANT_ALG_TLS12_ECJPAKE_TO_PMS" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_BRAINPOOL_P_R1_256
	bool "PSA_WANT_ECC_BRAINPOOL_P_R1_256" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_BRAINPOOL_P_R1_384
	bool "PSA_WANT_ECC_BRAINPOOL_P_R1_384" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_BRAINPOOL_P_R1_512
	bool "PSA_WANT_ECC_BRAINPOOL_P_R1_512" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_MONTGOMERY_255
	bool "PSA_WANT_ECC_MONTGOMERY_255" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_MONTGOMERY_448
	bool "PSA_WANT_ECC_MONTGOMERY_448" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_K1_192
	bool "PSA_WANT_ECC_SECP_K1_192" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_K1_256
	bool "PSA_WANT_ECC_SECP_K1_256" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_R1_192
	bool "PSA_WANT_ECC_SECP_R1_192" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_R1_224
	bool "PSA_WANT_ECC_SECP_R1_224" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_R1_256
	bool "PSA_WANT_ECC_SECP_R1_256" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_R1_384
	bool "PSA_WANT_ECC_SECP_R1_384" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_ECC_SECP_R1_521
	bool "PSA_WANT_ECC_SECP_R1_521" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_DH_RFC7919_2048
	bool "PSA_WANT_DH_RFC7919_2048" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_DH_RFC7919_3072
	bool "PSA_WANT_DH_RFC7919_3072" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_DH_RFC7919_4096
	bool "PSA_WANT_DH_RFC7919_4096" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_DH_RFC7919_6144
	bool "PSA_WANT_DH_RFC7919_6144" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_DH_RFC7919_8192
	bool "PSA_WANT_DH_RFC7919_8192" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DERIVE
	bool "PSA_WANT_KEY_TYPE_DERIVE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_PASSWORD
	bool "PSA_WANT_KEY_TYPE_PASSWORD" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_PASSWORD_HASH
	bool "PSA_WANT_KEY_TYPE_PASSWORD_HASH" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_HMAC
	bool "PSA_WANT_KEY_TYPE_HMAC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_AES
	bool "PSA_WANT_KEY_TYPE_AES" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ARIA
	bool "PSA_WANT_KEY_TYPE_ARIA" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_CAMELLIA
	bool "PSA_WANT_KEY_TYPE_CAMELLIA" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_CHACHA20
	bool "PSA_WANT_KEY_TYPE_CHACHA20" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DES
	bool "PSA_WANT_KEY_TYPE_DES" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY
	bool "PSA_WANT_KEY_TYPE_ECC_PUBLIC_KEY" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY
	bool "PSA_WANT_KEY_TYPE_DH_PUBLIC_KEY" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RAW_DATA
	bool "PSA_WANT_KEY_TYPE_RAW_DATA" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY
	bool "PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC
	bool "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_BASIC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT
	bool "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_IMPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT
	bool "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_EXPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE
	bool "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_GENERATE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE
	bool "PSA_WANT_KEY_TYPE_ECC_KEY_PAIR_DERIVE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC
	bool "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_BASIC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT
	bool "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT
	bool "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE
	bool "PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC
	bool "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_BASIC" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT
	bool "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_IMPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT
	bool "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_EXPORT" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

config PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE
	bool "PSA_WANT_KEY_TYPE_DH_KEY_PAIR_GENERATE" if !MBEDTLS_PROMPTLESS
	default y if PSA_CRYPTO_ENABLE_ALL

endif # PSA_CRYPTO_CLIENT
