Add MUC message decryption

This commit is contained in:
Paul Fariello
2019-03-14 22:05:47 +02:20
parent 33b0b46420
commit a3897abba1
5 changed files with 60 additions and 22 deletions

View File

@@ -723,10 +723,16 @@ _handle_groupchat(xmpp_stanza_t *const stanza)
return;
}
message = xmpp_message_get_body(stanza);
#ifdef HAVE_OMEMO
message = omemo_receive_message(stanza);
#endif
if (!message) {
jid_destroy(jid);
return;
message = xmpp_message_get_body(stanza);
if (!message) {
jid_destroy(jid);
return;
}
}
// determine if the notifications happened whilst offline

View File

@@ -197,6 +197,8 @@ omemo_start_device_session_handle_bundle(xmpp_stanza_t *const stanza, void *cons
char *
omemo_receive_message(xmpp_stanza_t *const stanza)
{
const char *type = xmpp_stanza_get_type(stanza);
xmpp_stanza_t *encrypted = xmpp_stanza_get_child_by_ns(stanza, STANZA_NS_OMEMO);
if (!encrypted) {
return NULL;
@@ -264,11 +266,10 @@ skip:
}
const char *from = xmpp_stanza_get_from(stanza);
Jid *jid = jid_create(from);
char *plaintext = omemo_on_message_recv(jid->barejid, sid, iv_raw, iv_len, keys, payload_raw, payload_len);
jid_destroy(jid);
char *plaintext = omemo_on_message_recv(from, sid, iv_raw, iv_len,
keys, payload_raw, payload_len,
g_strcmp0(type, STANZA_TYPE_GROUPCHAT) == 0);
return plaintext;
}