datatheorem / TrustKit-Android

Easy SSL pinning validation and reporting for Android.
MIT License
583 stars 87 forks source link

Need help to initialize socket factory for multiple domain. #98

Open samina-momin-aera opened 2 years ago

samina-momin-aera commented 2 years ago

Hi Team,

I need your help, I'm working with React Native. I'm consuming APIs from different domain. I have to integrate SSL pinning for 'xyz.com' domain and want other services still should work without SSL pinning.

Currently I'm using below code to create builder.

private static String HOSTNAME = "xyz.com";

public OkHttpClient createNewNetworkModuleClient() { OkHttpClient.Builder client = new OkHttpClient.Builder() .connectTimeout(0, TimeUnit.MILLISECONDS) .readTimeout(0, TimeUnit.MILLISECONDS) .writeTimeout(0, TimeUnit.MILLISECONDS) .cookieJar(new ReactCookieJarContainer()) .addInterceptor(OkHttp3Helper.getPinningInterceptor()) .followRedirects(false) .followSslRedirects(false); .sslSocketFactory(TrustKit.getInstance().getSSLSocketFactory(HOSTNAME ),TrustKit.getInstance().getTrustManager(HOSTNAME )); return OkHttpClientProvider.enableTls12OnPreLollipop(client).build();

Currently unable to call google services with application. Even React Native Image component not loading image with SSL pinning.

.sslSocketFactory(TrustKit.getInstance().getSSLSocketFactory(HOSTNAME ),TrustKit.getInstance().getTrustManager(HOSTNAME ));

How can we bypass other domain SSL ? Or else if we add pin for respective domain in nextwork config file, How to defined two different domain here in sslSocketFactory.

Can you please help.

Thanks!