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
OMEMO support #658
Comments
I think this would be quiet nice, it would also attract potential new users. |
Just read about OMEMO, good vibes! |
A c library is available at |
👍 How functional is that library? |
This Blog is only about the integration into Conversations. The library was developped by OpenWhisperSystems - the company behind TextSecure / Signals There were no updates to the library - but there are also no reported issues. |
Would be possible to leverage the Python Plugins API to use e.g. https://python-omemo.readthedocs.org/en/latest/ ? |
@ReneVolution I'm still working on the python support (it works but need to tidy up object referencing and threading). Releasing an ONEMO plugin along with the 0.5.0 release would be a really great thing to have, however I probably don't have time to do both the plugins framework and the plugin! If anyone would be interested in attempting this ONEMO plugin, let me know, there are no doubt additional functions/hooks that will be needed in the API but I can implement those alongside any plugin work. |
Hey @boothj5, i will try to work on that during a PythonCamp (https://barcamptools.eu/pycamp201604/sessions) and may need a bit help in advance. From what i understand i need to at least have control over the actual message sending/receiving and manipulate the raw message data there. Is that correct so far? Can you give me some hints on that? |
Nice one. Happy to help out as much as I can before the event. As you say, we'll probably need to access the raw XMPP stanza's on send and receive, and the ability to send stanza's from a plugin, which is not currently in the API. In principle this should not be too hard to add, the underlying XMPP library has various functions to get the stanza raw text, and send raw stanzas (although the latter is not in the libraries public API, again should be easy to add). Another thing which might be useful that I'm planning to add, is to allow plugins to store and retrieve custom settings, similar to how they currently can use their own themes. I'll keep this issue up to date as I make the changes, and feel free to post any ideas/questions etc. |
Awesome. Yes, storing and retrieving plugin settings would be great as well. I am also working on another plugin which ON | OFF states would be great to be saved. Also the state has to be saved per connection in the same way as with e.g. /otr start from a plugin side. Thanks for helping with this. |
I've added Also created a new issue which I'll update as the functions are added #772 |
As per #772 the send and receive stanza hooks have been added. I'm guessing the OMEMO plugin would return I did originally think the receive hooks could return a modified stanza (or the original) for Profanity to continue processing similar to the send hooks. But then Profanity could easily be broken by a plugin returning a stanza it doesn't know how to process (which is not the case with sending). So it seemed better to let the plugin choose to take ownership of processing the stanza, as long as the required UI functions are available in the API. |
Wow man, that is really great news. I am really looking forward for the weekend now :). |
Hey, just wanted to check if there is any progress on the prof_incoming_message() hook? I have just started working on the plugin. :) |
@ReneVolution sorry I missed you in chat, was out all day. How did things go? I have added a |
@boothj5 no worries. Things did go well so far. Anyway i did not manage to create a prototype yet. The Barcamps seems to be more about talks than about coding :), Will try to work on it tomorrow. You can follow the progress here: https://github.com/ReneVolution/profanity-omemo-plugin Thanks for adding the missing hook. Talk to you soon. |
Hey @boothj5, i am actually stuck with a part of the spec i can't figure out and hope you can help me out here. "In order to determine whether a given contact has devices that support OMEMO, the devicelist node in PEP is consulted. Devices MUST subscribe to 'urn:xmpp:omemo:0:devicelist' via PEP, so that they are informed whenever their contacts add a new device. They MUST cache the most up-to-date version of the devicelist." So, from what i understand is that i have to subscribe to the devicelist event, but i actually can't figure our how. Do i need to add this to the disco in some way? Any help help here is desperately appreciated :) |
add urn:xmpp:omemo:0:devicelist+notify to your disco. Since the XEP doesn't have an official number yet both gajim and Conversations use a private namespace. So you might want to make the name space configurable in some central place and use the Conversations namespace for the time being. Have a look here: https://github.com/siacs/Conversations/blob/master/src/main/java/eu/siacs/conversations/crypto/axolotl/AxolotlService.java#L54 |
Thanks for helping out here. I'm happy i was on the right track :) |
@ReneVolution Any news? Are you still working on it? |
I am indeed. But still can't confirm any ETA for it. |
Any News about this issue? CC: @ReneVolution |
Ooohh /o\ ... this one fell so off my radar. Will try to catch up next weekend. |
Hey everyone, sorry for being not very responsive on this project. I've recently become a dad and so the focus shifted drastically 😸. Also, I think @reedts approach (providing a native c plugin) which may be included upstream is the better approach. I am looking forward to see that in action. That being said, I am no longer maintaining the Python plugin. In case anyone still wants to pick it up as-is - please feel free too. Thanks. It was a great journey in a great community. |
@divansantana Unfortunately still WIP. |
We try to have OMEMO support in profanity 0.7.0 |
That would be great! OMEMO is the only reason why I'm not using profanity anymore. |
@jubalh is there any effort to implement omemo within profanity? Currently there is not much progress on the c plug in. |
@philipflohr yes someone started two days ago to work on implementing it directly in profanity. makes good progress. do you want to join? I saw that you cloned the c plugin recently. |
I'm not sure if I'm able to do much work as I'm currently writing my master thesis but I'm interested in helping. |
@jubalh @philipflohr draft PR is #1039. To do list has still some items but we can start to send receive encrypted messages. |
Great work @paulfariello ! |
#1039 PR should have enough progress so it can be tested. Feel free to play with it and to comment the PR if you find any issue. |
When possible I always look at each commit done to the PR. It would be nice to have @pasis opinion and review at one point too. Maybe even @iNPUTmice could also take a look at OMEMO implementation. |
Hey Guys, I have been building new versions of profanity from the 'feature/omemo' branch for a couple of days now. However, lately profanity would get stuck during connecting to the server. I have now taken the time to find the exact commit that breaks for me. What happens is that profanity starts normally, but when I type
At this point it does no longer accept any input or print any output. Also my account never appears 'online' so I guess profanity is not sending out any further messages either. Debug output stops as well. I kann still kill the process with signal 15. If I remove the omemo information ( Here is some information for the broken version: profanity --version
ldd:
last lines of DEBUG output:
|
Thanks for giving a try on this PR. Right now I have no idea why 34ad7a5 would break connection. But let's dig into it anyway. Could you |
@paulfariello Thank you for the quick reply. Here we go:
|
Does it stay stuck really long? |
@paulfariello You are right, it was waiting for random data. I've had it wait for several minutes before killing it. Starting |
Good to know. And good to know that libsodium didn't produce such an issue 😋 . |
@paulfariello sure. I built a new version from HEAD and disabled strace -p 5104
The output does not stop there, it keeps repeating over and over. |
With Profanity now starting I had a chance to actually test the omemo functionality. Unfortunately, when I run Here is what gdb prints when I start profanity through gdb:
I built from the current HEAD (a38d10b) for testing, here is the version information:
|
@NiklausHofer can you provide a full backtrace from gdb and use a debug build of profanity? |
Here is the backtrace. It will take me a moment before I can do a debug build of the software:
|
OK, when I compile a debug version ( |
Would be super cool if comments about the current state of the OMEMO feature branch and testing it could be done at #1039 I think it belongs there. Thanks guys! |
@paulfariello did a great job with implementing OMEMO. I hope a code review can happen soon and then I will merge into master. Please everybody who has some time to spare help with reviewing the code in the feature branch or help by testing the changes. If you test the branch and everything works fine, please still comment on this issue so we know more people tested and had no issues. Thanks guys! |
After 4 years this issue can finally be closed. Thanks a lot to @paulfariello for all his work implementing this, and to @kaffeekanne for testing! |
http://conversations.im/omemo/
Would be nice
The text was updated successfully, but these errors were encountered: