fix: Skip invalid keys which got corrupted in database

This commit is contained in:
Krille 2024-01-26 09:41:55 +01:00
parent 566f960b92
commit d94e6d2ac8
No known key found for this signature in database
GPG Key ID: E067ECD60F1A0652
1 changed files with 10 additions and 6 deletions

View File

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