Change summary
src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java | 2
src/main/java/eu/siacs/conversations/utils/CryptoHelper.java | 13
2 files changed, 14 insertions(+), 1 deletion(-)
Detailed changes
@@ -191,7 +191,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);
@@ -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;
+ }
+ }
}