Age | Commit message (Collapse) | Author |
|
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).
|
|
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
|
|
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.
|
|
|
|
Co-authored-by: Tobias Fella <9750016+TobiasFella@users.noreply.github.com>
|
|
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()`
|
|
There's no particular use in letting `QOlmError` out, only to confirm
that, well, `QOlmError` is just another form of no-match.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
This both is more reliable (GHA executes scripts in fail-fast mode) and
ensures that the return value is that of ctest.
|
|
QEventLoop refuses to work without an application object instance.
|
|
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.
|
|
|
|
QKeyValueIterator::operator->() only arrived in Qt 5.15.
|
|
The result is FTBFS as yet; next commits will fix that, along with a few
other things.
|
|
|
|
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
|
|
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
|
|
These are not required to build libQuotient, and omittable.cpp entirely
consisted of them.
|
|
|
|
|
|
|
|
|
|
Those tests don't even need an event loop.
|
|
Co-authored-by: Alexey Rusakov <Kitsune-Ral@users.sf.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Co-authored-by: Tobias Fella <9750016+TobiasFella@users.noreply.github.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|