Converse.js: XEP-0384: OMEMO Encryption

Created on 6 Oct 2015  路  37Comments  路  Source: conversejs/converse.js

Request for adding support for omemo encryption http://conversations.im/xeps/multi-end.html

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Feature

Most helpful comment

OMEMO support has been added. Tested with Conversations.

All 37 comments

would be great getting this !

+1

I am very interested in this, too.

I'm also very interested. That's really a great feature.

+1
would fit perfectly with the Conversations Android App, which also supports omemo

What are the blockers you have that are preventing implimentation of OMEMO?

@herbsmn I currently don't have the time for it.

There is a pending GSOC Proposal for this feature.

Maybe someone want to implement OMEMO support for bounty ? We can discuss )

Unfortunately converse.js didn't get any GSOC students this year.

There were three applications, but none of them made the cut. The decision was made by the XSF foundation and myself. What also played a role was that I wasn't able to find a backup mentor to help me this year.

This means that there's nobody working on OMEMO currently.

@ignatdoc Why don't you simply post a bounty on bountysource? The link is in the ticket description. The money doesn't get subtracted unless and until this ticket gets closed.

This applies to anyone else who wants to see this ticket move forward.

jsxc has a new OMEMO plugin:
https://github.com/jsxc/jsxc-plugin-omemo

I hope this helps since it's written in javascript.

Conversations now is encrypting with OMEMO by default, what can break communication. Would be nice to have this now also in Converse.js !

how is the progress on this? what needs to be done? i see some commits... :)

Most of session and key management is implemented. Actual encryption of messages is not yet done.

https://github.com/conversejs/converse.js/compare/converse-omemo its this branch you have been working on?

yes

OMEMO support has been added. Tested with Conversations.

how do you enable it?

how do you enable it?

libsignal needs to be loaded and available. Then you will see a lock icon in the chat toolbar.

okay got it, just do a wget "https://raw.githubusercontent.com/signalapp/libsignal-protocol-javascript/master/dist/libsignal-protocol.js" and include it by adding <script src="/static/libsignal-protocol.js"></script> in html file. ;)

Is there any way of qrcode to scan for Conversations and co?

I wanted to try OMEMO from https://inverse.chat/ or https://conversejs.org/.
I can't find the "lock" you mention above there, however.
Looking at the page source, I find:
<script src="3rdparty/libsignal-protocol-javascript/dist/libsignal-protocol.js"></script>
Unfortunately, that file gives me a 404.
Is there a problem with that link or am I just missing something?

@MatthiasKauer Should be fixed now, thanks for reporting.

@MatthiasKauer Should be fixed now, thanks for reporting.

sounds easy, but sorry, I could not find any lock icon, neither at https://inverse.chat/ nor at https://conversejs.org/ although libsignal is included and available.
(I use firefox 60.1.0esr (64-bit) on RHEL 6.10)

It's fixed as far as I can tell.
I happily used inverse.chat yesterday.

On October 23, 2018 4:22:50 PM GMT+08:00, MaggusK notifications@github.com wrote:

@MatthiasKauer Should be fixed now, thanks for reporting.

sounds easy, but sorry, I could not find any lock icon, neither at
https://inverse.chat/ nor at https://conversejs.org/ although libsignal
is included an available.
(I use firefox 60.1.0esr (64-bit) on RHEL 6.10)

--
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub:
https://github.com/conversejs/converse.js/issues/497#issuecomment-432146349

It's fixed as far as I can tell. I happily used inverse.chat yesterday.
@MatthiasKauer:
I'm really pleased for you. Could you please tell me how to use omemo on this sites? As you can see on the screenshot there is nothing like a lock icon :(
screenshot-inverse chat-2018-10-23-12-02-25

obviously OMEMO encryption is only supported for XMPP IDs of the same server. I created a new conversejs ID and with this encryption works on conversejs.org. But also the conversejs ID does not work on inverse.chat as all my other IDs don't.
Is there anybody who can explain this?

obviously OMEMO encryption is only supported for XMPP IDs of the same server.

No, this is not true. OMEMO encryption is client-based and largely independent of the server (as long as it is modern enough to implement PEP).

I created a new conversejs ID and with this encryption works on conversejs.org. But also the conversejs ID does not work on inverse.chat as all my other IDs don't.

Both users need to use an OMEMO compliant client. What did the other user use?

Both users need to use an OMEMO compliant client. What did the other user use?

I always chat with the same other jabber.de user that is using conversations. If I log in with my new conversejs.org ID it works.
So, is there an explanation, why, if I log in with my jabber.de ID I can not send encypted messages to the same user with the same client?
I also tried to logout / login again, even to remove / add contact again.

As you can see on the screenshot above it also doesn't decrypt the received OMEMO encrypted messages from conversations.

@MaggusK I don't know. Maybe you have old cached JavaScript files? Clear your cache and then check again.

@jcbrand : I found out, there is also a jabber webchat at https://chat.jabber.de/ (using conversejs).
If I login with my jabber.de ID I can see the lock icon there, but an error occurs while sending a message: "_Sorry, could not send the message due to an error. bundle is undefined_". Unencryptet messages can be delivered. What ever this could be?! Seems there is a problem with the jabber ID.
Maybe this is also the reason, why the file adding icon isn't appearing.

How do I enable omemo in converse? Every message is unencrypted for me.

Edit: I used an untrusted device as option. But with a trusted device it still does not work in a group channel. Why?

@NicoHood Not for groups yet.

Just 1:1 for now.

But then this list ist wrong:
http://omemo.top/

Is there any plan for converse.js to support group chat and OMEMO?

@jcbrand: OMEMO works in groups if all users have OMEMO keys of all users in the group.

Can you look it?

Was this page helpful?
0 / 5 - 0 ratings