| Safe Haskell | None |
|---|
System.IO.Streams.SSL
Description
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 (InputStreamByteString,OutputStreamByteString) example = SSL.withOpenSSL$ do ctx <- SSL.contextSSL.contextSetDefaultCiphersctx -- 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.contextSetCADirectoryctx "/etc/ssl/certs" SSL.contextSetVerificationModectx $ SSL.VerifyPeerTrue True Nothing SSLStreams.connectctx foo.com 4444
- connect :: SSLContext -> HostName -> PortNumber -> IO (InputStream ByteString, OutputStream ByteString, SSL)
- sslToStreams :: SSL -> IO (InputStream ByteString, OutputStream ByteString)
Documentation
Arguments
| :: 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.shutdownssl SSL.Unidirectionalmaybe (return ())close$ SSL.sslSocketssl
on the returned SSL object.
Arguments
| :: SSL | SSL connection object |
| -> IO (InputStream ByteString, OutputStream ByteString) |
Given an existing HsOpenSSL SSL connection, produces an InputStream /
OutputStream pair.