Implement XEP-0380 for the OMEMO and OpenPGP plugins (#359)

* Implement XEP-0380 in a naive fashion for both the OMEMO and OpenPGP plugins

* Move the XEP-0380 namespace to a constant

* Move the implementation for xep-0380 to its own module

* Remove un-needed lines from plugins/openpgp/src/stream_module.vala
This commit is contained in:
Samuel Hand 2018-05-28 15:19:51 +01:00 committed by fiaxh
parent 5425243203
commit 62e5e6485e
4 changed files with 17 additions and 0 deletions

View File

@ -94,6 +94,7 @@ public class StreamModule : XmppStreamModule {
}
message.stanza.put_node(encrypted);
Xep.ExplicitEncryption.add_encryption_tag_to_message(message, NS_URI, "OMEMO");
message.body = "[This message is OMEMO encrypted]";
status.encrypted = true;
} catch (Error e) {

View File

@ -37,6 +37,7 @@ namespace Dino.Plugins.OpenPgp {
if (enc_body != null) {
message.stanza.put_node(new StanzaNode.build("x", NS_URI_ENCRYPTED).add_self_xmlns().put_node(new StanzaNode.text(enc_body)));
message.body = "[This message is OpenPGP encrypted (see XEP-0027)]";
Xep.ExplicitEncryption.add_encryption_tag_to_message(message, NS_URI_ENCRYPTED);
return true;
}
return false;

View File

@ -68,6 +68,7 @@ SOURCES
"src/module/xep/0313_message_archive_management.vala"
"src/module/xep/0333_chat_markers.vala"
"src/module/xep/0368_srv_records_tls.vala"
"src/module/xep/0380_explicit_encryption.vala"
"src/module/xep/pixbuf_storage.vala"
PACKAGES
${ENGINE_PACKAGES}

View File

@ -0,0 +1,14 @@
namespace Xmpp.Xep.ExplicitEncryption {
public const string NS_URI = "urn:xmpp:eme:0";
public static void add_encryption_tag_to_message(MessageStanza message, string ns, string? name = null) {
StanzaNode encryption = new StanzaNode.build("encryption", NS_URI).add_self_xmlns()
.put_attribute("namespace", ns);
if(name != null)
encryption.put_attribute("name", name);
message.stanza.put_node(encryption);
}
}