decrypt method
inputFile
encrypted file name
outputFile
output file name
After decryption returns decrypted File
instance
Implementation
@override
Future<File> decrypt({
String? inputFile,
String? outputFile,
bool? useCompress,
}) async {
bool _useCompress = useCompress == null ? this.useCompress : useCompress;
File _inputFile = File(p.join(dir, inputFile));
File _outputFile = File(p.join(dir, outputFile));
bool _outputFileExists = await _outputFile.exists();
bool _inputFileExists = await _inputFile.exists();
if (!_outputFileExists) {
await _outputFile.create();
}
if (!_inputFileExists) {
throw Exception("Input file not found.");
}
final _fileContents = _inputFile.readAsBytesSync();
var compressedContent;
if (_useCompress) {
compressedContent = GZipDecoder().decodeBytes(_fileContents.toList());
}
final Encrypter _encrypter = Encrypter(AES(_key));
final _encryptedFile =
Encrypted((_useCompress ? compressedContent : _fileContents));
final _decryptedFile = _encrypter.decryptBytes(_encryptedFile, iv: _iv);
return await _outputFile.writeAsBytes(_decryptedFile);
}