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;