Remove unused and duplicated erros, fix documentation and tests

Remove unused and duplicated erros, fix documentation and tests
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 329ee3d..bdb47d2 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -363,7 +363,6 @@
     }
 
     slot->type = type;
-    slot->lifetime = 0;
     return( PSA_SUCCESS );
 }
 
@@ -1292,17 +1291,17 @@
     if( key == 0 || key > MBEDTLS_PSA_KEY_SLOT_COUNT )
         return( PSA_ERROR_INVALID_ARGUMENT );
 
+    if( lifetime != PSA_KEY_LIFETIME_VOLATILE && 
+        lifetime != PSA_KEY_LIFETIME_PERSISTENT && 
+        lifetime != PSA_KEY_LIFETIME_WRITE_ONCE)
+        return( PSA_ERROR_INVALID_ARGUMENT );
+
     slot = &global_data.key_slots[key];
     if( slot->type == PSA_KEY_TYPE_NONE )
         return( PSA_ERROR_EMPTY_SLOT );
 
-    if( lifetime != PSA_KEY_LIFETIME_VOLATILE && 
-        lifetime != PSA_KEY_LIFETIME_PERSISTENT && 
-        lifetime != PSA_KEY_LIFETIME_WRITE_ONCE)
-        return( PSA_ERROR_INVALID_LIFETIME );
-
-    if ( slot->lifetime == PSA_KEY_LIFETIME_WRITE_ONCE )
-        return( PSA_ERROR_KEY_LIFETIME_CHANGE );
+    if ( lifetime != PSA_KEY_LIFETIME_VOLATILE )
+        return( PSA_ERROR_NOT_SUPPORTED );
         
     slot->lifetime = lifetime;