Merge pull request #1698 from famedly/krille/skip-invalid-keys
fix: Skip invalid keys which got corrupted in database
This commit is contained in:
commit
0f50119932
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue