geobra / harbour-shmoose

XMPP Client for Sailfish OS
Other
34 stars 14 forks source link

XEP-0384: OMEMO Encryption #57

Open Neustradamus opened 4 years ago

Neustradamus commented 4 years ago

Can you add the XEP-0384: OMEMO Encryption support?

And XEP-0454: OMEMO Media sharing:

Diff Tool:

geobra commented 4 years ago

There is a branch which has experimental omemo support via the lurch plugin. But this is integration is more like a hack or POC. For a clean implementation I will use libomemo from the lurch author in the future. Any help on that is appreciated ;-)!

geobra commented 3 years ago

Pull request almost ready: https://github.com/geobra/harbour-shmoose/pull/86

geobra commented 3 years ago

@ron282 Do you have the shmoose version with omemo support running on your device? Do you use omemo for your 1to1 messaging? It would be appreciated to get some feedback if this implementation works for you.

ron282 commented 3 years ago

@geobra Yes I have one. I'm using omemo for 1to1 messaging between Conversations and Shmoose for test. Currently I'm still using Conversation for chatting 1to1 with my friends but the goal is to replace it by Shmoose. Main problem is when starting the discussion the very first start. Finally it starts to work but it is not smooth. I didn't test with two distinct devices but I will do.

geobra commented 3 years ago

I made the same experience. Shmoose needs one app restart to work properly after the first omemo message in real life scenario. But I dont know why. Within the integration tests, all is fine. Also with a complete new client setup. But the integration tests are running shmoose with shmoose. Maybe I have to search for another xmpp command line client which is able to do omemo for the test cases.

sviscapi commented 1 year ago

Hi @geobra :) I run Shmoose 0.8.0 on SFOS 4.5. I use it to chat with a friend who's using snikket (https://snikket.org/) on Android as his XMPP client on a self-hosted instance. Regular messages work fine, but OMEMO encrypted ones don't. I receive the following text whenever he tries to send me an encrypted message: "I sent you an OMEMO encrypted message but your client doesn't seem to support that. Find more information on https://conversations.im/omemo". What am I doing wrong ? Cheers, Sam

geobra commented 1 year ago

To be honest, we never tested the Omemo implementation with snikket. Our main testing is against Shmoose itself and against Conversations. But, as we just use 'lurch' for the Omemo stuff, it should work.

Things to do:

ron282 commented 1 year ago

@geobra I have a version of shmong and a version of qxmpp that work together supporting Omemo encryption version 3 compatible with Conversations. the qxmpp version is the qxmpp-sfos branch in my qxmpp repository. Lots of things are remaining to be done and to be checked: file download, etc...

geobra commented 1 year ago

@ron282 Sounds really good :-). I must try it out in the near future. I haven't had time the last weeks to work on porting topics. With this, only slow progress on my side...

ron282 commented 1 year ago

@geobra I'm now working on file download.

ron282 commented 1 year ago

@geobra I added file exchanges with and without omemo v03. I put the spec file, I'm using to compile qxmpp. But code and architecture may need to be reorganized.

geobra commented 1 year ago

Sounds good. By having a spec file for qxmpp it makes the setup and compile process more easy. I will try it out soon and give you some feedback. Do you have plans what needs to be addressed from an architecture point of view?

ron282 commented 1 year ago

i'm trying now to use the official qxmpp 1.5 build. I compile qxmpp but it requires now some changes to shmong. With the current qxmpp that works with shmong, mam and omemo are not compatible.

ron282 commented 1 year ago

I have new versions for qxmpp/libomemo-c/shmong. Qxmpp is based on the official 1.5 release. I think this is better to start from this one.

geobra commented 1 year ago

Agree. It is the best option to start from an official release.

How much changes must be done only to get it also compile with the 'old' sfos toolchain? Does it get even more worse with that release? Soon or later we should think about discuss with the qxmpp project to include, as a first step, this changes. And if your work on the omemo compatibility is stable enough, it is time to also merge this. But one step after the other ;-).

ron282 commented 1 year ago

I don't see why it won't compile with the 'old' sfos chain. When I look at the releases after the official 1.5, there 2 additional releases and the compatibility with older Qt versions is removed. So I'm not sure there is a will to integrate old omemo version for Sailfish stuck with Qt 5.6. But we should ask.

Neustradamus commented 8 months ago

It is needed to update gkdr sources but this lib does not support the current XEP-0384: OMEMO Encryption 0.8.3 version.