You are viewing documentation for version:
4.2
|
Version History
|
struct
|
psa_drv_se_t
|
|
A structure containing pointers to all the entry points of a secure element driver.
|
|
◆
psa_register_se_driver()
Register an external cryptoprocessor (secure element) driver.
This function is only intended to be used by driver code, not by application code. In implementations with separation between the PSA cryptography module and applications, this function should only be available to callers that run in the same memory space as the cryptography module, and should not be exposed to applications running in a different memory space.
This function may be called before
psa_crypto_init()
. It is implementation-defined whether this function may be called after
psa_crypto_init()
.
-
Note
-
Implementations store metadata about keys including the lifetime value, which contains the driver's location indicator. Therefore, from one instantiation of the PSA Cryptography library to the next one, if there is a key in storage with a certain lifetime value, you must always register the same driver (or an updated version that communicates with the same secure element) with the same location value.
-
Parameters
-
|
location
|
The location value through which this driver will be exposed to applications. This driver will be used for all keys such that
location == #PSA_KEY_LIFETIME_GET_LOCATION( lifetime )
. The value
PSA_KEY_LOCATION_LOCAL_STORAGE
is reserved and may not be used for drivers. Implementations may reserve other values.
|
[in]
|
methods
|
The method table of the driver. This structure must remain valid for as long as the cryptography module keeps running. It is typically a global constant.
|
-
Returns
-
PSA_SUCCESS
The driver was successfully registered. Applications can now use
location
to access keys through the methods passed to this function.
-
PSA_ERROR_BAD_STATE
This function was called after the initialization of the cryptography module, and this implementation does not support driver registration at this stage.
-
PSA_ERROR_ALREADY_EXISTS
There is already a registered driver for this value of
location
.
-
PSA_ERROR_INVALID_ARGUMENT
location
is a reserved value.
-
PSA_ERROR_NOT_SUPPORTED
methods->hal_version
is not supported by this implementation.
-
PSA_ERROR_INSUFFICIENT_MEMORY
-
PSA_ERROR_NOT_PERMITTED
-
PSA_ERROR_STORAGE_FAILURE
-
PSA_ERROR_DATA_CORRUPT
◆
PSA_DRV_SE_HAL_VERSION
#define PSA_DRV_SE_HAL_VERSION 0x00000005
|
The current version of the secure element driver HAL.