aboutsummaryrefslogtreecommitdiff
path: root/autotests
AgeCommit message (Collapse)Author
2022-05-31Tweak QOlmAccount and data structures aroundAlexey Rusakov
This is mainly to plug the definition of a string-to-variant map for one-time keys (see https://spec.matrix.org/v1.2/client-server-api/#key-algorithms) into the CS API generated code (see the "shortcut OneTimeKeys" commit for gtad.yaml); but along with it came considerable streamlining of code in qolmaccount.cpp. Using std::variant to store that map also warranted converters.h to gain support for that type (even wider than toJson() that is already in dev - a non-trivial merge from dev is in order).
2022-05-20Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2022-05-20Truncate ciphertext buffer to actual size during file encryptionTobias Fella
The ciphertext for AES CTR is exactly as large as the plaintext (not necessarily a multiple of the blocksize!). By truncating the ciphertext, we do not send bytes that will be decrypted to gibberish. As a side node, we probably do not need to initialize the ciphertext buffer larger than the plaintext size at all, but the OpenSSL docs are a bit vague about that.
2022-05-16Implement sending encrypted filesTobias Fella
2022-05-16Update autotests/testolmutility.cppAlexey Rusakov
Co-authored-by: Tobias Fella <9750016+TobiasFella@users.noreply.github.com>
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-16Simplify QOlmSession::matchesInboundSession*()Alexey Rusakov
There's no particular use in letting `QOlmError` out, only to confirm that, well, `QOlmError` is just another form of no-match.
2022-05-16Optimise #includes for QOlm* classesAlexey Rusakov
2022-02-24Fix all testsTobias Fella
2022-02-24Fix testTobias Fella
2022-02-23Fix tests a bitTobias Fella
2022-02-18TestOlmAccount::claimKeys(): auth bob as bob, not as aliceAlexey Rusakov
2022-02-18testolmaccount.cpp: cleanupAlexey Rusakov
2022-02-18TestOlmAccount: align homeserver address with that in run-tests.shAlexey Rusakov
It would probably be even better to pass the homeserver address in the environment but that's a bigger endeavour. Also: reformatted CREATE_CONNECTION macro.
2022-02-18testgroupsession.*: fix TestOlmSession copy-pastaAlexey Rusakov
2022-02-18run-tests.sh: use a trap for cleanupAlexey Rusakov
This both is more reliable (GHA executes scripts in fail-fast mode) and ensures that the return value is that of ctest.
2022-02-18Use QCoreApplication in autotestsAlexey Rusakov
QEventLoop refuses to work without an application object instance.
2022-02-18CI: setup mock Synapse before running ctestAlexey Rusakov
To use this in CI required extending/fixing autotests/run-tests.sh: it can now accept arguments that are further passed to ctest invocation, and it no more cd's to the build directory because build directories can be in all kinds of places, expecting the caller to pick the directory upfront.
2022-02-17Don't create QApplications in testsTobias Fella
2022-02-16TestOlmUtility: fix building with Qt 5.12Alexey Rusakov
QKeyValueIterator::operator->() only arrived in Qt 5.15.
2022-02-13Merge branch 'dev'Alexey Rusakov
The result is FTBFS as yet; next commits will fix that, along with a few other things.
2022-02-07Remove encryptionmanager and various fixesTobias Fella
2022-01-30Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2022-01-29Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2022-01-23Move away Omittable static tests to autotests/Alexey Rusakov
These are not required to build libQuotient, and omittable.cpp entirely consisted of them.
2021-12-25Move run-tests.shTobias Fella
2021-12-24Apply suggestionsTobias Fella
2021-12-10Fix compilation of tests against older qtTobias Fella
2021-12-07Rename "crypto" -> "e2ee"Tobias Fella
2021-12-06autotests/: don't instantiate QApplicationAlexey Rusakov
Those tests don't even need an event loop.
2021-12-01Apply suggestions from code reviewTobias Fella
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
2021-12-01More improvementsTobias Fella
2021-12-01Remove outdated commentTobias Fella
2021-12-01Fix setting encrypted flag in roomsCarl Schwan
2021-12-01Add a test (now failing)Carl Schwan
2021-12-01Text: Add KeyChange testCarl Schwan
2021-12-01Fix testsCarl Schwan
2021-12-01test: Add QueryKey test (failing)Carl Schwan
2021-12-01Finish writing TestOlmAccount::signatureValidCarl Schwan
2021-12-01Fix everythingCarl Schwan
2021-12-01sslCarl Schwan
2021-12-01Apply suggestions from code reviewCarl Schwan
Co-authored-by: Tobias Fella <9750016+TobiasFella@users.noreply.github.com>
2021-12-01fix typoCarl Schwan
2021-12-01Apply a few more commentsCarl Schwan
2021-12-01Fix signing keysCarl Schwan
2021-12-01More test but still failing in signing/signature verificationCarl Schwan
2021-12-01Add more test and use macro to remove duplicated codeCarl Schwan
2021-12-01Key verificationCarl Schwan
2021-12-01More testsCarl Schwan
2021-12-01Fix testCarl Schwan