profanity-im / profanity

Ncurses based XMPP client
https://profanity-im.github.io/
Other
1.32k stars 186 forks source link

OMEMO feature tracker #1070

Closed jubalh closed 2 years ago

jubalh commented 5 years ago

Original issue requesting OMEMO support: https://github.com/boothj5/profanity/issues/658 General OMEMO support was implemented in https://github.com/boothj5/profanity/pull/1039

Some features are missing. This tracker bug is there to give an overview of what we have and what we are working on.

kaffeekanne commented 5 years ago

Even if it might not be implemented i would add trusting without mutual roster entry/subscription. Background: You would not want to cludder up your roster with every aquaintance of a greater MUC, although you share common interes/goal that leads you to taking part in a E2EE MUC.

Since MUCs need to be non anonymous you get the JID of the MUC participants anyway and could manage the keys the way it is done already.

paulfariello commented 5 years ago

@kaffekanne this issue should have been solved when I added support for publish-option in device list and bundle. Can you test it?

kaffeekanne commented 5 years ago

Do you have a branch or PR for it already?

moppman commented 5 years ago

Is there a way to trust your account's own fingerprints from other clients you use? Right now, omemo messages are only encrypted for profanity and the chat partner, but not for my other clients. If I try /omemo fingerprint in the main window, my account's fingerprints are listed. However, I can't trust them with /omemo trust <fingerprint>. profanity.log says: prof: ERR: OMEMO: cannot encrypt key for my@account device id <id> for all my other devices.

wstrm commented 5 years ago

@moppman Have you tried by specifying your JID? Like:

/omemo trust me@example.com <fingerprint>
moppman commented 5 years ago

@optmzr Yes, that seemed to work, thank you! Now my other clients can decrypt messages sent by profanity. However, profanity still does not display omemo messages sent by my other clients (not even the "placeholder" message body that Dino or Converse send as fallback like "omemo message could not be decrypted")

paulfariello commented 5 years ago

hi @moppman did you enabled carbons with /carbons on?

moppman commented 5 years ago

hi @paulfariello I wasn't aware that I had to enable carbons explicitely, thanks for you quick help! Now profanity displays the carboned messages sent by Dino and Converse, however, they don't get decrypted by profanity. Log: prof: WRN: Carbon received with no message. prof: ERR: OMEMO: cannot decrypt message: Checksum error for Converse carbons and prof: WRN: Carbon received with no message. prof: ERR: OMEMO: invalid key length for Dino carbons.

paulfariello commented 5 years ago

Could you open a dedicated issue for that?

moppman commented 5 years ago

1107

kaffeekanne commented 5 years ago

To improve omemo i would suggest /omemo fingerprint placed in a muc window showing all fingerprints of the MUC participants. This way one could see missing trusts. At the moment i would have to cycle through 1:1 chats with every participant. Also /omemo [trust|untrust] ... should work in MUCs.

quite commented 5 years ago

s/not all key trusted/& #1185/

jubalh commented 4 years ago

OMEMO 0.4: https://github.com/xsf/xeps/pull/903

Neustradamus commented 4 years ago

There is now a 0.4.0+ which break all:

kaffeekanne commented 3 years ago

Sending files is solved, i guess. Also i suggest a new entry on this list: "Improve first time setup". The way it is now (in console window):

/omemo gen
/omemo fingerprint
/omemo trust <own-jid> <fingerprint>
/omemo trust <own-...

Especially the trusting without completion of jid and fingerprints is very cumbersome. Starting a chat with oneself unfortunately does not bring completion as it does for other chat partners.

DebXWoody commented 3 years ago

The last weeks I did some improvements for OMEMO, The debug logging has been improved to see whats going on.

I was able to provide the following patches:

It seems there is still an issue with MAM. When I open a chat window, I get You received a message encrypted with OMEMO but your client doesn't support OMEMO. The message itself has been stored in chatlog.db with omemo flag. From database point of view it looks fine.

Before I start to take a look into the MAM issue, I would like check what we should do with #1544.

jubalh commented 3 years ago

It seems there is still an issue with MAM. When I open a chat window, I get You received a message encrypted with OMEMO but your client doesn't support OMEMO. The message itself has been stored in chatlog.db with omemo flag. From database point of view it looks fine.

There is no MAM issue :) We just send a new MAM request and display what we get. We add it to the DB (once) but don't retrieve from there yet.

MAM is just not finished (many things need to be done there).

jubalh commented 2 years ago

OMEMO support is done since some time.

jubalh commented 1 year ago

To support new OMEMO we will need https://github.com/dino/libomemo-c instead of libsignal-c. openSUSE package exists already. Other distros will probably follow. Next version of Dino will also depend on it.