mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-25 13:43:31 +00:00
In attributes, keep track of slot number through a dedicated field
In `psa_key_attributes_t`, keep track of whether `slot_number` has been set through a dedicated field, rather than using a flag. This paves the way to removing `flags`, which is not used for anything else. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
parent
2dc2bd7097
commit
972539c241
@ -129,7 +129,7 @@ static inline void psa_set_key_slot_number(
|
|||||||
psa_key_attributes_t *attributes,
|
psa_key_attributes_t *attributes,
|
||||||
psa_key_slot_number_t slot_number)
|
psa_key_slot_number_t slot_number)
|
||||||
{
|
{
|
||||||
attributes->MBEDTLS_PRIVATE(flags) |= MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER;
|
attributes->MBEDTLS_PRIVATE(has_slot_number) = 1;
|
||||||
attributes->MBEDTLS_PRIVATE(slot_number) = slot_number;
|
attributes->MBEDTLS_PRIVATE(slot_number) = slot_number;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,8 +142,7 @@ static inline void psa_set_key_slot_number(
|
|||||||
static inline void psa_clear_key_slot_number(
|
static inline void psa_clear_key_slot_number(
|
||||||
psa_key_attributes_t *attributes)
|
psa_key_attributes_t *attributes)
|
||||||
{
|
{
|
||||||
attributes->MBEDTLS_PRIVATE(flags) &=
|
attributes->MBEDTLS_PRIVATE(has_slot_number) = 0;
|
||||||
~MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Register a key that is already present in a secure element.
|
/** Register a key that is already present in a secure element.
|
||||||
|
@ -292,6 +292,7 @@ typedef uint16_t psa_key_attributes_flag_t;
|
|||||||
struct psa_key_attributes_s {
|
struct psa_key_attributes_s {
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||||
psa_key_slot_number_t MBEDTLS_PRIVATE(slot_number);
|
psa_key_slot_number_t MBEDTLS_PRIVATE(slot_number);
|
||||||
|
int MBEDTLS_PRIVATE(has_slot_number);
|
||||||
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
#endif /* MBEDTLS_PSA_CRYPTO_SE_C */
|
||||||
psa_key_type_t MBEDTLS_PRIVATE(type);
|
psa_key_type_t MBEDTLS_PRIVATE(type);
|
||||||
psa_key_bits_t MBEDTLS_PRIVATE(bits);
|
psa_key_bits_t MBEDTLS_PRIVATE(bits);
|
||||||
@ -313,7 +314,7 @@ struct psa_key_attributes_s {
|
|||||||
};
|
};
|
||||||
|
|
||||||
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
#if defined(MBEDTLS_PSA_CRYPTO_SE_C)
|
||||||
#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER 0,
|
#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER 0, 0,
|
||||||
#else
|
#else
|
||||||
#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER
|
#define PSA_KEY_ATTRIBUTES_MAYBE_SLOT_NUMBER
|
||||||
#endif
|
#endif
|
||||||
|
@ -1245,7 +1245,7 @@ psa_status_t psa_get_key_slot_number(
|
|||||||
const psa_key_attributes_t *attributes,
|
const psa_key_attributes_t *attributes,
|
||||||
psa_key_slot_number_t *slot_number)
|
psa_key_slot_number_t *slot_number)
|
||||||
{
|
{
|
||||||
if (attributes->flags & MBEDTLS_PSA_KA_FLAG_HAS_SLOT_NUMBER) {
|
if (attributes->has_slot_number) {
|
||||||
*slot_number = attributes->slot_number;
|
*slot_number = attributes->slot_number;
|
||||||
return PSA_SUCCESS;
|
return PSA_SUCCESS;
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user