encryptFileChunks static method
Encrypt file as chunks
Implementation
static List<Map<String, dynamic>> encryptFileChunks(
Uint8List fileBytes,
String senderId,
String receiverId, {
String? timestamp,
}) {
final chunks = <Map<String, dynamic>>[];
final totalChunks = (fileBytes.length / chunkSize).ceil();
for (var i = 0; i < totalChunks; i++) {
final start = i * chunkSize;
final end = ((i + 1) * chunkSize).clamp(0, fileBytes.length);
final chunkBytes = fileBytes.sublist(start, end);
final chunkTime = timestamp ?? DateTime.now().toUtc().toIso8601String();
final chunkEnvelope = KaalkaProtocol.encryptEnvelope(
base64.encode(chunkBytes),
senderId,
receiverId,
timestamp: chunkTime,
seq: i + 1,
);
chunkEnvelope['chunkIndex'] = i;
chunks.add(chunkEnvelope);
}
return chunks;
}