Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XEP-0384: OMEMO Encryption #57

Open
Neustradamus opened this issue Feb 17, 2020 · 17 comments
Open

XEP-0384: OMEMO Encryption #57

Neustradamus opened this issue Feb 17, 2020 · 17 comments

Comments

@Neustradamus
Copy link

Neustradamus commented Feb 17, 2020

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

And XEP-0454: OMEMO Media sharing:

Diff Tool:

@geobra
Copy link
Owner

geobra commented Feb 22, 2020

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
Copy link
Owner

geobra commented Apr 7, 2021

Pull request almost ready:
#86

@geobra
Copy link
Owner

geobra commented Jul 13, 2021

@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
Copy link
Contributor

ron282 commented Jul 14, 2021

@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
Copy link
Owner

geobra commented Jul 17, 2021

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
Copy link

sviscapi commented Feb 16, 2023

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
Copy link
Owner

geobra commented Feb 17, 2023

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

@ron282
Copy link
Contributor

ron282 commented Mar 5, 2023

@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
Copy link
Owner

geobra commented Mar 7, 2023

@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
Copy link
Contributor

ron282 commented Mar 7, 2023

@geobra I'm now working on file download.

@ron282
Copy link
Contributor

ron282 commented Mar 17, 2023

@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
Copy link
Owner

geobra commented Mar 20, 2023

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
Copy link
Contributor

ron282 commented Mar 20, 2023

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
Copy link
Contributor

ron282 commented Mar 21, 2023

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
Copy link
Owner

geobra commented Mar 22, 2023

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
Copy link
Contributor

ron282 commented Mar 22, 2023

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
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants