|
|
|
@ -88,14 +88,27 @@ class OkHttpUtils { |
|
|
|
|
if (Build.VERSION.SDK_INT != Build.VERSION_CODES.N) { |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
SSLContext sslContext; |
|
|
|
|
SSLSocketFactory socketFactory; |
|
|
|
|
try { |
|
|
|
|
sslContext = SSLContext.getInstance("TLS"); |
|
|
|
|
} catch (NoSuchAlgorithmException e) { |
|
|
|
|
Log.e(TAG, "Failed obtaining TLS Context."); |
|
|
|
|
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]; |
|
|
|
|
|
|
|
|
|
SSLContext sslContext = SSLContext.getInstance("TLS"); |
|
|
|
|
sslContext.init(null, new TrustManager[] { trustManager }, null); |
|
|
|
|
socketFactory = sslContext.getSocketFactory(); |
|
|
|
|
} catch (NoSuchAlgorithmException|KeyStoreException|KeyManagementException e) { |
|
|
|
|
Log.e(TAG, "Failed obtaining the SSL socket factory."); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
String[] cipherSuites = sslContext.getSocketFactory().getDefaultCipherSuites(); |
|
|
|
|
String[] cipherSuites = socketFactory.getDefaultCipherSuites(); |
|
|
|
|
ArrayList<String> allowedList = new ArrayList<>(); |
|
|
|
|
for (String suite : cipherSuites) { |
|
|
|
|
if (!suite.contains("ECDH")) { |
|
|
|
|