on master help sign in
warp-tls: newer tls
05198ceMichael Snoyman
warp-tls/Network/Wai/Handler/WarpTLS.hs+2−5
@@ -19,9 +19,7 @@ import qualified Network.TLS.Extra as TLSExtra
19import qualified Data.Certificate.X509 as X509
19import qualified Data.Certificate.X509 as X509
20import qualified Data.Certificate.PEM as PEM
20import qualified Data.Certificate.PEM as PEM
21import qualified Data.ByteString as B
21import qualified Data.ByteString as B
22−import Control.Monad (unless)
23import qualified Data.Certificate.KeyRSA as KeyRSA
22import qualified Data.Certificate.KeyRSA as KeyRSA
24−import Control.Applicative ((<$>))
25
23
26data TLSSettings = TLSSettings
24data TLSSettings = TLSSettings
27 { certFile :: FilePath
25 { certFile :: FilePath
@@ -53,8 +51,7 @@ runTLS tset set app = do
53 hSetBuffering h NoBuffering
51 hSetBuffering h NoBuffering
54 gen <- newGenIO
52 gen <- newGenIO
55 ctx <- TLS.server params (gen :: SystemRandom) h
53 ctx <- TLS.server params (gen :: SystemRandom) h
56− b <- TLS.handshake ctx
54+ TLS.handshake ctx
57− unless b $ error "Invalid handshake"
58 let conn = Connection
55 let conn = Connection
59 { connSendMany = TLS.sendData ctx . L.fromChunks
56 { connSendMany = TLS.sendData ctx . L.fromChunks
60 , connSendAll = TLS.sendData ctx . L.fromChunks . return
57 , connSendAll = TLS.sendData ctx . L.fromChunks . return
@@ -62,7 +59,7 @@ runTLS tset set app = do
62 , connClose = do
59 , connClose = do
63 TLS.bye ctx
60 TLS.bye ctx
64 hClose h
61 hClose h
65− , connRecv = B.concat . L.toChunks <$> TLS.recvData ctx
62+ , connRecv = TLS.recvData ctx
66 }
63 }
67 return (conn, sa)
64 return (conn, sa)
68
65
warp-tls/pong.hs+3−2
@@ -5,6 +5,7 @@ import Network.Wai.Handler.WarpTLS
5import Network.HTTP.Types (status200)
5import Network.HTTP.Types (status200)
6import Blaze.ByteString.Builder (copyByteString)
6import Blaze.ByteString.Builder (copyByteString)
7import Data.Monoid
7import Data.Monoid
8+import qualified Data.Conduit as C
8import qualified Data.Conduit.List as CL
9import qualified Data.Conduit.List as CL
9
10
10main = do
11main = do
@@ -39,13 +40,13 @@ sourceWithLen = ResponseSource
39 [ ("Content-Type", "text/plain")
40 [ ("Content-Type", "text/plain")
40 , ("Content-Length", "4")
41 , ("Content-Length", "4")
41 ]
42 ]
42− $ CL.sourceList [copyByteString "PONG"]
43+ $ CL.sourceList [C.Chunk $ copyByteString "PONG"]
43
44
44sourceNoLen = ResponseSource
45sourceNoLen = ResponseSource
45 status200
46 status200
46 [ ("Content-Type", "text/plain")
47 [ ("Content-Type", "text/plain")
47 ]
48 ]
48− $ CL.sourceList [copyByteString "PONG"]
49+ $ CL.sourceList [C.Chunk $ copyByteString "PONG"]
49
50
50fileWithLen = ResponseFile
51fileWithLen = ResponseFile
51 status200
52 status200
warp-tls/warp-tls.cabal+4−4
@@ -1,5 +1,5 @@
1Name: warp-tls
1Name: warp-tls
2−Version: 1.1.0
2+Version: 1.1.1
3Synopsis: SSL support for Warp via the TLS package
3Synopsis: SSL support for Warp via the TLS package
4License: BSD3
4License: BSD3
5License-file: LICENSE
5License-file: LICENSE
@@ -19,10 +19,10 @@ Library
19 , warp >= 1.1 && < 1.2
19 , warp >= 1.1 && < 1.2
20 , transformers >= 0.2 && < 0.3
20 , transformers >= 0.2 && < 0.3
21 , conduit >= 0.2
21 , conduit >= 0.2
22− , certificate >= 1.0.1 && < 1.1
22+ , certificate >= 1.1 && < 1.2
23 , cryptocipher >= 0.3 && < 0.4
23 , cryptocipher >= 0.3 && < 0.4
24− , tls-extra >= 0.4 && < 0.5
24+ , tls-extra >= 0.4.3 && < 0.5
25− , tls >= 0.8.1 && < 0.9
25+ , tls >= 0.9 && < 0.10
26 , crypto-api >= 0.8 && < 0.10
26 , crypto-api >= 0.8 && < 0.10
27 , network >= 2.2.1 && < 2.4
27 , network >= 2.2.1 && < 2.4
28 Exposed-modules: Network.Wai.Handler.WarpTLS
28 Exposed-modules: Network.Wai.Handler.WarpTLS