From 3779c75175e895f94b21341ebd6361e9d6af54fd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Thu, 9 May 2013 12:36:23 -0400 Subject: [PATCH] support Android cert store Android puts it in a different place and has only hashed files. See https://github.com/vincenthz/hs-certificate/issues/19 --- System/Certificate/X509/Unix.hs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/System/Certificate/X509/Unix.hs b/System/Certificate/X509/Unix.hs index 8463465..74e9503 100644 --- a/System/Certificate/X509/Unix.hs +++ b/System/Certificate/X509/Unix.hs @@ -35,7 +35,8 @@ import qualified Control.Exception as E import Data.Char defaultSystemPath :: FilePath -defaultSystemPath = "/etc/ssl/certs/" +defaultSystemPath = "/system/etc/security/cacerts/" +--defaultSystemPath = "/etc/ssl/certs/" envPathOverride :: String envPathOverride = "SYSTEM_CERTIFICATE_PATH" @@ -47,7 +48,7 @@ listDirectoryCerts path = (map (path ) . filter isCert <$> getDirectoryConten && isDigit (s !! 9) && (s !! 8) == '.' && all isHexDigit (take 8 s) - isCert x = (not $ isPrefixOf "." x) && (not $ isHashedFile x) + isCert x = (not $ isPrefixOf "." x) getSystemCertificateStore :: IO CertificateStore getSystemCertificateStore = makeCertificateStore . concat <$> (getSystemPath >>= listDirectoryCerts >>= mapM readCertificates) -- 1.8.2.rc3