Safe Haskell | None |
---|---|
Language | Haskell2010 |
This module provides convenience functions for interfacing io-streams
with HsOpenSSL
. It is intended to be imported qualified
, e.g.:
import qualified OpenSSL as SSL import qualified OpenSSL.Session as SSL import qualified System.IO.Streams.SSL as SSLStreams example :: IO (InputStream
ByteString
,OutputStream
ByteString
) example = SSL.withOpenSSL
$ do ctx <- SSL.context
SSL.contextSetDefaultCiphers
ctx -- Note: the location of the system certificates is system-dependent, -- on Linux systems this is usually "/etc/ssl/certs". This -- step is optional if you choose to disable certificate verification -- (not recommended!). SSL.contextSetCADirectory
ctx "/etc/ssl/certs" SSL.contextSetVerificationMode
ctx $ SSL.VerifyPeer
True True Nothing SSLStreams.connect
ctx "foo.com" 4444
Synopsis
- connect :: SSLContext -> HostName -> PortNumber -> IO (InputStream ByteString, OutputStream ByteString, SSL)
- withConnection :: SSLContext -> HostName -> PortNumber -> (InputStream ByteString -> OutputStream ByteString -> SSL -> IO a) -> IO a
- sslToStreams :: SSL -> IO (InputStream ByteString, OutputStream ByteString)
Documentation
:: SSLContext | SSL context. See the |
-> HostName | hostname to connect to |
-> PortNumber | port number to connect to |
-> IO (InputStream ByteString, OutputStream ByteString, SSL) |
Convenience function for initiating an SSL connection to the given
(
combination.HostName
, PortNumber
)
Note that sending an end-of-file to the returned OutputStream
will not
close the underlying SSL connection; to do that, call:
SSL.shutdown
ssl SSL.Unidirectional
maybe (return ())close
$ SSL.sslSocket
ssl
on the returned SSL
object.
:: SSLContext | SSL context. See the |
-> HostName | hostname to connect to |
-> PortNumber | port number to connect to |
-> (InputStream ByteString -> OutputStream ByteString -> SSL -> IO a) | Action to run with the new connection |
-> IO a |
Convenience function for initiating an SSL connection to the given
(
combination. The socket and SSL connection are
closed and deleted after the user handler runs.HostName
, PortNumber
)
Since: 1.2.0.0.
:: SSL | SSL connection object |
-> IO (InputStream ByteString, OutputStream ByteString) |
Given an existing HsOpenSSL SSL
connection, produces an InputStream
/
OutputStream
pair.