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'];
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;
}
}