Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf52840dk_nrf52840.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=6144
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf5340dk_nrf5340_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=6144
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf5340dk_nrf5340_cpuapp_ns.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@

# Using hardware crypto accelerator
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf54h20dk_nrf54h20_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ CONFIG_PSA_SSF_CRYPTO_CLIENT=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf54l15dk_nrf54l05_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
Comment thread
tomi-font marked this conversation as resolved.
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf54l15dk_nrf54l10_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf54l15dk_nrf54l15_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y

CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y

CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,5 @@
# Mbed TLS heap configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf7120dk_nrf7120_cpuapp.conf
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CRACEN=y
# Configure MbedTLS
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9151dk_nrf9151.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=6144
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9151dk_nrf9151_ns.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@

# Using hardware crypto accelerator
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9160dk_nrf9160.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=6144
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9160dk_nrf9160_ns.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@

# Using hardware crypto accelerator
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y

CONFIG_MAIN_STACK_SIZE=4096
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9161dk_nrf9161.conf
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,5 @@ CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y
# Mbedtls configuration
CONFIG_MBEDTLS_ENABLE_HEAP=y
CONFIG_MBEDTLS_HEAP_SIZE=8192

CONFIG_MAIN_STACK_SIZE=6144
2 changes: 2 additions & 0 deletions samples/crypto/ecdh/boards/nrf9161dk_nrf9161_ns.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@

# Using hardware crypto accelerator
CONFIG_PSA_CRYPTO_DRIVER_CC3XX=y

CONFIG_MAIN_STACK_SIZE=4096
1 change: 0 additions & 1 deletion samples/crypto/ecdh/prj.conf
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
# The Zephyr CMSIS emulation assumes that ticks are ms, currently
CONFIG_SYS_CLOCK_TICKS_PER_SEC=1000

CONFIG_MAIN_STACK_SIZE=4096
CONFIG_HEAP_MEM_POOL_SIZE=4096

# Enable logging
Expand Down
8 changes: 8 additions & 0 deletions subsys/nrf_security/cmake/psa_crypto_config.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -260,6 +260,14 @@ kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_HASH_DRIVER)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_MAC_DRIVER)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_KEY_TYPE_ECC_WEIERSTRASS)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_ECDH_WEIERSTRASS)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_ECDH_MONTGOMERY_255)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_ECDSA)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255)
kconfig_check_and_set_base_to_one(PSA_NEED_CC3XX_RSA_SIGN)


# Convert nrf_oberon driver configurations
Expand Down
8 changes: 8 additions & 0 deletions subsys/nrf_security/configs/psa_crypto_config.h.template
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,14 @@
#cmakedefine PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER @PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER@
#cmakedefine PSA_NEED_CC3XX_MAC_DRIVER @PSA_NEED_CC3XX_MAC_DRIVER@
#cmakedefine PSA_NEED_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER @PSA_NEED_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER@
#cmakedefine PSA_NEED_CC3XX_KEY_TYPE_ECC_WEIERSTRASS @PSA_NEED_CC3XX_KEY_TYPE_ECC_WEIERSTRASS@
#cmakedefine PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY @PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY@
#cmakedefine PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY @PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY@
#cmakedefine PSA_NEED_CC3XX_ECDH_WEIERSTRASS @PSA_NEED_CC3XX_ECDH_WEIERSTRASS@
#cmakedefine PSA_NEED_CC3XX_ECDH_MONTGOMERY_255 @PSA_NEED_CC3XX_ECDH_MONTGOMERY_255@
#cmakedefine PSA_NEED_CC3XX_ECDSA @PSA_NEED_CC3XX_ECDSA@
#cmakedefine PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255 @PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255@
#cmakedefine PSA_NEED_CC3XX_RSA_SIGN @PSA_NEED_CC3XX_RSA_SIGN@

