mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-20 00:29:11 +01:00
Consolidate S3 requests into one interface.
This commit is contained in:
committed by
Alex Hart
parent
bb963f9210
commit
ecc358ef40
@@ -11,21 +11,9 @@ import com.bumptech.glide.load.model.MultiModelLoaderFactory;
|
||||
|
||||
import org.thoughtcrime.securesms.badges.models.Badge;
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies;
|
||||
import org.thoughtcrime.securesms.push.SignalServiceTrustStore;
|
||||
import org.whispersystems.signalservice.api.push.TrustStore;
|
||||
import org.whispersystems.signalservice.api.util.Tls12SocketFactory;
|
||||
import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager;
|
||||
import org.whispersystems.signalservice.internal.util.Util;
|
||||
|
||||
import java.io.InputStream;
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
|
||||
import okhttp3.ConnectionSpec;
|
||||
import okhttp3.OkHttpClient;
|
||||
|
||||
/**
|
||||
@@ -50,23 +38,7 @@ public class BadgeLoader implements ModelLoader<Badge, InputStream> {
|
||||
}
|
||||
|
||||
public static Factory createFactory() {
|
||||
try {
|
||||
OkHttpClient baseClient = ApplicationDependencies.getOkHttpClient();
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
TrustStore trustStore = new SignalServiceTrustStore(ApplicationDependencies.getApplication());
|
||||
TrustManager[] trustManagers = BlacklistingTrustManager.createFor(trustStore);
|
||||
|
||||
sslContext.init(null, trustManagers, null);
|
||||
|
||||
OkHttpClient client = baseClient.newBuilder()
|
||||
.sslSocketFactory(new Tls12SocketFactory(sslContext.getSocketFactory()), (X509TrustManager) trustManagers[0])
|
||||
.connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS))
|
||||
.build();
|
||||
|
||||
return new Factory(client);
|
||||
} catch (NoSuchAlgorithmException | KeyManagementException e) {
|
||||
throw new AssertionError(e);
|
||||
}
|
||||
return new Factory(ApplicationDependencies.getSignalOkHttpClient());
|
||||
}
|
||||
|
||||
public static class Factory implements ModelLoaderFactory<Badge, InputStream> {
|
||||
|
||||
@@ -9,25 +9,15 @@ import com.bumptech.glide.load.model.GlideUrl
|
||||
import com.bumptech.glide.load.model.ModelLoader
|
||||
import com.bumptech.glide.load.model.ModelLoaderFactory
|
||||
import com.bumptech.glide.load.model.MultiModelLoaderFactory
|
||||
import okhttp3.ConnectionSpec
|
||||
import okhttp3.OkHttpClient
|
||||
import org.signal.libsignal.zkgroup.receipts.ReceiptCredentialPresentation
|
||||
import org.thoughtcrime.securesms.badges.Badges
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.GiftBadge
|
||||
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||
import org.thoughtcrime.securesms.push.SignalServiceTrustStore
|
||||
import org.whispersystems.signalservice.api.push.TrustStore
|
||||
import org.whispersystems.signalservice.api.util.Tls12SocketFactory
|
||||
import org.whispersystems.signalservice.internal.util.BlacklistingTrustManager
|
||||
import org.whispersystems.signalservice.internal.util.Util
|
||||
import java.io.InputStream
|
||||
import java.lang.Exception
|
||||
import java.security.KeyManagementException
|
||||
import java.security.MessageDigest
|
||||
import java.security.NoSuchAlgorithmException
|
||||
import java.util.Locale
|
||||
import javax.net.ssl.SSLContext
|
||||
import javax.net.ssl.X509TrustManager
|
||||
|
||||
/**
|
||||
* Glide Model allowing the direct loading of a GiftBadge.
|
||||
@@ -102,25 +92,7 @@ data class GiftBadgeModel(val giftBadge: GiftBadge) : Key {
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun createFactory(): Factory {
|
||||
return try {
|
||||
val baseClient = ApplicationDependencies.getOkHttpClient()
|
||||
val sslContext = SSLContext.getInstance("TLS")
|
||||
val trustStore: TrustStore = SignalServiceTrustStore(ApplicationDependencies.getApplication())
|
||||
val trustManagers = BlacklistingTrustManager.createFor(trustStore)
|
||||
|
||||
sslContext.init(null, trustManagers, null)
|
||||
|
||||
val client = baseClient.newBuilder()
|
||||
.sslSocketFactory(Tls12SocketFactory(sslContext.socketFactory), trustManagers[0] as X509TrustManager)
|
||||
.connectionSpecs(Util.immutableList(ConnectionSpec.RESTRICTED_TLS))
|
||||
.build()
|
||||
|
||||
Factory(client)
|
||||
} catch (e: NoSuchAlgorithmException) {
|
||||
throw AssertionError(e)
|
||||
} catch (e: KeyManagementException) {
|
||||
throw AssertionError(e)
|
||||
}
|
||||
return Factory(ApplicationDependencies.getSignalOkHttpClient())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user