h)-&f      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.0.1.0None "%&'(-1;=?!rustls+A TLS protocol version supported by Rustls.rustls(Unused) userdata.[rustls Hostname.!"# _^]\UTSZV[NRQPOMLKJIHGFE0/.D;89:74563A21@?>== ServerConfig -> ServerConfig)setLogCallback logCallback serverConfig == serverConfig { serverConfigLogCallback = Just logCallback }:}rustlsRustls client config builder.rustlsList of s.rustls Supported 's. When empty, good defaults are used.rustls Supported >s in order of preference. When empty, good defaults are used.rustlsALPN protocols.rustls3Ignore the client's ciphersuite order. Defaults to .rustls#Optionally, a client cert verifier.rustls&How to verify TLS client certificates.rustls9Root certificates used to verify TLS client certificates.rustlsRoot certificates used to verify TLS client certificates if present, but does not reject clients which provide no certificate.rustls7Assembled configuration for a Rustls client connection.rustlsA logging callback.Note that this is a record selector, so you can use it as a setter::{=setLogCallback :: LogCallback -> ClientConfig -> ClientConfig)setLogCallback logCallback clientConfig == clientConfig { clientConfigLogCallback = Just logCallback }:}rustlsA complete chain of certificates plus a private key for the leaf certificate.rustlsPEM-encoded certificate chain.rustlsPEM-encoded private key.rustls#In-memory PEM-encoded certificates.rustls-Syntactically valid PEM-encoded certificates.rustls;PEM-encoded certificates, ignored if syntactically invalid.This may be useful on systems that have syntactically invalid root certificates.rustls!How to look up root certificates.rustls0Fetch PEM-encoded root certificates from a file.rustls'Use in-memory PEM-encoded certificates.rustlsRustls client config builder.rustlsClient root certificates.rustls Supported &s. When empty, good defaults are used.rustls Supported >s in order of preference. When empty, good defaults are used.rustlsALPN protocols.rustls6Whether to enable Server Name Indication. Defaults to .rustlsList of s for client authentication.Clients that want to support both ECDSA and RSA certificates will want the ECDSA to go first in the list.rustls'A TLS cipher suite supported by Rustls.rustlsAn ALPN protocol ID. See  https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids for a list of registered IDs.rustlsGet the IANA value from a cipher suite. The bytes are interpreted in network order.See  https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml#tls-parameters-4 for a list.rustls.Get the text representation of a cipher suite.rustlsChecks if the given  represents a certificate error.rustls%This instance will silently truncate s which are too long.rustlsTarget buffer pointer.rustlsTarget buffer length.rustlsAmount of bytes read.rustlsSource buffer pointer.rustlsSource buffer length.rustlsAmount of bytes written.}~}~ Safe-Inferred "%&'(-1;=?$rustlsA DER-encoded certificate.rustls1Combined version string of Rustls and rustls-ffi.version "rustls-ffi/0.9.2/rustls/0.20.8"rustlsAll s supported by Rustls.rustls The default s used by Rustls. A subset of .rustlsAll s supported by Rustls.rustls The default s used by Rustls. A subset of .rustlsA  with good defaults.rustlsBuild a  into a .This is a relatively expensive operation, so it is a good idea to share one  when creating multiple s.rustlsBuild a  into a .This is a relatively expensive operation, so it is a good idea to share one  when creating multiple s.rustlsA  with good defaults.rustls*Allocate a new logging callback, taking a  and a message.3If it throws an exception, it will be wrapped in a  and passed to .4 Make sure that its lifetime encloses those of the "s which you configured to use it.rustls(Initialize a TLS connection as a client.rustls(Initialize a TLS connection as a server.rustlsEnsure that the connection is handshaked. It is only necessary to call this if you want to obtain connection information. You can do so by providing a .:{getALPNAndTLSVersion :: MonadIO m => Connection side ->$ m (Maybe ALPNProtocol, TLSVersion)getALPNAndTLSVersion conn =< handshake conn $ (,) <$> getALPNProtocol <*> getTLSVersion:}rustls)Get the negotiated ALPN protocol, if any.rustls(Get the negotiated TLS protocol version.rustls Get the negotiated cipher suite.rustls/Get the SNI hostname set by the client, if any.rustlsGet the i%-th certificate provided by the peer.Index 0 is the end entity certificate. Higher indices are certificates in the chain. Requesting an index higher than what is available returns .rustlsSend a  close_notify warning alert. This informs the peer that the connection is being closed.rustlsRead data from the Rustls  into the given buffer.rustlsRead data from the Rustls  into a 7. The result will not be longer than the given length.rustlsWrite data to the Rustls  from the given buffer.rustlsWrite a  to the Rustls .rustls Hostname.rustlsMaximum result length. Note that a buffer of this size will be allocated.fefefe        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  mn+)rustls-0.0.1.0-inplaceRustls.Internal.FFIRustls.InternalRustlsrustls handshake TLSVersion unTLSVersionSupportedCipherSuite Certificate CertifiedKey WriteCallback ReadCallback LogParamsrustlsLogParamsLevelrustlsLogParamsMessageLogLevel LogCallback ConnectionClientCertVerifierOptionalClientCertVerifierServerConfigBuilder ServerConfig RootCertStoreClientConfigBuilder ClientConfigUserdataIOResultResult SliceBytesStr ConstCStringConstPtr unConstPtrdefaultVersionsLendefaultVersionsallVersionsLen allVersionshsSupportedCipherSuiteGetNamesupportedCipherSuiteGetSuitedefaultCipherSuitesLendefaultCipherSuitesallCipherSuitesLenallCipherSuitescertificateGetDERcertifiedKeyFreecertifiedKeyBuildconnectionSetBufferLimitconnectionSendCloseNotifyconnectionProcessNewPacketsconnectionWantsWriteconnectionWriteconnectionWriteTlsmkWriteCallbackconnectionWantsReadconnectionReadconnectionReadTlsmkReadCallbackconnectionGetPeerCertificateserverConnectionGetSNIHostname"connectionGetNegotiatedCipherSuiteconnectionGetProtocolVersionconnectionGetALPNProtocolconnectionIsHandshakingconnectionSetLogCallback mkLogCallbackconnectionFree,serverConfigBuilderSetClientVerifierOptionalclientCertVerifierOptionalFreeclientCertVerifierOptionalNew$serverConfigBuilderSetClientVerifierclientCertVerifierFreeclientCertVerifierNew#serverConfigBuilderSetCertifiedKeys'serverConfigBuilderSetIgnoreClientOrder#serverConfigBuilderSetALPNProtocolsserverConnectionNewserverConfigFreeserverConfigBuilderBuildserverConfigBuilderFreeserverConfigBuilderNewCustom"clientConfigBuilderSetCertifiedKeyclientConfigBuilderSetEnableSNI#clientConfigBuilderSetALPNProtocolsclientConfigBuilderUseRootsrootCertStoreFreerootCertStoreAddPEMrootCertStoreNew$clientConfigBuilderLoadRootsFromFileclientConnectionNewclientConfigFreeclientConfigBuilderBuildclientConfigBuilderFreeclientConfigBuilderNewCustomerrorMsgresultIsCertErrorresultInsufficientSizeresultOk hsVersionTLS13TLS12 ioResultOk ioResultErr$fShowTLSVersion$fEqTLSVersion$fOrdTLSVersion$fStorableTLSVersion$fGenericLogParams$fGStorableLogParams$fShowLogLevel $fEqLogLevel$fStorableLogLevel $fEqIOResult $fShowResult $fEqResult $fOrdResult$fGenericSliceBytes$fGStorableSliceBytes $fGenericStr$fGStorableStr$fShowConstPtr $fEqConstPtr$fStorableConstPtr RunTLSMode TLSHandshakeTLSReadTLSWriteIOMsgRes UsingBufferDoneFFIIOMsgReqRequestDone ReadOrWriteReadWrite Connection'connbackendlenPtrioMsgReqioMsgResinteractThreadSideClientServerByteStringBackendbsbReadbsbWriteBackend backendRead backendWriteRustlsUnknownLogLevelRustlsLogExceptionRustlsExceptionrustlsErrorCodeHandshakeQuery unLogCallback LogLevelError LogLevelWarn LogLevelInfo LogLevelDebug LogLevelTraceserverConfigPtrserverConfigLogCallbackserverConfigCertifiedKeysserverConfigTLSVersionsserverConfigCipherSuitesserverConfigALPNProtocolsserverConfigIgnoreClientOrderserverConfigClientCertVerifierclientConfigPtrclientConfigLogCallbackcertificateChain privateKeyPEMCertificatesPEMCertificatesStrictPEMCertificatesLax ClientRootsClientRootsFromFileClientRootsInMemoryclientConfigRootsclientConfigTLSVersionsclientConfigCipherSuitesclientConfigALPNProtocolsclientConfigEnableSNIclientConfigCertifiedKeys CipherSuite ALPNProtocolunALPNProtocol cipherSuiteIDshowCipherSuitehandshakeQuery resultMsg isCertErrorrethrowRwithConnection interactTLSrunTLS cSizeToInt intToCSize strToTextignoreExceptionsignoreSyncExceptions$fShowCipherSuite$fOrdCipherSuite$fEqCipherSuite$fShowClientRoots$fShowCertifiedKey$fExceptionRustlsException$fBackendSocket$fBackendByteStringBackend$fEqRunTLSMode$fFunctorHandshakeQuery$fApplicativeHandshakeQuery$fMonadHandshakeQuery$fGenericByteStringBackend$fShowRustlsUnknownLogLevel $fExceptionRustlsUnknownLogLevel$fShowRustlsLogException$fExceptionRustlsLogException$fShowRustlsException $fOrdLogLevel$fEnumLogLevel$fBoundedLogLevel$fGenericLogLevel$fShowServerConfigBuilder$fGenericServerConfigBuilder$fShowClientCertVerifier$fGenericClientCertVerifier$fShowClientConfigBuilder$fGenericClientConfigBuilder$fGenericCertifiedKey$fGenericClientRoots$fShowPEMCertificates$fGenericPEMCertificates$fShowALPNProtocol$fEqALPNProtocol$fOrdALPNProtocol$fGenericALPNProtocolDERCertificateunDERCertificateversionallTLSVersionsdefaultTLSVersionsdefaultClientConfigBuilderbuildClientConfigbuildServerConfigdefaultServerConfigBuildernewLogCallbacknewClientConnectionnewServerConnectiongetALPNProtocol getTLSVersiongetCipherSuitegetSNIHostnamegetPeerCertificatesendCloseNotifyreadPtrreadBSwritePtrwriteBS$fShowDERCertificate$fEqDERCertificate$fOrdDERCertificate$fGenericDERCertificatebytestring-0.11.3.1Data.ByteString.Internal ByteStringbaseGHC.Exception.TypedisplayExceptionGHC.BaseMonadghc-prim GHC.TypesFalseTrue GHC.Conc.Sync reportError GHC.MaybeNothing