/*
* nrf_oberon driver configurations
Expand Down
51 changes: 50 additions & 1 deletion subsys/nrf_security/src/drivers/nrf_cc3xx/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
#

# Get the include-folders from the imported CC3XX library
get_target_property(NRF_CC3XX_MBEDCRYPTO_INCLUDE_PATH
get_target_property(NRF_CC3XX_MBEDCRYPTO_INCLUDE_PATH
nrf_cc3xx_core_imported INTERFACE_INCLUDE_DIRECTORIES)

# Add nrf_cc3xx PSA Crypto Driver includes to psa_crypto_library_config
Expand All @@ -14,9 +14,58 @@ target_include_directories(psa_crypto_library_config
${NRF_CC3XX_MBEDCRYPTO_INCLUDE_PATH}
)

if(CONFIG_PSA_NEED_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER)
list(APPEND src_crypto_cc3xx
public_cc3xx_psa_asymmetric_signature.c
)
endif()

if(CONFIG_PSA_NEED_CC3XX_KEY_AGREEMENT_DRIVER)
list(APPEND src_crypto_cc3xx
public_cc3xx_psa_key_agreement.c
)
endif()

if(CONFIG_PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER)
list(APPEND src_crypto_cc3xx
public_cc3xx_psa_key_management.c
)
endif()

# Add the PSA crypto driver only if any of the source files are added
if(src_crypto_cc3xx)
add_library(cc3xx_psa_driver STATIC
${src_crypto_cc3xx}
)

# Link to the PSA interface and library PSA crypto configurations
target_link_libraries(cc3xx_psa_driver
PRIVATE
psa_crypto_library_config
psa_interface
)

# Link psa_core with this driver
target_link_libraries(psa_core
PRIVATE
cc3xx_psa_driver
)

# Link to imported libraries for CC3XX APIs.
target_link_libraries(cc3xx_psa_driver
PRIVATE
nrf_cc3xx_psa_crypto_imported
nrf_cc3xx_core_imported
nrf_security_utils
)

nrf_security_add_zephyr_options_library(cc3xx_psa_driver)
endif()

# Link psa_core with the imported libraries
target_link_libraries(psa_core
INTERFACE
$<TARGET_NAME_IF_EXISTS:cc3xx_psa_driver>
nrf_cc3xx_psa_crypto_imported
nrf_cc3xx_core_imported
c
Expand Down
61 changes: 45 additions & 16 deletions subsys/nrf_security/src/drivers/nrf_cc3xx/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,14 @@ config PSA_NEED_CC3XX_ECDH_BRAINPOOL_P_R1_256
depends on PSA_WANT_ECC_BRAINPOOL_P_R1_256
depends on PSA_USE_CC3XX_KEY_AGREEMENT_DRIVER

config PSA_NEED_CC3XX_ECDH_WEIERSTRASS
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_BRAINPOOL_P_R1_256

config PSA_NEED_CC3XX_KEY_AGREEMENT_DRIVER
bool
default y
Expand Down Expand Up @@ -218,6 +226,16 @@ config PSA_NEED_CC3XX_ECDSA_BRAINPOOL_P_R1_256
depends on PSA_WANT_ECC_BRAINPOOL_P_R1_256
depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_ECDSA
bool
default y
depends on 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_224 || \
PSA_NEED_CC3XX_ECDSA_SECP_K1_256 || \
PSA_NEED_CC3XX_ECDSA_BRAINPOOL_P_R1_256

config PSA_NEED_CC3XX_RSA_PKCS1V15_SIGN
bool
default y
Expand Down Expand Up @@ -250,6 +268,12 @@ config PSA_NEED_CC3XX_RSA_PSS
depends on PSA_WANT_ALG_RSA_PSS
depends on PSA_USE_CC3XX_ASYMMETRIC_SIGNATURE_DRIVER

config PSA_NEED_CC3XX_RSA_SIGN
bool
default y
depends on PSA_NEED_CC3XX_RSA_PKCS1V15_SIGN || \
PSA_NEED_CC3XX_RSA_PSS

config PSA_NEED_CC3XX_PURE_EDDSA_TWISTED_EDWARDS_255
bool
default y
Expand Down Expand Up @@ -357,7 +381,7 @@ config PSA_NEED_CC3XX_KEY_TYPE_RSA_ANY
PSA_WANT_RSA_KEY_SIZE_2048 || \
(PSA_WANT_RSA_KEY_SIZE_3072 && HAS_HW_NRF_CC312)

config PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY
config PSA_NEED_CC3XX_KEY_TYPE_ECC_WEIERSTRASS
bool
default y
# R1 224
Expand Down Expand Up @@ -390,35 +414,40 @@ config PSA_NEED_CC3XX_KEY_TYPE_ECC_ANY
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_224 || \
PSA_WANT_ECC_SECP_R1_256 || \
PSA_WANT_ECC_SECP_R1_384 || \
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_TYPE_ECC_ANY
bool
default y
# 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
depends on PSA_NEED_CC3XX_KEY_TYPE_ECC_WEIERSTRASS || \
PSA_WANT_ECC_MONTGOMERY_255 || \
PSA_WANT_ECC_TWISTED_EDWARDS_255
depends on PSA_USE_CC3XX_KEY_MANAGEMENT_DRIVER

config PSA_NEED_CC3XX_KEY_MANAGEMENT_DRIVER
bool
default y
Expand Down
Loading
Loading