aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
* FileEncryption: EncryptionDevice: Implement atEnd()Linus Jahn2022-09-292-0/+6
| | | | Required for using in QNetworkAccessManager::put().
* Add file encryption functions and Encryption/DecryptionDeviceLinus Jahn2022-09-242-0/+353
| | | | | The devices allow it to encrypt or decrypt data on the fly when reading or writing data.
* Add shared QcaInitializerLinus Jahn2022-09-242-0/+61
| | | | Can be used by OMEMO manager and other parts of the code using QCA.
* Export TlsManager to make it available in testsLinus Jahn2022-09-131-1/+1
|
* Add global Cancelled unit structLinus Jahn2022-09-132-6/+3
| | | | | The Cancelled struct from HttpUpload is going to be used in other places.
* HttpUploadManager: Avoid UB if UploadRequestManager does not existLinus Jahn2022-09-101-0/+7
|
* CallStream: Avoid unnecessary copies by using std::move()Linus Jahn2022-09-101-6/+6
|
* CallStream: Add missing documentationLinus Jahn2022-09-101-0/+24
| | | | Fixes #430.
* Add HttpUploadManager for requesting slots and uploading filesLinus Jahn2022-09-092-0/+467
|
* Remove empty handleStanza() implementationsLinus Jahn2022-09-066-28/+1
|
* Reformat codeLinus Jahn2022-09-0621-201/+362
|
* RegistrationManager: Replace QScopedPointer with unique_ptrLinus Jahn2022-09-022-4/+2
| | | | | The <memory> header is already included and there are no reasons to use something different than non-Qt C++ projects use.
* Replace raw pointers with unique_ptrLinus Jahn2022-09-0225-101/+46
| | | | safer, simpler
* CarbonManagerV2: Mention messageReceived() can also be usedLinus Jahn2022-08-171-1/+2
| | | | | Unhandled messages from the message pipeline are passed to the messageReceived() signal of the QXmppClient.
* CarbonManagerV2: Add ctor/dtor to allow later binary-compatible changesLinus Jahn2022-08-172-0/+6
| | | | | | Explicitly adds contructor and destructor, so we can later implement other features (like adding a d-ptr) without affecting binary compatibility.
* Don't use `using Manager =` to avoid doxygen errorsLinus Jahn2022-08-151-6/+5
| | | | | Doxygen doesn't understand that the Manager alias here and in the OMEMO manager are different and so generated a lot of warnings.
* CarbonManager: Add warning about e2ee and CarbonManagerV2Linus Jahn2022-08-141-0/+2
|
* Message: Add isCarbonForwarded attributeLinus Jahn2022-08-142-0/+4
| | | | | It's now also possible to see which messages were carbon forwarded when using the CarbonManagerV2.
* Add new message carbons managerLinus Jahn2022-08-142-0/+191
| | | | | | | | | | | | The new manager automatically enabled carbons and the user doesn't need to do anything. Messages are injected into the message pipeline of the client instead of using a signal. This makes it possible to decrypt the messages in the next step or do any other possible post-processing on the message. Adapting the old manager was not possible because that would mean major behaviour change that could potentially lead to clients processing message twice.
* Split up OMEMO into extra moduleLinus Jahn2022-08-1311-6284/+0
|
* Implement XEP-0384: OMEMO Encryption v0.8Melvin Keskin2022-08-1313-0/+6288
| | | | | | | | | | | | | | | This implements XEP-0384 in version v0.8 with a manager and storage classes to be user-implemented for persistant storage. The license of the code is LGPL-2.1-or-later as usual. However since libomemo-c (libsignal-protocol-c) is GPL-3.0, the built binary is always licensed under GPL-3.0. Having our code LGPL licensed will make it avoids relicensing in the future in case we port it to an LGPL compatible omemo library. Closes #133. Co-authored-by: Linus Jahn <lnj@kaidan.im>
* Client: e2ee: Check IQ response is valid before decryptingLinus Jahn2022-08-081-3/+15
| | | | This way the extensions don't need to check that.
* Stanza: Move E2eeMetadata into own header fileLinus Jahn2022-07-113-0/+3
|
* AtmManager: Send trust messages only to endpoints with authenticated keysMelvin Keskin2022-06-181-1/+5
|
* Move SecurityPolicy, TrustLevel intro extra headersLinus Jahn2022-06-1811-96/+161
| | | | | This avoids the need to include the whole TrustStorage in files like SendStanzaParams.h.
* SendStanzaParams: Add accepted trust levelsMelvin Keskin2022-06-182-0/+34
|
* Add move constructors and move assignment operators everywhereLinus Jahn2022-06-182-0/+6
| | | | | This is so std::move() on implicitly-shared types actually moves the content and doesn't call the copy ctor/assignment operator.
* Adapt clang-formatLinus Jahn2022-06-172-3/+3
|
* Fix typos in documentation and testsMelvin Keskin2022-06-142-3/+3
|
* Client: injectIq: Fix missing ID on error replyLinus Jahn2022-06-071-0/+1
|
* Remove PubSubEventManager (in favour of EventHandler)Linus Jahn2022-05-286-40/+25
|
* Apply 'clang-format' (#429)Melvin Keskin2022-05-284-5/+5
|
* QXmppCallStream: use new GStreamer methodBoris Pek2022-05-281-0/+4
| | | | instead of deprecated one when build with GStreamer >= 1.20.0
* SendStanzaParams: Fix typo in setter nameLinus Jahn2022-05-242-2/+2
|
* Client: Add SendStanzaParams parameter to send functionsLinus Jahn2022-05-223-19/+27
| | | | It can already be used by E2eeExtension.
* Add SendStanzaParams for passing additional parametersLinus Jahn2022-05-222-0/+83
| | | | For now only contains a list of JIDs the stanza should be encrypted for.
* E2eeExtension: Rename EncryptMessageResult to MessageEncryptResultLinus Jahn2022-05-203-8/+6
|
* Make E2eeExtension a QXmppExtensionLinus Jahn2022-05-201-1/+2
|
* MessageReceiptHandler: Implement MessageHandlerLinus Jahn2022-05-202-13/+9
|
* Add MessageHandler interfaceLinus Jahn2022-05-206-1/+98
|
* PubSubEventManager: Inherit from EventHandlerLinus Jahn2022-05-202-7/+4
| | | | | EventManager now provides the interface from EventHandler, inherits from ClientExtension and provides a utility pubSub() getter.
* Add PubSubEventHandler based on QXmppExtensionLinus Jahn2022-05-202-0/+39
|
* ClientExtension: Inherit from ExtensionLinus Jahn2022-05-201-1/+2
|
* Client: injectIq: Send error IQ on unhandled IQsLinus Jahn2022-05-201-1/+19
|
* ClientExtension: Add injectIq() functionLinus Jahn2022-05-204-0/+29
|
* Client: Don't pass encrypted stanzas to old managersLinus Jahn2022-05-202-1/+9
| | | | | | Old managers means managers only using the old handleStanza() overload. Such managers are likely not handling the encrypted contents correctly (e.g. sending unencrypted replies and thereby leaking information).
* Client: Refactor: Use new 'StanzaPipeline'Linus Jahn2022-05-201-10/+18
| | | | | This is going to become useful when the other pipelines (messages, IQs) will follow.
* Client: Add reply() picking the encryption based on the received stanzaLinus Jahn2022-05-202-0/+20
| | | | | Currently does not support multiple encryptions, so the implementation is rather simple.
* ClientExtension: Add handleStanza() overload with e2ee metdataLinus Jahn2022-05-183-9/+43
| | | | | | | | | For handling end-to-end-encrypted stanzas it is important to know whether and which encryption was used. This is especially important for replying to IQ stanzas (with the correct encryption). Currently the e2eeMetadata parameter is unused (always nullopt). This is going to change in the following commits.
* TrustManager: Fix warningMelvin Keskin2022-05-091-1/+1
|