goto clean;
}
+ if (iv.data == NULL || iv.data_size < 12) {
+ LOG("Invalid IV. iv.data_size=%d", iv.data_size);
+ ret = TEE_ERROR_BAD_PARAMETERS;
+ goto clean;
+ }
+
// open key and (if needed) decrypt it
if (with_pwd) {
ret = KM_DecryptKey(key_id.data, key_id.data_size, &pwd_data, &key);
if (iv == NULL || iv_size < 12) {
LOG("Provided IV is not big enough (%d bytes)", iv_size);
- return TEE_ERROR_NOT_SUPPORTED;
+ return TEE_ERROR_BAD_PARAMETERS;
}
ret = TEE_AEInit(hndl, iv, (size_t)iv_size, tag_len_bits, aad_size, payload_len_bits);
{
TEE_Result ret = TEE_SUCCESS;
+ if (iv == NULL || iv_size < 12) {
+ LOG("Provided IV is not big enough (%d bytes)", iv_size);
+ return TEE_ERROR_BAD_PARAMETERS;
+ }
+
ret = TEE_AEInit(hndl, iv, (size_t)iv_size, tag_len_bits, aad_size, payload_len_bits);
if (TEE_ERROR_NOT_SUPPORTED == ret) {
ret = TEE_ERROR_BAD_PARAMETERS;