diff --git a/lib/utils/file_util.dart b/lib/utils/file_util.dart index 14a409968..7fedf3c5c 100644 --- a/lib/utils/file_util.dart +++ b/lib/utils/file_util.dart @@ -157,24 +157,26 @@ Future _downloadAndDecrypt(File file, BaseCacheManager cacheManager, ) .then((_) async { var attributes = ChaChaAttributes( - EncryptionAttribute(base64: file.fileDecryptionParams.header), - EncryptionAttribute( - bytes: await CryptoUtil.decrypt( - file.fileDecryptionParams.encryptedKey, - Configuration.instance.getBase64EncodedKey(), - file.fileDecryptionParams.nonce, - ))); + EncryptionAttribute( + bytes: await CryptoUtil.decrypt( + file.fileDecryptionParams.encryptedKey, + Configuration.instance.getBase64EncodedKey(), + file.fileDecryptionParams.keyDecryptionNonce, + )), + EncryptionAttribute(base64: file.fileDecryptionParams.header), + ); await CryptoUtil.chachaDecrypt(encryptedFile, decryptedFile, attributes); encryptedFile.deleteSync(); - decryptedFile.deleteSync(); final fileExtension = extension(file.title).substring(1).toLowerCase(); - return cacheManager.putFile( + final cachedFile = await cacheManager.putFile( file.getDownloadUrl(), decryptedFile.readAsBytesSync(), eTag: file.getDownloadUrl(), maxAge: Duration(days: 365), fileExtension: fileExtension, ); + decryptedFile.deleteSync(); + return cachedFile; }); }