vanitasvitae / Smack

A modular and portable open source XMPP client library written in Java for Android and Java (SE) VMs
https://igniterealtime.org/projects/smack/
Apache License 2.0
16 stars 3 forks source link

Receiver gets "you don't have Omemo message" even though they do #13

Closed n8fr8 closed 7 years ago

n8fr8 commented 7 years ago

Testing against ChatSecure iOS, it receives and decrypts my omemo message successfully, but it also receives and shows the "I sent you an OMEMO encrypt message but you client doesn't seem to support that...".

vanitasvitae commented 7 years ago

That's actually a bug in ChatSecure-iOS (see https://github.com/ChatSecure/ChatSecure-iOS/issues/717). The OMEMO specification states that the client should treat the decrypted payload element as the body of the message. ChatSecure should recognize the EME tag (XEP-0380) and hide the body in encrypted messages.

You should see the same result when decrypting messages with ChatSecure-iOS that were sent from Gajim or Conversations.

As a workaround, you could remove this line from the code.

n8fr8 commented 7 years ago

Hey @chrisballinger what do you think?

chrisballinger commented 7 years ago

@n8fr8 I have no objections to changing this and adding 0380 hints for OMEMO and OTR. I wasn't aware that plaintext messages were being displayed in addition to the OMEMO payloads. I've never seen plaintext messages when receiving OMEMO messages from Conversations and haven't tested much with Gajim.

Sending out the additional fallback message is a good idea and we should try to standardize on something that includes a generic link for additional information about OMEMO / compatible clients.

vanitasvitae commented 7 years ago

@n8fr8 I made appending the OMEMO hint optional, as well as some other things. You might want to give the configuration options a try ;)