diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-04-16 12:19:29 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-04-16 12:19:29 +0200 |
commit | 48dfe298f2f6ae3654a28b9cdf4fc3525b638459 (patch) | |
tree | 8ea3608ab073ca7955e4109b91b37535531a6dc9 /src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java | |
parent | ed539ec46ce4608b4f2d17f59d956e6272f0e599 (diff) |
transform aesgcm:// links back to https:// before connecting through Tor
Diffstat (limited to 'src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java b/src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java index d49111dbf..722c1dea9 100644 --- a/src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java +++ b/src/main/java/de/pixart/messenger/http/HttpDownloadConnection.java @@ -75,9 +75,9 @@ public class HttpDownloadConnection implements Transferable { this.message.setTransferable(this); try { if (message.hasFileOnRemoteHost()) { - mUrl = message.getFileParams().url; + mUrl = CryptoHelper.toHttpsUrl(message.getFileParams().url); } else { - mUrl = new URL(message.getBody()); + mUrl = CryptoHelper.toHttpsUrl(new URL(message.getBody())); } String[] parts = mUrl.getPath().toLowerCase().split("\\."); String lastPart = parts.length >= 1 ? parts[parts.length - 1] : null; @@ -97,8 +97,8 @@ public class HttpDownloadConnection implements Transferable { String filename = fileDateFormat.format(new Date(message.getTimeSent())) + "_" + message.getUuid().substring(0, 4); message.setRelativeFilePath(filename + "." + extension); this.file = mXmppConnectionService.getFileBackend().getFile(message, false); - String reference = mUrl.getRef(); - if (reference != null && reference.length() == 96) { + final String reference = mUrl.getRef(); + if (reference != null && reference.matches("([A-Fa-f0-9]{2}){48}")) { this.file.setKeyAndIv(CryptoHelper.hexToBytes(reference)); } @@ -342,7 +342,14 @@ public class HttpDownloadConnection implements Transferable { private void updateImageBounds() { message.setType(Message.TYPE_FILE); - mXmppConnectionService.getFileBackend().updateFileParams(message, mUrl); + final URL url; + final String ref = mUrl.getRef(); + if (ref != null && ref.matches("([A-Fa-f0-9]{2}){48}")) { + url = CryptoHelper.toAesGcmUrl(mUrl); + } else { + url = mUrl; + } + mXmppConnectionService.getFileBackend().updateFileParams(message, url); mXmppConnectionService.updateMessage(message); } |