diff options
| author | 2014-03-27 00:10:41 +0000 | |
|---|---|---|
| committer | 2014-03-27 00:10:41 +0000 | |
| commit | 1dc1d6b22deb38d78960f3ce89f94e536610492e (patch) | |
| tree | 588d0af65028c49a7cc93977aebb20abd0e51767 | |
| parent | cddd3b151f3eff197c39e319b8c5d107dcafcbce (diff) | |
| parent | 5b93685af37d840e7ef6d415bcfe8a8a4c004032 (diff) | |
am 5b93685a: am 57f2764b: Merge "CertificateChainValidator: initialize TrustManagerFactory"
* commit '5b93685af37d840e7ef6d415bcfe8a8a4c004032':
CertificateChainValidator: initialize TrustManagerFactory
| -rw-r--r-- | core/java/android/net/http/CertificateChainValidator.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/core/java/android/net/http/CertificateChainValidator.java b/core/java/android/net/http/CertificateChainValidator.java index a28b5a7cca2a..d06355d4f8a4 100644 --- a/core/java/android/net/http/CertificateChainValidator.java +++ b/core/java/android/net/http/CertificateChainValidator.java @@ -22,6 +22,8 @@ import java.io.ByteArrayInputStream; import java.io.IOException; import java.lang.reflect.Method; import java.security.GeneralSecurityException; +import java.security.KeyStore; +import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.cert.Certificate; import java.security.cert.CertificateException; @@ -74,13 +76,16 @@ public class CertificateChainValidator { private CertificateChainValidator() { try { TrustManagerFactory tmf = TrustManagerFactory.getInstance("X.509"); + tmf.init((KeyStore) null); for (TrustManager tm : tmf.getTrustManagers()) { if (tm instanceof X509ExtendedTrustManager) { mTrustManager = (X509ExtendedTrustManager) tm; } } } catch (NoSuchAlgorithmException e) { - throw new RuntimeException("X.509 TrustManager factory must be available", e); + throw new RuntimeException("X.509 TrustManagerFactory must be available", e); + } catch (KeyStoreException e) { + throw new RuntimeException("X.509 TrustManagerFactory cannot be initialized", e); } if (mTrustManager == null) { @@ -166,9 +171,13 @@ public class CertificateChainValidator { TrustManagerFactory tmf; try { tmf = TrustManagerFactory.getInstance("X.509"); + tmf.init((KeyStore) null); } catch (NoSuchAlgorithmException e) { Slog.w(TAG, "Couldn't find default X.509 TrustManagerFactory"); return; + } catch (KeyStoreException e) { + Slog.w(TAG, "Couldn't initialize default X.509 TrustManagerFactory", e); + return; } TrustManager[] tms = tmf.getTrustManagers(); |