Remove unused and duplicated erros, fix documentation and tests
Remove unused and duplicated erros, fix documentation and tests
diff --git a/include/psa/crypto.h b/include/psa/crypto.h
index 6caa62a..6675ba4 100644
--- a/include/psa/crypto.h
+++ b/include/psa/crypto.h
@@ -89,10 +89,6 @@
PSA_ERROR_INVALID_SIGNATURE,
/** The decrypted padding is incorrect. */
PSA_ERROR_INVALID_PADDING,
- /** The key lifetime value is incorrect. */
- PSA_ERROR_INVALID_LIFETIME,
- /** The key lifetime can not be changed. */
- PSA_ERROR_KEY_LIFETIME_CHANGE,
/** An error occurred that does not correspond to any defined
failure cause. */
PSA_ERROR_UNKNOWN_ERROR,
@@ -582,15 +578,19 @@
*/
typedef uint32_t psa_key_lifetime_t;
+/** An invalid key lifetime value.
+ */
+#define PSA_KEY_LIFETIME_NONE ((psa_key_lifetime_t)0x00000000)
+
/** A volatile key slot retains its content as long as the application is
* running. It is guaranteed to be erased on a power reset.
*/
-#define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t)0x00000000)
+#define PSA_KEY_LIFETIME_VOLATILE ((psa_key_lifetime_t)0x00000001)
/** A persistent key slot retains its content as long as it is not explicitly
* destroyed.
*/
-#define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t)0x00000001)
+#define PSA_KEY_LIFETIME_PERSISTENT ((psa_key_lifetime_t)0x00000002)
/** A write-once key slot may not be modified once a key has been set.
* It will retain its content as long as the device remains operational.
@@ -617,11 +617,10 @@
psa_key_lifetime_t *lifetime);
/** \brief Change the lifetime of a key slot.
+ * Whether the lifetime of a key slot can be changed at all, and if so
+ * whether the lifetime of an occupied key slot can be changed, is
+ * implementation-dependent.
*
- * \note In case a key slot has PSA_KEY_LIFETIME_WRITE_ONCE lifetime,
- * it can not be changed and trying to set new value will return
- * an error
- *
* \param key Slot whose content is to be exported. This must
* be an occupied key slot.
* \param lifetime The lifetime value to be set for the given key.
@@ -633,11 +632,6 @@
* or the key data is not correctly formatted.
* \retval PSA_ERROR_EMPTY_SLOT
* The key slot is not occupied.
- * \retval PSA_ERROR_INVALID_LIFETIME
- * The lifetime value is not valid.
- * \retval PSA_ERROR_KEY_LIFETIME_CHANGE
- * The key slot already has PSA_KEY_LIFETIME_WRITE_ONCE value,
- * and can not be changed.
*/
psa_status_t psa_set_key_lifetime(psa_key_slot_t key,
const psa_key_lifetime_t lifetime);