From c66d2edb5ee7313ebe1ab241478dcb32db3ff683 Mon Sep 17 00:00:00 2001 From: Christian Pauly Date: Wed, 14 Dec 2022 08:59:36 +0100 Subject: [PATCH] refactor: Key manager megolm handling to make key generation more efficient --- lib/encryption/key_manager.dart | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lib/encryption/key_manager.dart b/lib/encryption/key_manager.dart index 786a76b5..9be67bf3 100644 --- a/lib/encryption/key_manager.dart +++ b/lib/encryption/key_manager.dart @@ -382,6 +382,15 @@ class KeyManager { .where((e) => !e.value) .map((e) => e.key)) : {}; + + // check if a device got removed + if (oldDeviceIds.difference(newDeviceIds).isNotEmpty) { + print("Device deleted, rotating megolm session"); + wipe = true; + break; + } + + // check if any new devices need keys final newDevices = newDeviceIds.difference(oldDeviceIds); if (newDeviceIds.isNotEmpty) { devicesToReceive.addAll(newDeviceKeys.where(