diff --git a/libs/MemorizingTrustManager/src/de/duenndns/ssl/MemorizingTrustManager.java b/libs/MemorizingTrustManager/src/de/duenndns/ssl/MemorizingTrustManager.java index 439ad0f95..a45ab05ba 100644 --- a/libs/MemorizingTrustManager/src/de/duenndns/ssl/MemorizingTrustManager.java +++ b/libs/MemorizingTrustManager/src/de/duenndns/ssl/MemorizingTrustManager.java @@ -36,6 +36,7 @@ import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.SystemClock; +import android.preference.PreferenceManager; import android.util.Base64; import android.util.Log; import android.util.SparseArray; @@ -430,7 +431,8 @@ public class MemorizingTrustManager { else defaultTrustManager.checkClientTrusted(chain, authType); } catch (CertificateException e) { - if (domain != null && isServer && !isIp(domain)) { + boolean trustSystemCAs = !PreferenceManager.getDefaultSharedPreferences(master).getBoolean("dont_trust_system_cas", false); + if (domain != null && isServer && trustSystemCAs && !isIp(domain)) { String hash = getBase64Hash(chain[0],"SHA-256"); List fingerprints = getPoshFingerprints(domain); if (hash != null && fingerprints.contains(hash)) {