diff --git a/app/src/main/java/com/hippo/ehviewer/EhApplication.java b/app/src/main/java/com/hippo/ehviewer/EhApplication.java index 4b4009d1e..7c52c4209 100644 --- a/app/src/main/java/com/hippo/ehviewer/EhApplication.java +++ b/app/src/main/java/com/hippo/ehviewer/EhApplication.java @@ -151,21 +151,19 @@ public class EhApplication extends RecordingApplication { .hostnameVerifier((hostname, session) -> true) .dns(new EhDns(application)) .proxySelector(getEhProxySelector(application)); - if (Settings.getDF()) { - try { - TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( - TrustManagerFactory.getDefaultAlgorithm()); - trustManagerFactory.init((KeyStore) null); - TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); - if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) { - throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)); - } - X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; - builder.sslSocketFactory(new EhSSLSocketFactory(), trustManager); - } catch (Exception e) { - e.printStackTrace(); - builder.sslSocketFactory(new EhSSLSocketFactory(), new EhX509TrustManager()); + try { + TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance( + TrustManagerFactory.getDefaultAlgorithm()); + trustManagerFactory.init((KeyStore) null); + TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); + if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) { + throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers)); } + X509TrustManager trustManager = (X509TrustManager) trustManagers[0]; + builder.sslSocketFactory(new EhSSLSocketFactory(), trustManager); + } catch (Exception e) { + e.printStackTrace(); + builder.sslSocketFactory(new EhSSLSocketFactory(), new EhX509TrustManager()); } application.mOkHttpClient = builder.build(); } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.java b/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.java index 5b1d4b525..d06cec122 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhSSLSocketFactory.java @@ -8,6 +8,8 @@ import java.io.IOException; import java.net.InetAddress; import java.net.Socket; +import javax.net.ssl.SSLSession; +import javax.net.ssl.SSLSocket; import javax.net.ssl.SSLSocketFactory; public class EhSSLSocketFactory extends SSLSocketFactory { @@ -27,9 +29,12 @@ public class EhSSLSocketFactory extends SSLSocketFactory { return ((SSLSocketFactory) getDefault()).createSocket(s, host, port, autoClose); } InetAddress address = s.getInetAddress(); - Log.d("EhSSLSocketFactory", "Host: " + host + " Address: " + address.getHostAddress()); if (autoClose) s.close(); - return getDefault().createSocket(address, port); + SSLSocket socket = (SSLSocket) getDefault().createSocket(address, port); + SSLSession sslSession = socket.getSession(); + Log.d("EhSSLSocketFactory", "Host: " + host + " Address: " + address.getHostAddress() + " Protocol:" + sslSession.getProtocol() + " CipherSuite:" + sslSession.getCipherSuite()); + socket.setEnabledProtocols(socket.getSupportedProtocols()); + return socket; } @Override