encrypt method
Implementation
Future<String> encrypt(dynamic data, {String? timeKey}) async {
_setTime(timeKey);
// File or media encryption
if (data is String && await File(data).exists()) {
final file = File(data);
final ext = '.' + data.split('.').last;
final raw = await file.readAsBytes();
final encBytes = _proc(raw, true);
final extBytes = utf8.encode(ext);
final extLen = [extBytes.length];
final finalBytes = <int>[]..addAll(extLen)..addAll(extBytes)..addAll(encBytes);
final base = data.substring(0, data.length - ext.length);
final outfile = base + '.kaalka';
await File(outfile).writeAsBytes(finalBytes);
return outfile;
}
// Text encryption
if (data is String) {
return _encryptMessage(data);
}
// Binary encryption
if (data is List<int>) {
return utf8.decode(_proc(data, true));
}
throw ArgumentError('Unsupported data type for encryption.');
}