Skip to content

Instantly share code, notes, and snippets.

@swankjesse
Created September 19, 2014 21:30
Show Gist options
  • Save swankjesse/b8c289c8cf527d7e556b to your computer and use it in GitHub Desktop.
Save swankjesse/b8c289c8cf527d7e556b to your computer and use it in GitHub Desktop.
Trust Store Example
import android.content.Context;
import com.squareup.okhttp.OkHttpClient;
import java.io.InputStream;
import java.security.KeyStore;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLSocketFactory;
import javax.net.ssl.TrustManagerFactory;
import static java.util.concurrent.TimeUnit.SECONDS;
public class OkHttpClientFactory {
private static final char[] TRUST_STORE_PASSWORD = ...
SSLSocketFactory createSslSocketFactory(Context context) throws Exception {
KeyStore trusted = KeyStore.getInstance("BKS");
InputStream in = context.getResources().openRawResource(R.raw.truststore);
trusted.load(in, TRUST_STORE_PASSWORD);
in.close();
SSLContext sslContext = SSLContext.getInstance("TLS");
TrustManagerFactory trustManagerFactory =
TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(trusted);
sslContext.init(null, trustManagerFactory.getTrustManagers(), null);
return sslContext.getSocketFactory();
}
OkHttpClient newOkHttpClient(Context context) throws Exception {
OkHttpClient client = new OkHttpClient();
client.setConnectTimeout(10, SECONDS);
client.setReadTimeout(10, SECONDS);
client.setSslSocketFactory(createSslSocketFactory(context));
return client;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment