harbour-shmoose icon indicating copy to clipboard operation
harbour-shmoose copied to clipboard

XEP-0384: OMEMO Encryption

Open Neustradamus opened this issue 5 years ago • 17 comments

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

  • https://xmpp.org/extensions/xep-0384.html

And XEP-0454: OMEMO Media sharing:

  • https://xmpp.org/extensions/xep-0454.html

Diff Tool:

  • 0.3.0 to current: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.3.0.html&newfile=https://xmpp.org/extensions/xep-0384.html
  • 0.8.3 to current: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.8.3.html&newfile=https://xmpp.org/extensions/xep-0384.html
  • 0.8.2 to 0.8.3: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.8.2.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.8.3.html
  • 0.8.1 to 0.8.2: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.8.1.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.8.2.html
  • 0.8.0 to 0.8.1: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.8.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.8.1.html
  • 0.7.0 to 0.8.0: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.7.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.8.0.html
  • 0.6.0 to 0.7.0: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.6.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.7.0.html
  • 0.5.0 to 0.6.0: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.5.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.6.0.html
  • 0.4.0 to 0.5.0: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.4.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.5.0.html
  • 0.3.0 to 0.4.0: http://www.aptest.com/standards/htmldiff/htmldiff.pl?oldfile=https://xmpp.org/extensions/attic/xep-0384-0.3.0.html&newfile=https://xmpp.org/extensions/attic/xep-0384-0.4.0.html

Neustradamus avatar Feb 17 '20 00:02 Neustradamus

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 avatar Feb 22 '20 19:02 geobra

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

geobra avatar Apr 07 '21 19:04 geobra

@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.

geobra avatar Jul 13 '21 19:07 geobra

@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.

ron282 avatar Jul 14 '21 10:07 ron282

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.

geobra avatar Jul 17 '21 19:07 geobra

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

sviscapi avatar Feb 16 '23 15:02 sviscapi

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:

  • Check and make sure that Omemo is activated in settings
  • Restart Shmoose after activating Omemo. It needs one or two messages before all the crypto material is exchanged
  • Test against conversations client if Omemo works at all on your device

geobra avatar Feb 17 '23 21:02 geobra

@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...

ron282 avatar Mar 05 '23 16:03 ron282

@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...

geobra avatar Mar 07 '23 19:03 geobra

@geobra I'm now working on file download.

ron282 avatar Mar 07 '23 22:03 ron282

@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.

ron282 avatar Mar 17 '23 15:03 ron282

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?

geobra avatar Mar 20 '23 20:03 geobra

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 avatar Mar 20 '23 20:03 ron282

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.

ron282 avatar Mar 21 '23 21:03 ron282

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 ;-).

geobra avatar Mar 22 '23 19:03 geobra

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.

ron282 avatar Mar 22 '23 22:03 ron282

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

Neustradamus avatar Dec 25 '23 04:12 Neustradamus