From e5788b9ec5ae83de7706f65d52b92b0117b6194a Mon Sep 17 00:00:00 2001 From: tarsin Date: Tue, 30 May 2023 21:20:36 +0800 Subject: [PATCH] Cleanup EhApplication --- .../main/java/com/hippo/ehviewer/EhApplication.kt | 10 ++-------- .../com/hippo/ehviewer/client/EhSSLSocketFactory.kt | 12 ++++++++++++ 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt index fd89e4a6a..956d3829b 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.kt +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.kt @@ -33,6 +33,7 @@ import com.hippo.ehviewer.client.EhDns import com.hippo.ehviewer.client.EhSSLSocketFactory import com.hippo.ehviewer.client.EhTagDatabase import com.hippo.ehviewer.client.data.GalleryDetail +import com.hippo.ehviewer.client.install import com.hippo.ehviewer.coil.MergeInterceptor import com.hippo.ehviewer.coil.diskCache import com.hippo.ehviewer.dailycheck.checkDawn @@ -50,9 +51,6 @@ import eu.kanade.tachiyomi.util.lang.launchIO import kotlinx.coroutines.DelicateCoroutinesApi import okio.Path.Companion.toOkioPath import java.net.Proxy -import java.security.KeyStore -import javax.net.ssl.TrustManagerFactory -import javax.net.ssl.X509TrustManager class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactory { @OptIn(DelicateCoroutinesApi::class) @@ -164,11 +162,7 @@ class EhApplication : Application(), DefaultLifecycleObserver, ImageLoaderFactor dns(EhDns) proxySelector(ehProxySelector) if (Settings.dF) { - val factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())!! - factory.init(null as KeyStore?) - val manager = factory.trustManagers!! - val trustManager = manager.filterIsInstance().first() - sslSocketFactory(EhSSLSocketFactory, trustManager) + install(EhSSLSocketFactory) proxy(Proxy.NO_PROXY) } } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.kt b/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.kt index 23395ee2f..f0df0236b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.kt +++ b/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.kt @@ -20,10 +20,14 @@ package com.hippo.ehviewer.client import android.util.Log import com.hippo.ehviewer.Settings import com.hippo.ehviewer.builtInHosts +import okhttp3.OkHttpClient import java.net.InetAddress import java.net.Socket +import java.security.KeyStore import javax.net.ssl.SSLSocket import javax.net.ssl.SSLSocketFactory +import javax.net.ssl.TrustManagerFactory +import javax.net.ssl.X509TrustManager private const val EXCEPTIONAL_DOMAIN = "hath.network" private val sslSocketFactory = SSLSocketFactory.getDefault() as SSLSocketFactory @@ -41,3 +45,11 @@ object EhSSLSocketFactory : SSLSocketFactory() { override fun createSocket(host: InetAddress, port: Int): Socket = sslSocketFactory.createSocket(host, port) override fun createSocket(address: InetAddress, port: Int, localAddress: InetAddress, localPort: Int): Socket = sslSocketFactory.createSocket(address, port, localAddress, localPort) } + +fun OkHttpClient.Builder.install(sslSocketFactory: SSLSocketFactory) = apply { + val factory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm())!! + factory.init(null as KeyStore?) + val manager = factory.trustManagers!! + val trustManager = manager.filterIsInstance().first() + sslSocketFactory(sslSocketFactory, trustManager) +}