mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-02 20:42:25 +03:00
Assert that key ID ranges don't overlap
Ensure that a key ID can't be in range for more than one of volatile keys, persistent (i.e. user-chosen) keys or built-in keys. Signed-off-by: Gilles Peskine <Gilles.Peskine@arm.com>
This commit is contained in:
@ -26,6 +26,37 @@
|
|||||||
|
|
||||||
#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array)))
|
#define ARRAY_LENGTH(array) (sizeof(array) / sizeof(*(array)))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* Make sure we have distinct ranges of key identifiers for distinct
|
||||||
|
* purposes. */
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_USER_MIN < PSA_KEY_ID_USER_MAX,
|
||||||
|
"Empty user key ID range");
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_VENDOR_MIN < PSA_KEY_ID_VENDOR_MAX,
|
||||||
|
"Empty vendor key ID range");
|
||||||
|
MBEDTLS_STATIC_ASSERT(MBEDTLS_PSA_KEY_ID_BUILTIN_MIN < MBEDTLS_PSA_KEY_ID_BUILTIN_MAX,
|
||||||
|
"Empty builtin key ID range");
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_VOLATILE_MIN < PSA_KEY_ID_VOLATILE_MAX,
|
||||||
|
"Empty volatile key ID range");
|
||||||
|
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_USER_MAX < PSA_KEY_ID_VENDOR_MIN ||
|
||||||
|
PSA_KEY_ID_VENDOR_MAX < PSA_KEY_ID_USER_MIN,
|
||||||
|
"Overlap between user key IDs and vendor key IDs");
|
||||||
|
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_VENDOR_MIN <= MBEDTLS_PSA_KEY_ID_BUILTIN_MIN &&
|
||||||
|
MBEDTLS_PSA_KEY_ID_BUILTIN_MAX <= PSA_KEY_ID_VENDOR_MAX,
|
||||||
|
"Builtin key identifiers are not in the vendor range");
|
||||||
|
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_VENDOR_MIN <= PSA_KEY_ID_VOLATILE_MIN &&
|
||||||
|
PSA_KEY_ID_VOLATILE_MAX <= PSA_KEY_ID_VENDOR_MAX,
|
||||||
|
"Volatile key identifiers are not in the vendor range");
|
||||||
|
|
||||||
|
MBEDTLS_STATIC_ASSERT(PSA_KEY_ID_VOLATILE_MAX < MBEDTLS_PSA_KEY_ID_BUILTIN_MIN ||
|
||||||
|
MBEDTLS_PSA_KEY_ID_BUILTIN_MAX < PSA_KEY_ID_VOLATILE_MIN,
|
||||||
|
"Overlap between builtin key IDs and volatile key IDs");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
psa_key_slot_t key_slots[MBEDTLS_PSA_KEY_SLOT_COUNT];
|
psa_key_slot_t key_slots[MBEDTLS_PSA_KEY_SLOT_COUNT];
|
||||||
unsigned key_slots_initialized : 1;
|
unsigned key_slots_initialized : 1;
|
||||||
|
Reference in New Issue
Block a user