aboutsummaryrefslogtreecommitdiff
path: root/lib/database.cpp
AgeCommit message (Collapse)Author
2022-09-26Wrap error reporting into facility macrosAlexey Rusakov
Facility macros to report Olm errors: QOLM_INTERNAL_ERROR[_X], QOLM_FAIL_OR_LOG[_X]
2022-08-25KeyVerificationSession: cleanupAlexey Rusakov
- Use std::chrono for the timeout (it's more readable and less ambiguous) and make it a local variable - Only pass a Connection object once to constructors - Ensure buildability even without E2EE (key verification is disabled in that case) - Reorder #includes - Other cleanup following clang-tidy warnings
2022-08-24Merge branch 'dev' into device-verificationAlexey Rusakov
# Conflicts: # autotests/testfilecrypto.cpp # lib/connection.cpp # lib/connection.h # lib/database.cpp # lib/database.h # lib/e2ee/qolmoutboundsession.cpp # lib/e2ee/qolmoutboundsession.h # lib/eventitem.h # lib/events/encryptedevent.cpp # lib/events/encryptedevent.h # lib/events/encryptedfile.cpp # lib/events/encryptedfile.h # lib/events/keyverificationevent.cpp # lib/events/keyverificationevent.h # lib/events/roomkeyevent.h # lib/room.cpp # lib/room.h
2022-06-21Fix a few clang-tidy/GCC warningsAlexey Rusakov
2022-05-29Refactor creation of Megolm sessions in RoomAlexey Rusakov
Notably, replace a multi-level hash map with QMultiHash and factor out Room::P::createOlmSession().
2022-05-19Use list of 3-tuple instead of mapTobias Fella
2022-05-18Make database independent of {Room, User, Connection}Tobias Fella
2022-05-18Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2022-05-16Fix build failuresTobias Fella
2022-05-16Add database migrationTobias Fella
2022-05-16More work; Update olm pickle & timestamps in database; Remove TODOsTobias Fella
2022-05-16Keep log of where we send keys and send keys to new devices and usersTobias Fella
2022-05-16Save and load outgoing megolm sessionTobias Fella
2022-05-16QOlmExpected and associated refactoringAlexey Rusakov
As mentioned in the commit introducing `Expected`, `QOlmExpected` is simply an alias for `Expected<T, QOlmError>`. This simplifies quite a few function signatures in `QOlm*` classes and collapses unwieldy `std::holds_alternative<>`/`std::get<>` constructs into a neat contextual bool cast and an invocation of `operator*` or `value()`/`error()` accessors that don't need to specify the type. While refactoring the code, I found a couple of cases of mismatching `uint32_t` and `qint32_t` in return values; a couple of cases where `decrypt()` returns `QString` which is in fact `QByteArray` (e.g., in `QOlmSession::decrypt()`); there's a repetitive algorithm in `Connection::Private::sessionDecryptPrekey()` and `sessionDecryptGeneral()`
2022-05-02Implement key verificationTobias Fella
2022-04-16Merge branch 'dev' into sendmessagesTobias Fella
2022-04-09Prepare for MSC 3700Tobias Fella
2022-04-09Check edKey when receiving an olm messageTobias Fella
2022-03-23Add database migrationTobias Fella
2022-03-10More work; Update olm pickle & timestamps in database; Remove TODOsTobias Fella
2022-03-10Keep log of where we send keys and send keys to new devices and usersTobias Fella
2022-03-10Save and load outgoing megolm sessionTobias Fella
2022-03-09Update lib/database.cppTobias Fella
Co-authored-by: Carl Schwan <carl@carlschwan.eu>
2022-03-08Store time of last decrypted message for each olm sessionTobias Fella
Is required to correctly choose a session to use for sending messages
2022-03-07Add datbase migrationTobias Fella
2022-03-07Store the device's ed25519 in the databaseTobias Fella
2022-02-24Fix all testsTobias Fella
2022-02-12Replace QPair with std::pairTobias Fella
2022-01-30Port devices list to databaseTobias Fella
2021-12-22Another improvementTobias Fella
2021-12-22Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2021-12-10Remove data from database when leaving roomTobias Fella
2021-12-10Use individual databases for each connectionTobias Fella
2021-12-09Rename databaseTobias Fella
2021-12-08Update logging categoriesTobias Fella
2021-12-07snake_case table namesTobias Fella
2021-12-07FixesTobias Fella
2021-12-07id -> matrixIdTobias Fella
2021-12-07Rename "crypto" -> "e2ee"Tobias Fella
2021-12-07Port E2EE to database instead of JSON filesTobias Fella