nRF5340 CC312 RSA 2048 psa_asymmetric_encrypt PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256) Error Issue

You are trying to perform RSA encryption using CC312 on the nRF5340, but the function:

status = psa_asymmetric_encrypt(pub_key_handle,
                                PSA_ALG_RSA_OAEP(PSA_ALG_SHA_256),
                                plainData,
                                plainDataLength,
                                NULL,  // Set label to NULL
                                0,     // Set label length to 0
                                encDataOut,
                                *encDataLen,
                                &outputLength);

returns -147 (PSA_ERROR_NOT_SUPPORTED) when CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y and CONFIG_PSA_CRYPTO_DRIVER_OBERON=n.

However, when CONFIG_PSA_CRYPTO_DRIVER_OBERON=y and CONFIG_PSA_CRYPTO_DRIVER_CC3XX=n, the function works correctly.

board.conf

#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
# Using Oberon software crypto
CONFIG_PSA_CRYPTO_DRIVER_OBERON=y
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=n

# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=20480

prj.conf

#
# Copyright (c) 2024 Nordic Semiconductor ASA
#
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
#
CONFIG_MAIN_STACK_SIZE=20480
CONFIG_HEAP_MEM_POOL_SIZE=20480

# 로깅 Config 시작
CONFIG_LOG=y
CONFIG_USE_SEGGER_RTT=y
CONFIG_LOG_BACKEND_RTT=y
CONFIG_LOG_BACKEND_UART=n
CONFIG_LOG_BUFFER_SIZE=2048
CONFIG_LOG_PRINTK=n
CONFIG_LOG_MODE_DEFERRED=y
CONFIG_LOG_PROCESS_THREAD=y
# 로깅 Config 종료

# Config Clock Control 시작
CONFIG_SOC_ENABLE_LFXO=n

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC=y

CONFIG_CLOCK_CONTROL_NRF_K32SRC_RC_CALIBRATION=y

CONFIG_CLOCK_CONTROL_NRF_K32SRC_500PPM=y
# Config Clock Control 종료

# Enable nordic security backend and PSA APIs
CONFIG_NRF_SECURITY=y
CONFIG_MBEDTLS_PSA_CRYPTO_C=y
CONFIG_PSA_WANT_GENERATE_RANDOM=y

# CONFIG_PSA_USE_CC3XX_KEY_MANAGEMENT_DRIVER=y

CONFIG_PSA_WANT_ALG_RSA_PKCS1V15_SIGN=y
CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_IMPORT=y
CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_EXPORT=y
CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_GENERATE=y
CONFIG_PSA_WANT_KEY_TYPE_RSA_KEY_PAIR_DERIVE=y

CONFIG_PSA_WANT_KEY_TYPE_RSA_PUBLIC_KEY=y

# CONFIG_PSA_USE_CC3XX_ASYMMETRIC_ENCRYPTION_DRIVER=y
CONFIG_PSA_WANT_ALG_RSA_OAEP=y

# CONFIG_PSA_USE_CC3XX_HASH_DRIVER=y
CONFIG_PSA_WANT_ALG_SHA_256=y

# This samples source code explicitly uses an RSA key size of 4096
# CONFIG_PSA_WANT_RSA_KEY_SIZE_4096=n
CONFIG_PSA_WANT_RSA_KEY_SIZE_2048=y


Related