add missing psa_cipher_abort( operation )
diff --git a/library/psa_crypto.c b/library/psa_crypto.c
index 56f3e1d..a85b168 100644
--- a/library/psa_crypto.c
+++ b/library/psa_crypto.c
@@ -1356,7 +1356,8 @@
mode = MBEDTLS_PADDING_NONE;
break;
default:
- return ( PSA_ERROR_INVALID_ARGUMENT );
+ psa_cipher_abort( operation );
+ return( PSA_ERROR_INVALID_ARGUMENT );
}
ret = mbedtls_cipher_set_padding_mode( &operation->ctx.cipher, mode );
if( ret != 0 )
@@ -1430,10 +1431,8 @@
return( PSA_ERROR_BAD_STATE );
if( iv_length != operation->iv_size )
{
- if( ( ( operation->alg ) & PSA_ALG_ARC4 ) == PSA_ALG_ARC4 )
- return( PSA_ERROR_BAD_STATE );
- else
- return( PSA_ERROR_INVALID_ARGUMENT );
+ psa_cipher_abort( operation );
+ return( PSA_ERROR_INVALID_ARGUMENT );
}
ret = mbedtls_cipher_set_iv( &operation->ctx.cipher, iv, iv_length );
if( ret != 0 )