Carl Minden
Carl Minden

Reputation: 842

HttpClient with SSLCaching and a Keystore on Android

I want to make a connection to an https server using SSL client authentication and SSL caching. As far as I can tell you can only have one or the other and I dont see a reason why that would be.

Currently I am using a DefaultHttpClient which takes a ClientConnectionManager which I have set up with an SSLSocketFactory loaded with a pkcs12 KeyStore so I can perform the SSL client authentication.

I also found SSLCertificateSocketFactory.getHttpSocketFactory() which can be passed an SSLSessionCache.

I then register the socket factory

SchemeRegistry registry = new SchemeRegistry();
registry.register(new Scheme("https",socketFactory , port));

and use the registry to make a ClientConnectionManager and then an HttpClient

ThreadSafeClientConnManager ccm = new ThreadSafeClientConnManager(httpParameters, registry);
httpClient = new DefaultHttpClient(ccm, httpParameters);

but I dont know how to give either the SSLSocketFactory an SSLSessionCache, or the SSLCertificateSocketFactory a keystore

Lastly I looked into using an AndroidHttpClient which you can pass a Context which it will use for SSLCaching, but I cannot find any way to get an AndroidHttpClient to use my ClientConnectionManager.

Am I missing something or is this really impossible?

Thanks

Upvotes: 1

Views: 1009

Answers (1)

user705142
user705142

Reputation: 461

HttpClient has SSL session caching inbuilt, SSLSessionCache is for HttpsURLConnection as I understand it.

It's not very well documented is it.

Upvotes: 1

Related Questions