Add a wrapper function for psa_unregister_read
There are at least 20 occurences in the current code where we will need this pattern of code, so I thought it best to put this in a function Signed-off-by: Ryan Everett <ryan.everett@arm.com>
This commit is contained in:
parent
2f1f17201d
commit
eb1722a2b9
2 changed files with 36 additions and 0 deletions
|
@ -458,6 +458,21 @@ psa_status_t psa_unregister_read(psa_key_slot_t *slot)
|
||||||
return PSA_ERROR_CORRUPTION_DETECTED;
|
return PSA_ERROR_CORRUPTION_DETECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
psa_status_t psa_unregister_read_under_mutex(psa_key_slot_t *slot)
|
||||||
|
{
|
||||||
|
psa_status_t status = PSA_ERROR_CORRUPTION_DETECTED;
|
||||||
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
|
PSA_THREADING_CHK_RET(mbedtls_mutex_lock(
|
||||||
|
&mbedtls_threading_key_slot_mutex));
|
||||||
|
#endif
|
||||||
|
status = psa_unregister_read(slot);
|
||||||
|
#if defined(MBEDTLS_THREADING_C)
|
||||||
|
PSA_THREADING_CHK_RET(mbedtls_mutex_unlock(
|
||||||
|
&mbedtls_threading_key_slot_mutex));
|
||||||
|
#endif
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime,
|
psa_status_t psa_validate_key_location(psa_key_lifetime_t lifetime,
|
||||||
psa_se_drv_table_entry_t **p_drv)
|
psa_se_drv_table_entry_t **p_drv)
|
||||||
{
|
{
|
||||||
|
|
|
@ -200,6 +200,27 @@ static inline psa_status_t psa_register_read(psa_key_slot_t *slot)
|
||||||
*/
|
*/
|
||||||
psa_status_t psa_unregister_read(psa_key_slot_t *slot);
|
psa_status_t psa_unregister_read(psa_key_slot_t *slot);
|
||||||
|
|
||||||
|
/** Wrap a call to psa_unregister_read in the global key slot mutex.
|
||||||
|
*
|
||||||
|
* If threading is disabled, this simply calls psa_unregister_read.
|
||||||
|
*
|
||||||
|
* \note To ease the handling of errors in retrieving a key slot
|
||||||
|
* a NULL input pointer is valid, and the function returns
|
||||||
|
* successfully without doing anything in that case.
|
||||||
|
*
|
||||||
|
* \param[in] slot The key slot.
|
||||||
|
* \retval #PSA_SUCCESS
|
||||||
|
* \p slot is NULL or the key slot reader counter has been
|
||||||
|
* decremented (and potentially wiped) successfully.
|
||||||
|
* \retval #PSA_ERROR_CORRUPTION_DETECTED
|
||||||
|
* The slot's state was neither PSA_SLOT_FULL nor
|
||||||
|
* PSA_SLOT_PENDING_DELETION.
|
||||||
|
* Or a wipe was attempted and the slot's state was not
|
||||||
|
* PSA_SLOT_PENDING_DELETION.
|
||||||
|
* Or registered_readers was equal to 0.
|
||||||
|
*/
|
||||||
|
psa_status_t psa_unregister_read_under_mutex(psa_key_slot_t *slot);
|
||||||
|
|
||||||
/** Test whether a lifetime designates a key in an external cryptoprocessor.
|
/** Test whether a lifetime designates a key in an external cryptoprocessor.
|
||||||
*
|
*
|
||||||
* \param lifetime The lifetime to test.
|
* \param lifetime The lifetime to test.
|
||||||
|
|
Loading…
Reference in a new issue