module Network.TLS (
Context,
contextNew,
handshake,
sendData,
recvData,
bye,
HasBackend (..),
Backend (..),
TLSParams,
ClientParams,
defaultParamsClient,
clientServerIdentification,
clientUseServerNameIndication,
clientWantSessionResume,
clientWantSessionResumeList,
clientShared,
clientHooks,
clientSupported,
clientDebug,
clientUseEarlyData,
clientUseECH,
ServerParams,
defaultParamsServer,
serverWantClientCert,
serverCACertificates,
serverDHEParams,
serverHooks,
serverShared,
serverSupported,
serverDebug,
serverEarlyDataSize,
serverTicketLifetime,
serverECHKey,
Shared,
defaultShared,
sharedCredentials,
sharedSessionManager,
sharedCAStore,
sharedValidationCache,
sharedHelloExtensions,
sharedECHConfigList,
sharedLimit,
ClientHooks,
defaultClientHooks,
OnCertificateRequest,
onCertificateRequest,
OnServerCertificate,
onServerCertificate,
validateClientCertificate,
onSuggestALPN,
onCustomFFDHEGroup,
onServerFinished,
ServerHooks,
defaultServerHooks,
onClientCertificate,
onUnverifiedClientCert,
onCipherChoosing,
onServerNameIndication,
onNewHandshake,
onALPNClientSuggest,
onEncryptedExtensionsCreating,
Measurement,
nbHandshakes,
bytesReceived,
bytesSent,
Supported,
defaultSupported,
supportedVersions,
supportedCiphers,
supportedCompressions,
supportedHashSignatures,
supportedSecureRenegotiation,
supportedClientInitiatedRenegotiation,
supportedExtendedMainSecret,
supportedSession,
supportedFallbackScsv,
supportedEmptyPacket,
supportedGroups,
DebugParams,
defaultDebugParams,
debugSeed,
debugPrintSeed,
debugVersionForced,
debugKeyLogger,
debugError,
debugTraceKey,
Limit,
defaultLimit,
limitHandshakeFragment,
limitRecordSize,
Credentials (..),
Credential,
credentialLoadX509,
credentialLoadX509FromMemory,
credentialLoadX509Chain,
credentialLoadX509ChainFromMemory,
SessionManager,
noSessionManager,
sessionResume,
sessionResumeOnlyOnce,
sessionEstablish,
sessionInvalidate,
sessionUseTicket,
SessionID,
SessionIDorTicket,
Ticket,
SessionData,
sessionVersion,
sessionCipher,
sessionCompression,
sessionClientSNI,
sessionSecret,
sessionGroup,
sessionTicketInfo,
sessionALPN,
sessionMaxEarlyDataSize,
sessionFlags,
SessionFlag (..),
TLS13TicketInfo,
is0RTTPossible,
ValidationCache (..),
defaultValidationCache,
ValidationCacheQueryCallback,
ValidationCacheAddCallback,
ValidationCacheResult (..),
exceptionValidationCache,
Version (..),
Compression (..),
nullCompression,
HashAndSignatureAlgorithm,
supportedSignatureSchemes,
HashAlgorithm (..),
SignatureAlgorithm (..),
Group (..),
supportedNamedGroups,
EMSMode (..),
DHParams,
DHPublic,
GroupUsage (..),
CertificateUsage (..),
CertificateRejectReason (..),
CertificateType (..),
CertificateChain (..),
HostName,
MaxFragmentEnum (..),
ctxBackend,
contextFlush,
contextClose,
Information,
contextGetInformation,
infoVersion,
infoCipher,
infoCompression,
infoMainSecret,
infoExtendedMainSecret,
infoClientRandom,
infoServerRandom,
infoSupportedGroup,
infoTLS12Resumption,
infoTLS13HandshakeMode,
infoIsEarlyDataAccepted,
infoIsECHAccepted,
ClientRandom,
ServerRandom,
unClientRandom,
unServerRandom,
HandshakeMode13 (..),
getClientCertificateChain,
getNegotiatedProtocol,
getClientSNI,
updateKey,
KeyUpdateRequest (..),
requestCertificate,
getTLSUnique,
getTLSExporter,
getTLSServerEndPoint,
getFinished,
getPeerFinished,
Hooks,
defaultHooks,
hookRecvHandshake,
hookRecvHandshake13,
hookRecvCertificates,
hookLogging,
contextModifyHooks,
Handshake,
contextHookSetHandshakeRecv,
Handshake13,
contextHookSetHandshake13Recv,
contextHookSetCertificateRecv,
Logging,
defaultLogging,
loggingPacketSent,
loggingPacketRecv,
loggingIOSent,
loggingIORecv,
Header (..),
ProtocolType (..),
contextHookSetLogging,
TLSError (..),
KxError (..),
AlertDescription (..),
TLSException (..),
CompressionC (..),
CompressionID,
PubKey (..),
PrivKey (..),
module Network.TLS.Cipher,
recvData',
Bytes,
ValidationChecks (..),
ValidationHooks (..),
clientUseMaxFragmentLength,
) where
import Data.X509 (PrivKey (..), PubKey (..))
import Data.X509.Validation hiding (HostName, defaultHooks)
import Network.TLS.Backend (Backend (..), HasBackend (..))
import Network.TLS.Cipher
import Network.TLS.Compression (
Compression (..),
CompressionC (..),
nullCompression,
)
import Network.TLS.Context
import Network.TLS.Core
import Network.TLS.Credentials
import Network.TLS.Crypto (
DHParams,
DHPublic,
Group (..),
KxError (..),
supportedNamedGroups,
)
import Network.TLS.Handshake.State (HandshakeMode13 (..))
import Network.TLS.Hooks
import Network.TLS.Imports
import Network.TLS.Measurement
import Network.TLS.Parameters
import Network.TLS.Session
import qualified Network.TLS.State as S
import Network.TLS.Struct (
AlertDescription (..),
CertificateType (..),
ClientRandom (..),
Handshake,
HashAlgorithm (..),
HashAndSignatureAlgorithm,
Header (..),
ProtocolType (..),
ServerRandom (..),
SignatureAlgorithm (..),
TLSError (..),
TLSException (..),
supportedSignatureSchemes,
)
import Network.TLS.Struct13 (Handshake13)
import Network.TLS.Types
import Network.TLS.X509
{-# DEPRECATED Bytes "Use Data.ByteString.Bytestring instead of Bytes." #-}
type Bytes = ByteString
getClientCertificateChain :: Context -> IO (Maybe CertificateChain)
getClientCertificateChain :: Context -> IO (Maybe CertificateChain)
getClientCertificateChain Context
ctx = Context
-> TLSSt (Maybe CertificateChain) -> IO (Maybe CertificateChain)
forall a. Context -> TLSSt a -> IO a
usingState_ Context
ctx TLSSt (Maybe CertificateChain)
S.getClientCertificateChain