Updated Email to use shared trust manager instead of initializing its own copy.
This commit is contained in:
parent
80e7c986a2
commit
dbbd29c822
@ -16,23 +16,18 @@
|
|||||||
|
|
||||||
package com.android.email.mail.store;
|
package com.android.email.mail.store;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
import android.net.http.DomainNameChecker;
|
import android.net.http.DomainNameChecker;
|
||||||
|
|
||||||
import java.security.KeyStore;
|
|
||||||
import java.security.NoSuchAlgorithmException;
|
|
||||||
import java.security.KeyStoreException;
|
|
||||||
import java.security.cert.X509Certificate;
|
import java.security.cert.X509Certificate;
|
||||||
import java.security.cert.CertificateException;
|
import java.security.cert.CertificateException;
|
||||||
|
|
||||||
import javax.net.ssl.X509TrustManager;
|
import javax.net.ssl.X509TrustManager;
|
||||||
import javax.net.ssl.TrustManager;
|
|
||||||
|
import org.apache.harmony.xnet.provider.jsse.SSLParameters;
|
||||||
|
|
||||||
public final class TrustManagerFactory {
|
public final class TrustManagerFactory {
|
||||||
private static final String LOG_TAG = "TrustManagerFactory";
|
private static X509TrustManager sUnsecureTrustManager
|
||||||
|
= new SimpleX509TrustManager();
|
||||||
private static X509TrustManager sSecureTrustManager;
|
|
||||||
private static X509TrustManager sUnsecureTrustManager;
|
|
||||||
|
|
||||||
private static class SimpleX509TrustManager implements X509TrustManager {
|
private static class SimpleX509TrustManager implements X509TrustManager {
|
||||||
public void checkClientTrusted(X509Certificate[] chain, String authType)
|
public void checkClientTrusted(X509Certificate[] chain, String authType)
|
||||||
@ -78,33 +73,12 @@ public final class TrustManagerFactory {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static {
|
|
||||||
try {
|
|
||||||
javax.net.ssl.TrustManagerFactory tmf = javax.net.ssl.TrustManagerFactory.getInstance("X509");
|
|
||||||
tmf.init((KeyStore) null);
|
|
||||||
TrustManager[] tms = tmf.getTrustManagers();
|
|
||||||
if (tms != null) {
|
|
||||||
for (TrustManager tm : tms) {
|
|
||||||
if (tm instanceof X509TrustManager) {
|
|
||||||
sSecureTrustManager = (X509TrustManager) tm;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (NoSuchAlgorithmException e) {
|
|
||||||
Log.e(LOG_TAG, "Unable to get X509 Trust Manager ", e);
|
|
||||||
} catch (KeyStoreException e) {
|
|
||||||
Log.e(LOG_TAG, "Key Store exception while initializing TrustManagerFactory ", e);
|
|
||||||
}
|
|
||||||
|
|
||||||
sUnsecureTrustManager = new SimpleX509TrustManager();
|
|
||||||
}
|
|
||||||
|
|
||||||
private TrustManagerFactory() {
|
private TrustManagerFactory() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static X509TrustManager get(String host, boolean secure) {
|
public static X509TrustManager get(String host, boolean secure) {
|
||||||
return secure ? new SecureX509TrustManager(sSecureTrustManager, host) :
|
return secure ? new SecureX509TrustManager(
|
||||||
sUnsecureTrustManager;
|
SSLParameters.getDefaultTrustManager(), host)
|
||||||
|
: sUnsecureTrustManager;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user