From 09d7b611af577fb920f032521cc8f1603cb5ec40 Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Thu, 13 Apr 2017 20:56:11 +0200 Subject: use aesgcm:// uri scheme for omemo encrypted http upload --- .../java/de/pixart/messenger/http/HttpUploadConnection.java | 2 +- src/main/java/de/pixart/messenger/utils/CryptoHelper.java | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/main/java/de/pixart/messenger/http/HttpUploadConnection.java b/src/main/java/de/pixart/messenger/http/HttpUploadConnection.java index 15262e1a8..28a4d2469 100644 --- a/src/main/java/de/pixart/messenger/http/HttpUploadConnection.java +++ b/src/main/java/de/pixart/messenger/http/HttpUploadConnection.java @@ -193,7 +193,7 @@ public class HttpUploadConnection implements Transferable { if (code == 200 || code == 201) { Log.d(Config.LOGTAG, "finished uploading file"); if (key != null) { - mGetUrl = new URL(mGetUrl.toString() + "#" + CryptoHelper.bytesToHex(key)); + mGetUrl = CryptoHelper.toAesGcmUrl(new URL(mGetUrl.toString() + "#" + CryptoHelper.bytesToHex(key))); } mXmppConnectionService.getFileBackend().updateFileParams(message, mGetUrl); mXmppConnectionService.getFileBackend().updateMediaScanner(file); diff --git a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java index da9007a06..b5d3d6c61 100644 --- a/src/main/java/de/pixart/messenger/utils/CryptoHelper.java +++ b/src/main/java/de/pixart/messenger/utils/CryptoHelper.java @@ -8,6 +8,8 @@ import org.bouncycastle.asn1.x500.style.BCStyle; import org.bouncycastle.asn1.x500.style.IETFUtils; import org.bouncycastle.cert.jcajce.JcaX509CertificateHolder; +import java.net.MalformedURLException; +import java.net.URL; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.CertificateEncodingException; @@ -230,4 +232,15 @@ public final class CryptoHelper { return R.string.encryption_choice_pgp; } } + + public static URL toAesGcmUrl(URL url) { + if (!url.getProtocol().equalsIgnoreCase("https")) { + return url; + } + try { + return new URL("aesgcm" + url.toString().substring(url.getProtocol().length())); + } catch (MalformedURLException e) { + return url; + } + } } -- cgit v1.2.3