Skip to content

Commit 7acb5ae

Browse files
committed
fixup! crypto: nrf_cc3xx: Update mutex support for Mbed TLS 3.6.0
-Don't reuse RNG mutex for the PSA rng mutex type Signed-off-by: Frank Audun Kvamtrø <[email protected]>
1 parent d4cf0cf commit 7acb5ae

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

crypto/nrf_cc310_platform/src/nrf_cc3xx_platform_mutex_zephyr.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ K_MUTEX_DEFINE(key_slot_mutex_int);
5353
*/
5454
K_MUTEX_DEFINE(psa_globaldata_mutex_int);
5555

56+
/** @brief Definition of mutex for PSA global access
57+
*/
58+
K_MUTEX_DEFINE(psa_rng_mutex_int);
59+
5660
#elif CONFIG_CC3XX_ATOMIC_LOCK
5761

5862
/** @brief Definition of mutex for symmetric cryptography
@@ -79,6 +83,10 @@ static atomic_t key_slot_mutex_int;
7983
*/
8084
static atomic_t psa_globaldata_mutex_int;
8185

86+
/** @brief Definition of mutex for PSA global access
87+
*/
88+
static atomic_t psa_rng_mutex_int;
89+
8290
#elif defined(NRF5340_XXAA_APPLICATION) && NRF_CC3XX_PLATFORM_MUTEX_MASK_IS_HW_MUTEX
8391

8492
typedef enum {
@@ -88,6 +96,7 @@ typedef enum {
8896
HW_MUTEX_HEAP_ALLOC = 12,
8997
HW_MUTEX_KEY_SLOT = 11,
9098
HW_MUTEX_PSA_GLOBALDATA = 10,
99+
HW_MUTEX_PSA_RNG = 9,
91100
} hw_mutex_t;
92101

93102
/** @brief Definition of mutex for symmetric cryptography
@@ -114,6 +123,10 @@ static hw_mutex_t key_slot_mutex_int = HW_MUTEX_KEY_SLOT;
114123
*/
115124
static hw_mutex_t psa_globaldata_mutex_int = HW_MUTEX_PSA_GLOBALDATA;
116125

126+
/** @brief Definition of mutex for PSA global access
127+
*/
128+
static hw_mutex_t psa_rng_mutex_int = HW_MUTEX_PSA_RNG;
129+
117130
#else
118131
#error "Improper configuration of the lock variant!"
119132
#endif
@@ -233,11 +246,9 @@ nrf_cc3xx_platform_mutex_t mbedtls_threading_psa_globaldata_mutex = {
233246
* allocation is unneccesary
234247
*
235248
* @note This symbol can't be static as it is referenced from Mbed TLS
236-
*
237-
* @note Reusing the RNG mutex used for CryptoCell.
238249
*/
239250
nrf_cc3xx_platform_mutex_t mbedtls_threading_psa_rngdata_mutex = {
240-
.mutex = &rng_mutex_int,
251+
.mutex = &psa_rng_mutex_int,
241252
.flags = IS_ENABLED(CONFIG_CC3XX_ATOMIC_LOCK) ?
242253
NRF_CC3XX_PLATFORM_MUTEX_MASK_IS_ATOMIC :
243254
IS_ENABLED(CONFIG_CC3XX_HW_MUTEX_LOCK) ?

crypto/nrf_cc312_platform/src/nrf_cc3xx_platform_mutex_zephyr.c

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ K_MUTEX_DEFINE(key_slot_mutex_int);
5353
*/
5454
K_MUTEX_DEFINE(psa_globaldata_mutex_int);
5555

56+
/** @brief Definition of mutex for PSA global access
57+
*/
58+
K_MUTEX_DEFINE(psa_rng_mutex_int);
59+
5660
#elif CONFIG_CC3XX_ATOMIC_LOCK
5761

5862
/** @brief Definition of mutex for symmetric cryptography
@@ -79,6 +83,10 @@ static atomic_t key_slot_mutex_int;
7983
*/
8084
static atomic_t psa_globaldata_mutex_int;
8185

86+
/** @brief Definition of mutex for PSA global access
87+
*/
88+
static atomic_t psa_rng_mutex_int;
89+
8290
#elif defined(NRF5340_XXAA_APPLICATION) && NRF_CC3XX_PLATFORM_MUTEX_MASK_IS_HW_MUTEX
8391

8492
typedef enum {
@@ -88,6 +96,7 @@ typedef enum {
8896
HW_MUTEX_HEAP_ALLOC = 12,
8997
HW_MUTEX_KEY_SLOT = 11,
9098
HW_MUTEX_PSA_GLOBALDATA = 10,
99+
HW_MUTEX_PSA_RNG = 9,
91100
} hw_mutex_t;
92101

93102
/** @brief Definition of mutex for symmetric cryptography
@@ -114,6 +123,10 @@ static hw_mutex_t key_slot_mutex_int = HW_MUTEX_KEY_SLOT;
114123
*/
115124
static hw_mutex_t psa_globaldata_mutex_int = HW_MUTEX_PSA_GLOBALDATA;
116125

126+
/** @brief Definition of mutex for PSA global access
127+
*/
128+
static hw_mutex_t psa_rng_mutex_int = HW_MUTEX_PSA_RNG;
129+
117130
#else
118131
#error "Improper configuration of the lock variant!"
119132
#endif
@@ -233,11 +246,9 @@ nrf_cc3xx_platform_mutex_t mbedtls_threading_psa_globaldata_mutex = {
233246
* allocation is unneccesary
234247
*
235248
* @note This symbol can't be static as it is referenced from Mbed TLS
236-
*
237-
* @note Reusing the RNG mutex used for CryptoCell.
238249
*/
239250
nrf_cc3xx_platform_mutex_t mbedtls_threading_psa_rngdata_mutex = {
240-
.mutex = &rng_mutex_int,
251+
.mutex = &psa_rng_mutex_int,
241252
.flags = IS_ENABLED(CONFIG_CC3XX_ATOMIC_LOCK) ?
242253
NRF_CC3XX_PLATFORM_MUTEX_MASK_IS_ATOMIC :
243254
IS_ENABLED(CONFIG_CC3XX_HW_MUTEX_LOCK) ?

0 commit comments

Comments
 (0)