diff --git a/plugins/omemo/src/trust_manager.vala b/plugins/omemo/src/trust_manager.vala index 75c0d809..cd0971f8 100644 --- a/plugins/omemo/src/trust_manager.vala +++ b/plugins/omemo/src/trust_manager.vala @@ -247,7 +247,9 @@ public class TrustManager { StanzaNode? _encrypted = stanza.stanza.get_subnode("encrypted", NS_URI); if (_encrypted == null || MessageFlag.get_flag(stanza) != null || stanza.from == null) return false; StanzaNode encrypted = (!)_encrypted; - if (message.body == null) message.body = "[This message is OMEMO encrypted]"; + if (message.body == null && Xep.ExplicitEncryption.get_encryption_tag(stanza) == NS_URI) { + message.body = "[This message is OMEMO encrypted]"; // TODO temporary + }; if (!Plugin.ensure_context()) return false; MessageFlag flag = new MessageFlag(); stanza.add_flag(flag); diff --git a/xmpp-vala/src/module/xep/0380_explicit_encryption.vala b/xmpp-vala/src/module/xep/0380_explicit_encryption.vala index 710da92d..e956bc43 100644 --- a/xmpp-vala/src/module/xep/0380_explicit_encryption.vala +++ b/xmpp-vala/src/module/xep/0380_explicit_encryption.vala @@ -10,5 +10,13 @@ public static void add_encryption_tag_to_message(MessageStanza message, string n message.stanza.put_node(encryption); } + +public static string? get_encryption_tag(MessageStanza message) { + StanzaNode? encryption_node = message.stanza.get_subnode("encryption", NS_URI); + if (encryption_node != null) { + return encryption_node.get_attribute("namespace", NS_URI); + } + return null; +} }