Type Alias esp_idf_svc::hal::sys::psa_key_lifetime_t
source ยท pub type psa_key_lifetime_t = u32;
Expand description
Encoding of key lifetimes.
The lifetime of a key indicates where it is stored and what system actions may create and destroy it.
Lifetime values have the following structure:
- Bits 0-7 (#PSA_KEY_LIFETIME_GET_PERSISTENCE(\c lifetime)): persistence level. This value indicates what device management actions can cause it to be destroyed. In particular, it indicates whether the key is volatile or persistent. See ::psa_key_persistence_t for more information.
- Bits 8-31 (#PSA_KEY_LIFETIME_GET_LOCATION(\c lifetime)): location indicator. This value indicates which part of the system has access to the key material and can perform operations using the key. See ::psa_key_location_t for more information.
Volatile keys are automatically destroyed when the application instance terminates or on a power reset of the device. Persistent keys are preserved until the application explicitly destroys them or until an integration-specific device management event occurs (for example, a factory reset).
Persistent keys have a key identifier of type #mbedtls_svc_key_id_t. This identifier remains valid throughout the lifetime of the key, even if the application instance that created the key terminates. The application can call psa_open_key() to open a persistent key that it created previously.
The default lifetime of a key is #PSA_KEY_LIFETIME_VOLATILE. The lifetime #PSA_KEY_LIFETIME_PERSISTENT is supported if persistent storage is available. Other lifetime values may be supported depending on the library configuration.
Values of this type are generally constructed by macros called
PSA_KEY_LIFETIME_xxx
.
\note Values of this type are encoded in the persistent key store. Any changes to existing values will require bumping the storage format version and providing a translation when reading the old format.