OlmSession.fromJson constructor

OlmSession.fromJson(
  1. Map<String, dynamic> dbEntry,
  2. String key
)

Implementation

OlmSession.fromJson(Map<String, dynamic> dbEntry, this.key)
    : identityKey = dbEntry['identity_key'] ?? '' {
  try {
    try {
      session = vod.Session.fromPickleEncrypted(
        pickleKey: key.toPickleKey(),
        pickle: dbEntry['pickle'],
      );
    } catch (_) {
      Logs().d('Unable to unpickle Olm session. Try LibOlm format.');
      session = vod.Session.fromOlmPickleEncrypted(
        pickleKey: utf8.encode(key),
        pickle: dbEntry['pickle'],
      );
    }
    sessionId = dbEntry['session_id'];
    lastReceived =
        DateTime.fromMillisecondsSinceEpoch(dbEntry['last_received'] ?? 0);
    assert(sessionId == session!.sessionId);
  } catch (e, s) {
    Logs().e('[Vodozemac] Could not unpickle olm session', e, s);
  }
}