101 lines
2.2 KiB
Haskell
101 lines
2.2 KiB
Haskell
-- |
|
|
-- Module : Network.TLS
|
|
-- License : BSD-style
|
|
-- Maintainer : Vincent Hanquez <vincent@snarc.org>
|
|
-- Stability : experimental
|
|
-- Portability : unknown
|
|
--
|
|
module Network.TLS
|
|
(
|
|
-- * Context configuration
|
|
Params(..)
|
|
, RoleParams(..)
|
|
, ClientParams(..)
|
|
, ServerParams(..)
|
|
, updateClientParams
|
|
, updateServerParams
|
|
, Logging(..)
|
|
, Measurement(..)
|
|
, CertificateUsage(..)
|
|
, CertificateRejectReason(..)
|
|
, defaultParamsClient
|
|
, defaultParamsServer
|
|
, defaultLogging
|
|
, MaxFragmentEnum(..)
|
|
, HashAndSignatureAlgorithm
|
|
, HashAlgorithm(..)
|
|
, SignatureAlgorithm(..)
|
|
, CertificateType(..)
|
|
|
|
-- * raw types
|
|
, ProtocolType(..)
|
|
, Header(..)
|
|
|
|
-- * Session
|
|
, SessionID
|
|
, SessionData(..)
|
|
, SessionManager(..)
|
|
, noSessionManager
|
|
, setSessionManager
|
|
|
|
-- * Backend abstraction
|
|
, Backend(..)
|
|
|
|
-- * Context object
|
|
, Context
|
|
, ctxConnection
|
|
|
|
-- * Creating a context
|
|
, contextNew
|
|
, contextNewOnHandle
|
|
, contextFlush
|
|
, contextClose
|
|
, contextHookSetHandshakeRecv
|
|
|
|
-- * deprecated values
|
|
, defaultParams
|
|
|
|
-- * Initialisation and Termination of context
|
|
, bye
|
|
, handshake
|
|
|
|
-- * Next Protocol Negotiation
|
|
, getNegotiatedProtocol
|
|
|
|
-- * High level API
|
|
, sendData
|
|
, recvData
|
|
, recvData'
|
|
|
|
-- * Crypto Key
|
|
, PubKey(..)
|
|
, PrivKey(..)
|
|
|
|
-- * Compressions & Predefined compressions
|
|
, module Network.TLS.Compression
|
|
|
|
-- * Ciphers & Predefined ciphers
|
|
, module Network.TLS.Cipher
|
|
|
|
-- * Versions
|
|
, Version(..)
|
|
|
|
-- * Errors
|
|
, TLSError(..)
|
|
, KxError(..)
|
|
, AlertDescription(..)
|
|
|
|
-- * Exceptions
|
|
, Terminated(..)
|
|
, HandshakeFailed(..)
|
|
, ConnectionNotEstablished(..)
|
|
) where
|
|
|
|
import Network.TLS.Struct (Version(..), TLSError(..), HashAndSignatureAlgorithm, HashAlgorithm(..), SignatureAlgorithm(..), Header(..), ProtocolType(..), CertificateType(..), AlertDescription(..))
|
|
import Network.TLS.Crypto (KxError(..))
|
|
import Network.TLS.Cipher
|
|
import Network.TLS.Compression (CompressionC(..), Compression(..), nullCompression)
|
|
import Network.TLS.Context
|
|
import Network.TLS.Core
|
|
import Network.TLS.Session
|
|
import Data.X509 (PubKey(..), PrivKey(..))
|