mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-26 14:35:37 +01:00
Declare key id 0 as invalid
In keeping with other integral types, declare 0 to be an invalid key identifier. Documented, implemented and tested.
This commit is contained in:
parent
f9666595e1
commit
f9fbc38e66
@ -107,8 +107,8 @@ typedef uint32_t psa_key_lifetime_t;
|
|||||||
* #PSA_KEY_ID_USER_MIN to #PSA_KEY_ID_USER_MAX.
|
* #PSA_KEY_ID_USER_MIN to #PSA_KEY_ID_USER_MAX.
|
||||||
* - Implementations may define additional key identifiers in the range
|
* - Implementations may define additional key identifiers in the range
|
||||||
* #PSA_KEY_ID_VENDOR_MIN to #PSA_KEY_ID_VENDOR_MAX.
|
* #PSA_KEY_ID_VENDOR_MIN to #PSA_KEY_ID_VENDOR_MAX.
|
||||||
* - Key identifiers outside these ranges are reserved for future use
|
* - 0 is reserved as an invalid key identifier.
|
||||||
* in future versions of this specification.
|
* - Key identifiers outside these ranges are reserved for future use.
|
||||||
*/
|
*/
|
||||||
/* Implementation-specific quirk: The Mbed Crypto library can be built as
|
/* Implementation-specific quirk: The Mbed Crypto library can be built as
|
||||||
* part of a multi-client service that exposes the PSA Crypto API in each
|
* part of a multi-client service that exposes the PSA Crypto API in each
|
||||||
|
@ -1442,7 +1442,7 @@
|
|||||||
|
|
||||||
/** The minimum value for a key identifier chosen by the application.
|
/** The minimum value for a key identifier chosen by the application.
|
||||||
*/
|
*/
|
||||||
#define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000000)
|
#define PSA_KEY_ID_USER_MIN ((psa_key_id_t)0x00000001)
|
||||||
/** The minimum value for a key identifier chosen by the application.
|
/** The minimum value for a key identifier chosen by the application.
|
||||||
*/
|
*/
|
||||||
#define PSA_KEY_ID_USER_MAX ((psa_key_id_t)0x3fffffff)
|
#define PSA_KEY_ID_USER_MAX ((psa_key_id_t)0x3fffffff)
|
||||||
|
@ -185,15 +185,14 @@ static int psa_is_key_id_valid( psa_key_file_id_t file_id,
|
|||||||
int vendor_ok )
|
int vendor_ok )
|
||||||
{
|
{
|
||||||
psa_app_key_id_t key_id = PSA_KEY_FILE_GET_KEY_ID( file_id );
|
psa_app_key_id_t key_id = PSA_KEY_FILE_GET_KEY_ID( file_id );
|
||||||
/* Reject high values because the file names are reserved for the
|
if( PSA_KEY_ID_USER_MIN <= key_id && key_id <= PSA_KEY_ID_USER_MAX )
|
||||||
* library's internal use. */
|
return( 1 );
|
||||||
if( key_id > PSA_MAX_PERSISTENT_KEY_IDENTIFIER )
|
else if( vendor_ok &&
|
||||||
|
PSA_KEY_ID_VENDOR_MIN <= key_id &&
|
||||||
|
key_id <= PSA_KEY_ID_VENDOR_MAX )
|
||||||
|
return( 1 );
|
||||||
|
else
|
||||||
return( 0 );
|
return( 0 );
|
||||||
/* Applications may only create keys in the range
|
|
||||||
* 0..PSA_KEY_ID_USER_MAX. */
|
|
||||||
if( ! vendor_ok && key_id > PSA_KEY_ID_USER_MAX )
|
|
||||||
return( 0 );
|
|
||||||
return( 1 );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Declare a slot as persistent and load it from storage.
|
/** Declare a slot as persistent and load it from storage.
|
||||||
|
@ -34,6 +34,10 @@ create_existent:PSA_KEY_LIFETIME_PERSISTENT:1:CLOSE_AFTER
|
|||||||
Attempt to overwrite: keep open
|
Attempt to overwrite: keep open
|
||||||
create_existent:PSA_KEY_LIFETIME_PERSISTENT:1:KEEP_OPEN
|
create_existent:PSA_KEY_LIFETIME_PERSISTENT:1:KEEP_OPEN
|
||||||
|
|
||||||
|
Open failure: invalid identifier (0)
|
||||||
|
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
||||||
|
open_fail:0:PSA_ERROR_INVALID_ARGUMENT
|
||||||
|
|
||||||
Open failure: invalid identifier (random seed UID)
|
Open failure: invalid identifier (random seed UID)
|
||||||
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
||||||
open_fail:PSA_CRYPTO_ITS_RANDOM_SEED_UID:PSA_ERROR_INVALID_ARGUMENT
|
open_fail:PSA_CRYPTO_ITS_RANDOM_SEED_UID:PSA_ERROR_INVALID_ARGUMENT
|
||||||
@ -53,6 +57,10 @@ open_fail:1:PSA_ERROR_DOES_NOT_EXIST
|
|||||||
Create failure: invalid lifetime
|
Create failure: invalid lifetime
|
||||||
create_fail:0x7fffffff:0:PSA_ERROR_INVALID_ARGUMENT
|
create_fail:0x7fffffff:0:PSA_ERROR_INVALID_ARGUMENT
|
||||||
|
|
||||||
|
Create failure: invalid key id (0)
|
||||||
|
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
||||||
|
create_fail:PSA_KEY_LIFETIME_PERSISTENT:0:PSA_ERROR_INVALID_ARGUMENT
|
||||||
|
|
||||||
Create failure: invalid key id (random seed UID)
|
Create failure: invalid key id (random seed UID)
|
||||||
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
depends_on:MBEDTLS_PSA_CRYPTO_STORAGE_C
|
||||||
create_fail:PSA_KEY_LIFETIME_PERSISTENT:PSA_CRYPTO_ITS_RANDOM_SEED_UID:PSA_ERROR_INVALID_ARGUMENT
|
create_fail:PSA_KEY_LIFETIME_PERSISTENT:PSA_CRYPTO_ITS_RANDOM_SEED_UID:PSA_ERROR_INVALID_ARGUMENT
|
||||||
|
Loading…
Reference in New Issue
Block a user