Skip to content

Commit 296d32a

Browse files
committed
Revert "Use OpenSSL for establishing secure connections (#71)"
This reverts commit f559e00.
1 parent f4c7c52 commit 296d32a

File tree

2 files changed

+19
-16
lines changed

2 files changed

+19
-16
lines changed

package.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@ library:
2828
- Testing.CurlRunnings.Internal.KeyValuePairs
2929
- Testing.CurlRunnings.Internal.Payload
3030
dependencies:
31-
- HsOpenSSL
3231
- aeson >=1.2.4.0
33-
- base64-bytestring >=1.0.0.2
3432
- bytestring >=0.10.8.2
3533
- case-insensitive >=0.2.1
34+
- base64-bytestring >=1.0.0.2
3635
- clock >=0.7.2
3736
- dhall >=1.8.2
3837
- dhall-json >= 1.0.9
3938
- directory >=1.3.0.2
4039
- hashable >= 1.2.7.0
4140
- hspec >=2.4.4
4241
- hspec-expectations >=0.8.2
43-
- http-client-openssl >=0.3.0.0
4442
- http-conduit >=2.3.6
45-
- http-types >=0.12.3
4643
- megaparsec >=7.0.4
44+
- connection >=0.2.8
45+
- http-client-tls >=0.3.5.3
46+
- http-types >=0.12.3
4747
- pretty-simple >=2.0.2.1
4848
- regex-posix >=0.95.2
4949
- text >=1.2.2.2

src/Testing/CurlRunnings.hs

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ import qualified Dhall.Import
4545
import qualified Dhall.JSON
4646
import qualified Dhall.Parser
4747
import qualified Dhall.TypeCheck
48-
import qualified Network.HTTP.Client.OpenSSL as HTTP
48+
import Network.Connection (TLSSettings (..))
49+
import Network.HTTP.Client.TLS (mkManagerSettings)
4950
import Network.HTTP.Conduit
5051
import Network.HTTP.Simple hiding (Header)
5152
import qualified Network.HTTP.Simple as HTTP
5253
import qualified Network.HTTP.Types as NT
53-
import OpenSSL.Session (VerificationMode (..))
5454
import System.Directory
5555
import System.Environment
5656
import Testing.CurlRunnings.Internal
@@ -95,6 +95,17 @@ resultToEither :: Result a -> Either String a
9595
resultToEither (Error s) = Left s
9696
resultToEither (Success a) = Right a
9797

98+
noVerifyTlsManagerSettings :: ManagerSettings
99+
noVerifyTlsManagerSettings = mkManagerSettings noVerifyTlsSettings Nothing
100+
101+
noVerifyTlsSettings :: TLSSettings
102+
noVerifyTlsSettings =
103+
TLSSettingsSimple
104+
{ settingDisableCertificateValidation = True
105+
, settingDisableSession = True
106+
, settingUseServerName = False
107+
}
108+
98109
-- | Fetch existing query parameters from the request and append those specfied in the queryParameters field.
99110
appendQueryParameters :: [KeyValuePair] -> Request -> Request
100111
appendQueryParameters newParams r = setQueryString (existing ++ newQuery) r where
@@ -133,21 +144,13 @@ runCase state@(CurlRunningsState _ _ _ tlsCheckType) curlCase = do
133144
return $ CaseFail curlCase Nothing Nothing [QueryFailure curlCase l] 0
134145
Right interpolatedData -> do
135146
initReq <- parseRequest $ T.unpack interpolatedUrl
136-
137-
manager <- newManager $ HTTP.opensslManagerSettings $ case tlsCheckType of
138-
DoTLSCheck -> HTTP.defaultMakeContext HTTP.defaultOpenSSLSettings
139-
-- Don't do any loading from custom locations but
140-
-- instead use OpenSSL's default settings.
141-
-- See https://github.com/snoyberg/http-client/issues/462
142-
{ HTTP.osslSettingsLoadCerts = \_ -> pure () }
143-
SkipTLSCheck -> HTTP.defaultMakeContext HTTP.defaultOpenSSLSettings
144-
{ HTTP.osslSettingsVerifyMode = VerifyNone }
147+
manager <- newManager noVerifyTlsManagerSettings
145148

146149
let !request =
147150
setPayload interpolatedData .
148151
setRequestHeaders (toHTTPHeaders interpolatedHeaders) .
149152
appendQueryParameters interpolatedQueryParams .
150-
setRequestManager manager $
153+
(if tlsCheckType == DoTLSCheck then id else (setRequestManager manager)) $
151154
initReq { method = B8S.pack . show $ requestMethod curlCase
152155
, redirectCount = fromMaybe 10 (allowedRedirects curlCase) }
153156
logger state DEBUG (pShow request)

0 commit comments

Comments
 (0)