1
0
mirror of https://github.com/profanity-im/profanity.git synced 2024-11-03 19:37:16 -05:00

OMEMO: Don't encrypt to yourself (MUC)

As defined in XEP-0384 the application should not encrypt the message to own
devices. Within a groupchat, yourself are a recipients as well.

We will check the recipients and filter out the own device of the own jid.

This Pull Request will fix Issue: #1541
This commit is contained in:
DebXWoody 2021-05-28 21:48:43 +02:00
parent 69e3cebf26
commit 3b020144d5
No known key found for this signature in database
GPG Key ID: CBD1B596579B7FFF

View File

@ -791,6 +791,19 @@ omemo_on_message_send(ProfWin* win, const char* const message, gboolean request_
.device_id = GPOINTER_TO_INT(device_ids_iter->data)
};
// Don't encrypt for this device (according to
// <https://xmpp.org/extensions/xep-0384.html#encrypt>).
// Yourself as recipients in case of MUC
Jid* me = jid_create(connection_get_fulljid());
if ( !g_strcmp0(me->barejid, recipients_iter->data) ) {
if (GPOINTER_TO_INT(device_ids_iter->data) == omemo_ctx.device_id) {
jid_destroy(me);
log_debug("[OMEMO][SEND] Skipping %d (my device) ", GPOINTER_TO_INT(device_ids_iter->data));
continue;
}
}
jid_destroy(me);
log_debug("[OMEMO][SEND] recipients with device id %d for %s", GPOINTER_TO_INT(device_ids_iter->data), recipients_iter->data);
res = session_cipher_create(&cipher, omemo_ctx.store, &address, omemo_ctx.signal);
if (res != SG_SUCCESS ) {