Merge pull request #1698 from famedly/krille/skip-invalid-keys

fix: Skip invalid keys which got corrupted in database
This commit is contained in:
Mohammadreza Moradi 2024-01-26 11:01:21 +01:00 committed by GitHub
commit 0f50119932
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 6 deletions

View File

@ -111,18 +111,22 @@ class DeviceKeysList {
outdated = dbEntry['outdated']; outdated = dbEntry['outdated'];
deviceKeys = {}; deviceKeys = {};
for (final childEntry in childEntries) { for (final childEntry in childEntries) {
try {
final entry = DeviceKeys.fromDb(childEntry, client); final entry = DeviceKeys.fromDb(childEntry, client);
if (entry.isValid) { if (!entry.isValid) throw Exception('Invalid device keys');
deviceKeys[childEntry['device_id']] = entry; deviceKeys[childEntry['device_id']] = entry;
} else { } catch (e, s) {
Logs().w('Skipping invalid user device key', e, s);
outdated = true; outdated = true;
} }
} }
for (final crossSigningEntry in crossSigningEntries) { for (final crossSigningEntry in crossSigningEntries) {
try {
final entry = CrossSigningKey.fromDbJson(crossSigningEntry, client); final entry = CrossSigningKey.fromDbJson(crossSigningEntry, client);
if (entry.isValid) { if (!entry.isValid) throw Exception('Invalid device keys');
crossSigningKeys[crossSigningEntry['public_key']] = entry; crossSigningKeys[crossSigningEntry['public_key']] = entry;
} else { } catch (e, s) {
Logs().w('Skipping invalid cross siging key', e, s);
outdated = true; outdated = true;
} }
} }