encrypt method
inputFile
input file name
outputFile
encrypted file name
After encryption returns encrypted File
instance
Implementation
@override
Future<File> encrypt({
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();
final Encrypter _encrypter = Encrypter(AES(_key));
final Encrypted _encrypted = _encrypter.encryptBytes(
_fileContents,
iv: _iv,
);
var compressedContent;
if (_useCompress) {
compressedContent = GZipEncoder().encode(_encrypted.bytes.toList())!;
}
File _encryptedFile = await _outputFile
.writeAsBytes(_useCompress ? compressedContent : _encrypted.bytes);
return _encryptedFile;
}