gkdr / lurch

XEP-0384: OMEMO Encryption for libpurple.
GNU General Public License v3.0
289 stars 32 forks source link

Custom smileys are broken in OMEMO-enabled chat #166

Closed Reepca closed 3 years ago

Reepca commented 3 years ago

To reproduce: send a custom smiley in an OMEMO-enabled chat (I tested in a one-to-one chat).

What I expect to happen: configured image shows up for recipient.

What happens: configured shortcut text shows up for recipient.

When I disable OMEMO with /lurch disable, and then send the custom smiley again, the configured image shows up as expected for the recipient.

gkdr commented 3 years ago

hi @Reepca, thanks for the report! i checked it out and unfortunately it works as intended. this is what a message with a custom smiley looks like:

<message type='chat' id='purple16081625' to='a@localhost/qRUmNBTl'>
  <active xmlns='http://jabber.org/protocol/chatstates'/>
  <body>:test:</body>
  <html xmlns='http://jabber.org/protocol/xhtml-im'>
    <body xmlns='http://www.w3.org/1999/xhtml'>
      <p><img alt=':test:' src='cid:sha1+c35a9fc52bb556c79f8fa540df587a2bf465b940@bob.xmpp.org'/></p>
    </body>
  </html>
</message>

aside from a few exceptions (like that <active> element), all elements are stripped to prevent data leaks, since only the <body> can be encrypted. iirc, this is solved in the 'new' omemo, which encrypted the whole stanza and not just the body.