Go to the source code of this file.
◆ PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE
| #define PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE ((psa_key_id_t) 0xfffffe00) |
The base of the range of ITS file identifiers for secure element driver persistent data.
We use a slice of the implementation reserved range 0xffff0000..0xffffffff, specifically the range 0xfffffe00..0xfffffeff. The length of this range drives the value of PSA_MAX_SE_LOCATION. The identifier 0xfffffe00 is actually not used since it corresponds to PSA_KEY_LOCATION_LOCAL_STORAGE which doesn't have a driver.
◆ PSA_MAX_SE_DRIVERS
| #define PSA_MAX_SE_DRIVERS 4 |
The maximum number of registered secure element driver locations.
◆ PSA_MAX_SE_LOCATION
| #define PSA_MAX_SE_LOCATION 255 |
The maximum location value that this implementation supports for a secure element.
This is not a characteristic that each PSA implementation has, but a limitation of the current implementation due to the constraints imposed by storage. See PSA_CRYPTO_SE_DRIVER_ITS_UID_BASE.
The minimum location value for a secure element is 1, like on any PSA implementation (0 means a transparent key).
◆ psa_se_drv_table_entry_t
A structure that describes a registered secure element driver.
A secure element driver table entry contains a pointer to the driver's method table as well as the driver context structure.
◆ psa_destroy_se_key()
Destroy a key in a secure element.
This function calls the relevant driver method to destroy a key and updates the driver's persistent data.
◆ psa_destroy_se_persistent_data()
Destroy the persistent data of a secure element driver.
This is currently only used for testing.
- Parameters
-
| [in] | location | The location identifier for the driver whose persistent data is to be erased. |
◆ psa_find_se_slot_for_key()
Find a free slot for a key that is to be created.
This function calls the relevant method in the driver to find a suitable slot for a key with the given attributes.
- Parameters
-
| [in] | attributes | Metadata about the key that is about to be created. |
| [in] | driver | The driver table entry to query. |
| [out] | slot_number | On success, a slot number that is free in this secure element. |
◆ psa_get_se_driver()
Return the secure element driver information for a lifetime value.
- Parameters
-
| lifetime | The lifetime value to query. |
| [out] | p_methods | On output, if there is a driver, *methods points to its method table. Otherwise *methods is NULL. |
| [out] | p_drv_context | On output, if there is a driver, *drv_context points to its context structure. Otherwise *drv_context is NULL. |
- Return values
-
| 1 | lifetime corresponds to a registered driver. |
| 0 | lifetime does not correspond to a registered driver. |
◆ psa_get_se_driver_context()
Return the context of a secure element driver.
- Parameters
-
| [in] | driver | The driver table entry to access, or NULL. |
- Returns
- A pointer to the driver context.
NULL if driver is NULL.
◆ psa_get_se_driver_entry()
Return the secure element driver table entry for a lifetime value.
- Parameters
-
| lifetime | The lifetime value to query. |
- Returns
- The driver table entry for
lifetime, or NULL if lifetime does not correspond to a registered driver.
◆ psa_get_se_driver_methods()
Return the method table for a secure element driver.
- Parameters
-
| [in] | driver | The driver table entry to access, or NULL. |
- Returns
- The driver's method table.
NULL if driver is NULL.
◆ psa_init_all_se_drivers()
◆ psa_load_se_persistent_data()
◆ psa_save_se_persistent_data()
◆ psa_unregister_all_se_drivers()
| void psa_unregister_all_se_drivers |
( |
void |
| ) |
|
Unregister all secure element drivers.
- Warning
- Do not call this function while the library is in the initialized state. This function is only intended to be called at the end of mbedtls_psa_crypto_free().