From 36cb62748b1a1c98d64ea3e8cfce0ef1cb5ba0c4 Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Tue, 12 Jun 2018 09:45:26 +0300 Subject: Add menu option to enable encryption in a private room --- src/Cache.cc | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/Cache.cc') diff --git a/src/Cache.cc b/src/Cache.cc index 150990b7..48b1fdaf 100644 --- a/src/Cache.cc +++ b/src/Cache.cc @@ -60,7 +60,7 @@ constexpr auto DEVICES_DB("devices"); //! device_id -> device keys constexpr auto DEVICE_KEYS_DB("device_keys"); //! room_ids that have encryption enabled. -// constexpr auto ENCRYPTED_ROOMS_DB("encrypted_rooms"); +constexpr auto ENCRYPTED_ROOMS_DB("encrypted_rooms"); //! MegolmSessionIndex -> pickled OlmInboundGroupSession constexpr auto INBOUND_MEGOLM_SESSIONS_DB("inbound_megolm_sessions"); @@ -184,6 +184,30 @@ Cache::setup() txn.commit(); } +void +Cache::setEncryptedRoom(const std::string &room_id) +{ + log::db()->info("mark room {} as encrypted", room_id); + + auto txn = lmdb::txn::begin(env_); + auto db = lmdb::dbi::open(txn, ENCRYPTED_ROOMS_DB, MDB_CREATE); + lmdb::dbi_put(txn, db, lmdb::val(room_id), lmdb::val("0")); + txn.commit(); +} + +bool +Cache::isRoomEncrypted(const std::string &room_id) +{ + lmdb::val unused; + + auto txn = lmdb::txn::begin(env_); + auto db = lmdb::dbi::open(txn, ENCRYPTED_ROOMS_DB, MDB_CREATE); + auto res = lmdb::dbi_get(txn, db, lmdb::val(room_id), unused); + txn.commit(); + + return res; +} + // // Device Management // -- cgit 1.5.1