aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-05-09 21:14:35 +0200
committerChristian Schneppe <christian@pix-art.de>2017-05-09 21:14:35 +0200
commite803f3ffa5ab1d451a30164f23c1d2cc3cb147b0 (patch)
treedc17ed0828c4c27c30d2ab365c34919577f03420 /src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java
parent39d48e727039bc6c81ab04694fb7929f8414df8d (diff)
make jingle implementation send file hash when using ft5
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java b/src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java
index de856772a..3f7cc8e5b 100644
--- a/src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java
+++ b/src/main/java/de/pixart/messenger/xmpp/jingle/stanzas/JinglePacket.java
@@ -1,5 +1,7 @@
package de.pixart.messenger.xmpp.jingle.stanzas;
+import android.util.Base64;
+
import de.pixart.messenger.xml.Element;
import de.pixart.messenger.xmpp.jid.Jid;
import de.pixart.messenger.xmpp.stanzas.IqPacket;
@@ -7,6 +9,7 @@ import de.pixart.messenger.xmpp.stanzas.IqPacket;
public class JinglePacket extends IqPacket {
Content content = null;
Reason reason = null;
+ Element checksum = null;
Element jingle = new Element("jingle");
@Override
@@ -24,6 +27,7 @@ public class JinglePacket extends IqPacket {
this.reason.setChildren(reasonElement.getChildren());
this.reason.setAttributes(reasonElement.getAttributes());
}
+ this.checksum = child.findChild("checksum");
this.jingle.setAttributes(child.getAttributes());
}
return child;
@@ -50,6 +54,10 @@ public class JinglePacket extends IqPacket {
return this.reason;
}
+ public Element getChecksum() {
+ return this.checksum;
+ }
+
private void build() {
this.children.clear();
this.jingle.clearChildren();
@@ -60,6 +68,9 @@ public class JinglePacket extends IqPacket {
if (this.reason != null) {
jingle.addChild(this.reason);
}
+ if (this.checksum != null) {
+ jingle.addChild(checksum);
+ }
this.children.add(jingle);
this.setAttribute("type", "set");
}
@@ -93,4 +104,12 @@ public class JinglePacket extends IqPacket {
public boolean isAction(String action) {
return action.equalsIgnoreCase(this.getAction());
}
+
+ public void addChecksum(byte[] sha1Sum, String namespace) {
+ this.checksum = new Element("checksum", namespace);
+ checksum.setAttribute("creator", "initiator");
+ checksum.setAttribute("name", "a-file-offer");
+ Element hash = checksum.addChild("file").addChild("hash", "urn:xmpp:hashes:2");
+ hash.setAttribute("algo", "sha-1").setContent(Base64.encodeToString(sha1Sum, Base64.NO_WRAP));
+ }
}