Skip to content

Commit 61d5316

Browse files
57300rlubos
authored andcommitted
nrf_security: cracen: Pull out mbedtls_psa_platform_get_builtin_key
If multiple crypto drivers are used and they all define built-in keys, then this platform function needs to account for all of these drivers. Therefore, move it into a new top-level file: `mbedtls_psa_platform.c`. The new file is placed next to `psa_crypto_driver_wrappers.c`, to which it is closely related. Ref: NCSDK-35399 Signed-off-by: Grzegorz Swiderski <[email protected]>
1 parent 44985ef commit 61d5316

File tree

5 files changed

+39
-3
lines changed

5 files changed

+39
-3
lines changed

subsys/nrf_security/src/core/lite/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ add_library(psa_core STATIC
99
${NRF_SECURITY_ROOT}/src/psa_crypto_driver_wrappers.c
1010
)
1111

12+
if(CONFIG_MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
13+
target_sources(psa_core
14+
PRIVATE
15+
${NRF_SECURITY_ROOT}/src/mbedtls_psa_platform.c
16+
)
17+
endif()
18+
1219
target_link_libraries(psa_core
1320
PRIVATE
1421
psa_crypto_library_config

subsys/nrf_security/src/core/nrf_oberon/CMakeLists.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ target_sources(psa_core
2626
${NRF_SECURITY_ROOT}/src/psa_crypto_driver_wrappers.c
2727
)
2828

29+
if(CONFIG_MBEDTLS_PSA_CRYPTO_BUILTIN_KEYS)
30+
target_sources(psa_core
31+
PRIVATE
32+
${NRF_SECURITY_ROOT}/src/mbedtls_psa_platform.c
33+
)
34+
endif()
35+
2936
target_link_libraries(psa_core
3037
PRIVATE
3138
psa_crypto_library_config

subsys/nrf_security/src/drivers/cracen/cracenpsa/include/cracen_psa.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -368,4 +368,7 @@ psa_status_t cracen_derive_key(const psa_key_attributes_t *attributes, const uin
368368

369369
psa_status_t cracen_get_trng(uint8_t *output, size_t output_size);
370370

371+
psa_status_t cracen_get_key_slot(mbedtls_svc_key_id_t key_id, psa_key_lifetime_t *lifetime,
372+
psa_drv_slot_number_t *slot_number);
373+
371374
#endif /* CRACEN_PSA_H */

subsys/nrf_security/src/drivers/cracen/cracenpsa/src/key_management.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1350,9 +1350,8 @@ psa_status_t cracen_get_builtin_key(psa_drv_slot_number_t slot_number,
13501350
}
13511351
}
13521352

1353-
psa_status_t mbedtls_psa_platform_get_builtin_key(mbedtls_svc_key_id_t key_id,
1354-
psa_key_lifetime_t *lifetime,
1355-
psa_drv_slot_number_t *slot_number)
1353+
psa_status_t cracen_get_key_slot(mbedtls_svc_key_id_t key_id, psa_key_lifetime_t *lifetime,
1354+
psa_drv_slot_number_t *slot_number)
13561355
{
13571356
switch (MBEDTLS_SVC_KEY_ID_GET_KEY_ID(key_id)) {
13581357
case CRACEN_BUILTIN_IDENTITY_KEY_ID:
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright (c) 2025 Nordic Semiconductor ASA
3+
* SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
4+
*/
5+
6+
#include "psa_crypto_core.h"
7+
8+
#if defined(PSA_CRYPTO_DRIVER_CRACEN)
9+
#include "cracen_psa.h"
10+
#endif
11+
12+
psa_status_t mbedtls_psa_platform_get_builtin_key(mbedtls_svc_key_id_t key_id,
13+
psa_key_lifetime_t *lifetime,
14+
psa_drv_slot_number_t *slot_number)
15+
{
16+
#if defined(PSA_CRYPTO_DRIVER_CRACEN)
17+
return cracen_get_key_slot(key_id, lifetime, slot_number);
18+
#endif
19+
return PSA_ERROR_DOES_NOT_EXIST;
20+
}

0 commit comments

Comments
 (0)