packages feed

network-conduit-tls 1.0.4.1 → 1.0.4.2

raw patch · 3 files changed

+7/−43 lines, 3 filesdep −aesondep −certificatedep −crypto-apidep ~tls

Dependencies removed: aeson, certificate, crypto-api, crypto-random-api, pem

Dependency ranges changed: tls

Files

Data/Conduit/Network/TLS.hs view
@@ -31,31 +31,23 @@     ) where  import Prelude hiding (FilePath, readFile)-import Data.Aeson (FromJSON (parseJSON), (.:), (.:?), (.!=), Value (Object)) import Control.Applicative ((<$>), (<*>))-import Control.Monad (mzero, forever)-import Data.String (fromString)-import Filesystem.Path.CurrentOS ((</>), FilePath)+import Control.Monad (forever)+import Filesystem.Path.CurrentOS (FilePath) import Filesystem (readFile) import qualified Data.ByteString.Lazy as L-import qualified Data.Certificate.KeyRSA as KeyRSA-import qualified Data.PEM as PEM import qualified Network.TLS as TLS-import qualified Data.Certificate.X509 as X509-import Data.Conduit.Network (HostPreference, Application, bindPort, sinkSocket, acceptSafe, runTCPServerWithHandle, ConnectionHandle(..), serverSettings, sourceSocket)+import Data.Conduit.Network (HostPreference, Application, sinkSocket, runTCPServerWithHandle, ConnectionHandle(..), serverSettings, sourceSocket) import Data.Conduit.Network.Internal (AppData (..)) import Data.Conduit.Network.TLS.Internal-import Data.Conduit (($$), yield, awaitForever, Producer, Consumer)+import Data.Conduit (yield, awaitForever, Producer, Consumer) import qualified Data.Conduit.List as CL-import Data.Either (rights)-import Network.Socket (sClose, getSocketName, SockAddr (SockAddrInet))+import Network.Socket (SockAddr (SockAddrInet)) import Network.Socket.ByteString (recv, sendAll)-import Control.Exception (bracket, finally)-import Control.Concurrent (forkIO)+import Control.Exception (bracket) import Control.Monad.Trans.Class (lift) import Control.Monad.IO.Class (liftIO, MonadIO) import qualified Network.TLS.Extra as TLSExtra-import Crypto.Random.API (getSystemRandomGen, SystemRandom) import Network.Socket (Socket) import qualified Data.ByteString as S import qualified Data.ByteString.Char8 as S8@@ -216,27 +208,6 @@         (error . ("Error reading TLS credentials: " ++))         (return . TLS.Credentials . return) -readCertificates :: TlsCertData -> IO [X509.X509]-readCertificates certData = do-    certs <- rights . parseCerts . PEM.pemParseBS <$> getTLSCert certData-    case certs of-        []    -> error "no valid certificate found"-        (_:_) -> return certs-    where parseCerts (Right pems) = map (X509.decodeCertificate . L.fromChunks . (:[]) . PEM.pemContent)-                                  $ filter (flip elem ["CERTIFICATE", "TRUSTED CERTIFICATE"] . PEM.pemName) pems-          parseCerts (Left err) = error $ "cannot parse PEM file: " ++ err--readPrivateKey :: TlsCertData -> IO TLS.PrivKey-readPrivateKey certData = do-    pk <- rights . parseKey . PEM.pemParseBS <$> getTLSKey certData-    case pk of-        []    -> error "no valid RSA key found"-        (x:_) -> return x--    where parseKey (Right pems) = map (fmap (TLS.PrivKeyRSA . snd) . KeyRSA.decodePrivate . L.fromChunks . (:[]) . PEM.pemContent)-                                $ filter ((== "RSA PRIVATE KEY") . PEM.pemName) pems-          parseKey (Left err) = error $ "Cannot parse PEM file: " ++ err- -- | TLS requires exactly the number of bytes requested to be returned. recvExact :: Socket -> Int -> IO S.ByteString recvExact socket =@@ -342,7 +313,6 @@             , NC.connectionUseSecure = Nothing             , NC.connectionUseSocks = tlsClientSockSettings             }-        tlsSettings = tlsClientTLSSettings     control $ \run -> bracket         (NC.connectTo context params)         NC.connectionClose
Data/Conduit/Network/TLS/Internal.hs view
@@ -6,7 +6,6 @@  import Prelude hiding (FilePath) import Data.Conduit.Network (HostPreference)-import Filesystem.Path.CurrentOS (FilePath) import qualified Data.ByteString as S  -- structure providing access to certificate and key data through call backs 
network-conduit-tls.cabal view
@@ -1,5 +1,5 @@ name:                network-conduit-tls-version:             1.0.4.1+version:             1.0.4.2 synopsis:            Create TLS-aware network code with conduits description:         Uses the tls package for a pure-Haskell implementation. homepage:            https://github.com/snoyberg/conduit@@ -15,19 +15,14 @@   exposed-modules:    Data.Conduit.Network.TLS                       Data.Conduit.Network.TLS.Internal   build-depends:      base            >= 4        && < 5-                    , aeson           >= 0.5                     , system-filepath >= 0.4                     , system-fileio   >= 0.3                     , bytestring      >= 0.9-                    , certificate     >= 1.2-                    , pem             >= 0.1                     , tls             >= 1.2.2                     , network-conduit >= 1.0                     , conduit         >= 1.0                     , network                     , transformers-                    , crypto-api      >= 0.10-                    , crypto-random-api >= 0.2                     , cprng-aes                     , connection                     , monad-control