summaryrefslogtreecommitdiffstats
path: root/emailcommon
diff options
context:
space:
mode:
authorMartin Hibdon <mhibdon@google.com>2014-10-21 15:11:40 -0700
committerMartin Hibdon <mhibdon@google.com>2014-10-21 15:20:56 -0700
commit303b553b13a02529fc8cb22b9b37672887759ce9 (patch)
tree48498317872a83d28c54d633f1f10a1a3ee5c29c /emailcommon
parenta908d45ae3519ecdc82e187d1ab72e8991ea7ed8 (diff)
downloadandroid_packages_apps_Email-303b553b13a02529fc8cb22b9b37672887759ce9.tar.gz
android_packages_apps_Email-303b553b13a02529fc8cb22b9b37672887759ce9.tar.bz2
android_packages_apps_Email-303b553b13a02529fc8cb22b9b37672887759ce9.zip
Allow an external security provider to be installed
b/18001842 Change-Id: I8312fe541896e1ceeb6c5102f90bdbb0bb945151
Diffstat (limited to 'emailcommon')
-rw-r--r--emailcommon/src/com/android/emailcommon/utility/SSLUtils.java18
1 files changed, 11 insertions, 7 deletions
diff --git a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
index f42e83c6e..49963bc3c 100644
--- a/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
+++ b/emailcommon/src/com/android/emailcommon/utility/SSLUtils.java
@@ -138,16 +138,15 @@ public class SSLUtils {
}
}
- public static abstract class ExternalSecureSocketFactoryBuilder {
- abstract public javax.net.ssl.SSLSocketFactory createSecureSocketFactory(
- final Context context, final int handshakeTimeoutMillis);
+ public static abstract class ExternalSecurityProviderInstaller {
+ abstract public void installIfNeeded(final Context context);
}
- private static ExternalSecureSocketFactoryBuilder sExternalSocketFactoryBuilder;
+ private static ExternalSecurityProviderInstaller sExternalSecurityProviderInstaller;
- public static void setExternalSecureSocketFactoryBuilder(
- ExternalSecureSocketFactoryBuilder builder) {
- sExternalSocketFactoryBuilder = builder;
+ public static void setExternalSecurityProviderInstaller (
+ ExternalSecurityProviderInstaller installer) {
+ sExternalSecurityProviderInstaller = installer;
}
/**
@@ -159,6 +158,11 @@ public class SSLUtils {
public synchronized static javax.net.ssl.SSLSocketFactory getSSLSocketFactory(
final Context context, final HostAuth hostAuth, final KeyManager keyManager,
final boolean insecure) {
+ // If we have an external security provider installer, then install. This will
+ // potentially replace the default implementation of SSLSocketFactory.
+ if (sExternalSecurityProviderInstaller != null) {
+ sExternalSecurityProviderInstaller.installIfNeeded(context);
+ }
try {
final KeyManager[] keyManagers = (keyManager == null ? null :
new KeyManager[]{keyManager});