analyzeSecrets method

Map<String, Set<String>> analyzeSecrets()

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();
}