aboutsummaryrefslogtreecommitdiff
path: root/src/client
Commit message (Collapse)AuthorAgeFilesLines
* E2eeExtension: Add isEncrypted() and decryptMessage() functionsLinus Jahn2022-10-182-1/+30
|
* EntityTimeManager: Use new IQ request handlingLinus Jahn2022-10-172-18/+23
|
* VersionManager: Use new IQ request handlingLinus Jahn2022-10-172-13/+19
|
* DiscoveryManager: Use new IQ request handlingLinus Jahn2022-10-172-17/+31
|
* Add automated IQ request handling functionsLinus Jahn2022-10-172-0/+306
|
* Implement XEP-0444: Message Reactions (#492)Melvin Keskin2022-10-161-0/+2
| | | https://xmpp.org/extensions/xep-0444.html
* FileSharingManager: Rename sendFile to uploadFileLinus Jahn2022-10-022-6/+6
|
* HttpFileSharingProvider: Report errors from the output device, clean upLinus Jahn2022-10-021-23/+33
|
* FileUpload/Download: Use result() getter instead of signal parameterLinus Jahn2022-10-022-17/+61
| | | | | | The signal parameter does not work with immediately finishing uploads/downloads (i.e. when an error happened while starting). The user can't handle the result in that case.
* FileUpload/Download: Avoid unnecessary virtual functionsLinus Jahn2022-10-028-349/+366
|
* FileSharingManager: Verify hashes of downloaded filesLinus Jahn2022-10-023-3/+111
| | | | Can only handle QFiles currently.
* HttpFileProvider: Require HttpUploadManager as parameterLinus Jahn2022-10-022-13/+6
| | | | | This is more explicit than taking the QXmppClient and asserting it has an HttpUploadManager registered.
* Rename EncryptedHttpProvider to EncryptedProviderLinus Jahn2022-10-023-22/+22
|
* Make EncryptedHttpFileSharingProvider able to handle not just httpLinus Jahn2022-10-024-18/+45
| | | | | However it is still limited by the sources supported by EncryptedHttpFileSource.
* FileTransfer: Require some functions to be constLinus Jahn2022-10-022-12/+12
|
* Generate QXmppUpload/Download only by FileSharingManagerLinus Jahn2022-10-029-272/+325
| | | | | | | | | | Previously all the providers had to subclass the QXmppUpload/Download. It should be much easier to do additional tasks (e.g. hashing after downloading) now because the manager (and not the provider) decides when to emit the finished signal. Making the encrypted source provider able to handle arbitrary unencrypted sources should be possible too.
* FileSharingManager: Also generate SHA3-256 or BLAKE2b256 hashesLinus Jahn2022-10-011-1/+14
| | | | | The file sharing manager now generates SHA-256+SHA3-256 with Qt 5 and SHA-256+BLAKE2b256 with Qt 6.
* Implement XEP-0167: Jingle RTP Sessions Informational Messages (#460)Melvin Keskin2022-10-011-2/+1
|
* FileSharingManager: Use private class with d-ptrLinus Jahn2022-09-302-11/+23
|
* FileSharingManager: Fix type in registerProviderLinus Jahn2022-09-301-1/+2
|
* Fix build with Qt 5.9Linus Jahn2022-09-302-0/+15
|
* HttpFileSharingProvider: Keep original filename when known (#480)Jonah Brüchert2022-09-301-1/+2
| | | | This is unfortunatly required for compatiblity with legacy clients, because they rely on the url to figure out the file type.
* Implement XEP-0448: Stateless File SharingJonah Brüchert2022-09-2914-7/+961
| | | | | | | | | This adds a file sharing manager that is capable of using multiple back ends. Currently implemented are a normal HTTP File Upload backend and an encrypted HTTP File Upload. Jingle File Transfer could be implemented later. Co-authored-by: Linus Jahn <lnj@kaidan.im>
* HttpUploadManager: Use unique_ptr for data device (#479)Jonah Brüchert2022-09-292-7/+8
|
* HttpUploadManager: Only allow https urls (#478)Jonah Brüchert2022-09-291-0/+8
|
* 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.