-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | TLS-enabled SOAP transport (using openssl bindings)
--   
--   TLS-enabled SOAP transport (using openssl bindings)
--   
--   <pre>
--   main = withOpenSSL $ do
--       -- Initial one-time preparations.
--       settings &lt;- makeSettings (Just ("client.crt", "client.key"))
--       transport &lt;- initTransportWith settings "http://example.com/soap/endpoint" id (iconv "cp-1251")
--   
--       -- the rest is the same as before...
--   </pre>
@package soap-openssl
@version 0.1.0.2


-- | SSL-enabled http transport with support for https requests and client
--   certificates.
module Network.SOAP.Transport.HTTP.OpenSSL

-- | Initialize a SOAP HTTP transport with HTTPS support using tls.
confTransport :: Text -> Config -> (SSLContext -> IO ()) -> IO Transport
makeSettings :: Maybe (FilePath, FilePath) -> (SSLContext -> IO ()) -> IO ManagerSettings

-- | Computation of <tt><a>withOpenSSL</a> action</tt> initializes the
--   OpenSSL library as necessary, and computes <tt>action</tt>. Every
--   application that uses HsOpenSSL must wrap any operations involving
--   OpenSSL with <a>withOpenSSL</a>, or they might crash:
--   
--   <pre>
--   module Main where
--   import OpenSSL
--   
--   main :: IO ()
--   main = withOpenSSL $
--          do ...
--   </pre>
--   
--   Since 0.10.3.5, <a>withOpenSSL</a> is safe to be applied redundantly.
--   Library authors may wish to wrap their functions not to force their
--   users to think about initialization:
--   
--   <pre>
--   get :: URI -&gt; IO Response
--   get uri = withOpenSSL $ internalImplementationOfGet uri
--   </pre>
withOpenSSL :: () => IO a -> IO a

-- | An SSL context. Contexts carry configuration such as a server's
--   private key, root CA certiifcates etc. Contexts are stateful IO
--   objects; they start empty and various options are set on them by the
--   functions in this module. Note that an empty context will pretty much
--   cause any operation to fail since it doesn't even have any ciphers
--   enabled.
data SSLContext
