|
@@ -1,6 +1,8 @@
|
|
|
package com.vpn.fastestvpnservice.retrofit;
|
|
|
|
|
|
import android.content.pm.PackageInfo;
|
|
|
+import android.os.Build;
|
|
|
+import android.util.Log;
|
|
|
|
|
|
import com.stealthcopter.networktools.Ping;
|
|
|
import de.blinkt.openvpn.core.App;
|
|
@@ -10,8 +12,13 @@ import com.vpn.fastestvpnservice.retrofit.entities.GsonFactory;
|
|
|
import com.vpn.fastestvpnservice.utils.StaticMethods;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.security.cert.X509Certificate;
|
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
|
|
+import javax.net.ssl.SSLContext;
|
|
|
+import javax.net.ssl.TrustManager;
|
|
|
+import javax.net.ssl.X509TrustManager;
|
|
|
+
|
|
|
import okhttp3.Interceptor;
|
|
|
import okhttp3.OkHttpClient;
|
|
|
import okhttp3.Request;
|
|
@@ -43,6 +50,14 @@ public class WebServiceFactory {
|
|
|
httpClient.connectTimeout(120, TimeUnit.SECONDS);
|
|
|
httpClient.readTimeout(120, TimeUnit.SECONDS);
|
|
|
|
|
|
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
|
|
|
+ Log.d("build_api", "VERSION = " + Build.VERSION.RELEASE + ", " + Build.VERSION.SDK_INT + ", " + Build.VERSION_CODES.O);
|
|
|
+ httpClient.sslSocketFactory(getUnsafeSslContext().getSocketFactory(), getTrustManager());
|
|
|
+ httpClient.hostnameVerifier((hostname, session) -> true);
|
|
|
+ } else {
|
|
|
+ Log.d("build_api", "else");
|
|
|
+ }
|
|
|
+
|
|
|
boolean isTV = StaticMethods.isTV(App.getContext().getApplicationContext());
|
|
|
String platform = "";
|
|
|
if (isTV) { platform = "TV"; } else { platform = "android"; }
|
|
@@ -91,4 +106,41 @@ public class WebServiceFactory {
|
|
|
return instance;
|
|
|
}
|
|
|
|
|
|
+ private static SSLContext getUnsafeSslContext() {
|
|
|
+ try {
|
|
|
+ final TrustManager[] trustAllCerts = new TrustManager[]{
|
|
|
+ new X509TrustManager() {
|
|
|
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
|
|
+ return new java.security.cert.X509Certificate[]{};
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void checkClientTrusted(X509Certificate[] chain, String authType) {}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void checkServerTrusted(X509Certificate[] chain, String authType) {}
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ final SSLContext sslContext = SSLContext.getInstance("TLS");
|
|
|
+ sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
|
|
|
+ return sslContext;
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private static X509TrustManager getTrustManager() {
|
|
|
+ return new X509TrustManager() {
|
|
|
+ public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
|
|
+ return new java.security.cert.X509Certificate[]{};
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void checkClientTrusted(X509Certificate[] chain, String authType) {}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void checkServerTrusted(X509Certificate[] chain, String authType) {}
|
|
|
+ };
|
|
|
+ }
|
|
|
}
|