analyzeSecrets method
returns ssss from accountdata, eg: m.megolm_backup.v1, or your m.cross_signing stuff
Implementation
Map<String, Set<String>> analyzeSecrets() {
final secretsCache = _secretsCache;
if (secretsCache != null) {
// deep-copy so that we can do modifications
final newSecrets = <String, Set<String>>{};
for (final s in secretsCache.entries) {
newSecrets[s.key] = Set<String>.from(s.value);
}
return newSecrets;
}
final secrets = encryption.ssss.analyzeEncryptedSecrets();
for (final entry in client.accountData.entries) {
final type = entry.key;
if (secrets.containsKey(type)) continue;
if (encryption.ssss.hasInvalidEncryptedEntries(type)) {
// no valid keys for this type, but invalid encrypted entries exist
secrets[type] = {};
}
}
_secretsCache = secrets;
return analyzeSecrets();
}