h*0)I      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0.1.0.0None "%&(-1>rustls+A TLS protocol version supported by Rustls.rustls(Unused) userdata.frustls Hostname.&jihgedcba`_^]fX\[ZYWVUTSRQPON 98 7M DABC @=>??=rustls)Messages sent from the background thread.rustlsReply with a buffer, either containing the read data, or awaiting a write to this buffer.rustls"Notify that the FFI call finished.rustls'Messages sent to the background thread.rustlsRequest to start a read or a write FFI call from the background thread. It should respond with .rustlsNotify the background thread that we are done interacting with the buffer.rustlsA Rustls connection.rustlsType-level indicator whether a  is client- or server-side.rustls"Underlying data source for Rustls.rustls1Read data from the backend into the given buffer.rustls0Write data from the given buffer to the backend.rustls#Wrapper for exceptions thrown in a .rustlsTLS exception thrown by Rustls.Use % for a human-friendly representation.rustlsA ' to get TLS connection information via .rustls%A Rustls connection logging callback.rustlsRustls log level.rustls7Assembled configuration for a Rustls server connection.rustlsA logging callback.Note that this is a record selector, so you can use it as a setter::{=setLogCallback :: LogCallback -> 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;One or more PEM-encoded certificate revocation lists (CRL).rustls*Which client connections are allowed by a .rustlsAllow any authenticated client (i.e. offering a trusted certificate), and reject clients offering none.rustlsAllow any authenticated client (i.e. offering a trusted certificate), but also allow clients offering none.rustls&How to verify TLS client certificates.rustls%Which client connections are allowed.rustls4Certificates used to verify TLS client certificates.rustlsList of certificate revocation lists used to verify TLS client certificates.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*Parsing mode for PEM-encoded certificates.rustlsFail if syntactically invalid.rustls Ignore if syntactically invalid.This may be useful on systems that have syntactically invalid root certificates.rustls%A source of PEM-encoded certificates.rustls#In-memory PEM-encoded certificates.rustls0Fetch PEM-encoded root certificates from a file.rustls&How to verify TLS server certificates.rustls4Certificates used to verify TLS server certificates.rustlsList of certificate revocation lists used to verify TLS server certificates.rustlsRustls client config builder.rustls The server certificate verifier.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 An in-memory .rustlsHelper function, see  complete_io from rustls. https://github.com/rustls/rustls/blob/v/0.23.4/rustls/src/conn.rs#L544rustlsRead a  with the given max length.This will silently truncate s which are too long.rustlsWrite a . Safe-Inferred "%&(-1>'rustlsA DER-encoded certificate.rustls1Combined version string of Rustls and rustls-ffi.version!"rustls-ffi/0.13.0/rustls/0.23.4"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.qpqpqp       !""##$$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  z{64rustls-0.1.0.0-inplaceRustls.Internal.FFIRustls.InternalRustlsrustls handshakebaseForeign.C.ConstPtrConstPtr unConstPtr RootCertStoreRootCertStoreBuilder TLSVersion unTLSVersionSupportedCipherSuite Certificate CertifiedKey WriteCallback ReadCallback LogParamsrustlsLogParamsLevelrustlsLogParamsMessageLogLevel LogCallback ConnectionClientCertVerifierWebPkiClientCertVerifierBuilderServerConfigBuilder ServerConfigServerCertVerifierWebPkiServerCertVerifierBuilderClientConfigBuilder ClientConfigUserdataIOResultResult SliceBytesStr ConstCStringrootCertStoreFreerootCertStoreBuilderBuildrootCertStoreBuilderFree%rootCertStoreBuilderLoadRootsFromFilerootCertStoreBuilderAddPemrootCertStoreBuilderNewdefaultVersionsLendefaultVersionsallVersionsLen allVersionshsSupportedCipherSuiteGetNamesupportedCipherSuiteGetSuitedefaultCipherSuitesLendefaultCipherSuitesallCipherSuitesLenallCipherSuitescertificateGetDERcertifiedKeyFreecertifiedKeyBuildconnectionSetBufferLimitconnectionSendCloseNotifyconnectionProcessNewPacketsconnectionWantsWriteconnectionWriteconnectionWriteTlsmkWriteCallbackconnectionWantsReadconnectionReadconnectionReadTlsmkReadCallbackconnectionGetPeerCertificateserverConnectionGetSNIHostname"connectionGetNegotiatedCipherSuiteconnectionGetProtocolVersionconnectionGetALPNProtocolconnectionIsHandshakingconnectionSetLogCallback mkLogCallbackconnectionFree$serverConfigBuilderSetClientVerifierclientCertVerifierFree$webPkiClientCertVerifierBuilderBuild#webPkiClientCertVerifierBuilderFree3webPkiClientCertVerifierBuilderAllowUnauthenticated%webPkiClientCertVerifierBuilderAddCrl"webPkiClientCertVerifierBuilderNew#serverConfigBuilderSetCertifiedKeys'serverConfigBuilderSetIgnoreClientOrder#serverConfigBuilderSetALPNProtocolsserverConnectionNewserverConfigFreeserverConfigBuilderBuildserverConfigBuilderFreeserverConfigBuilderNewCustom$clientConfigBuilderSetServerVerifierserverCertVerifierFree$webPkiServerCertVerifierBuilderBuild#webPkiServerCertVerifierBuilderFree%webPkiServerCertVerifierBuilderAddCrl"webPkiServerCertVerifierBuilderNew"clientConfigBuilderSetCertifiedKeyclientConfigBuilderSetEnableSNI#clientConfigBuilderSetALPNProtocolsclientConnectionNewclientConfigFreeclientConfigBuilderBuildclientConfigBuilderFreeclientConfigBuilderNewCustomerrorMsgresultIsCertErrorresultInsufficientSizeresultOk hsVersionTLS13TLS12 ioResultOk ioResultErr$fShowTLSVersion$fEqTLSVersion$fOrdTLSVersion$fStorableTLSVersion$fGenericLogParams$fGStorableLogParams$fShowLogLevel $fEqLogLevel$fStorableLogLevel $fEqIOResult $fShowResult $fEqResult $fOrdResult$fGenericSliceBytes$fGStorableSliceBytes $fGenericStr$fGStorableStrIsEOFNotEOFIOMsgRes UsingBufferDoneFFIIOMsgReqRequestDone ReadOrWriteReadWrite Connection'connbackendlenPtrioMsgReqioMsgResinteractThreadSideClientServerBackend backendRead backendWriteRustlsUnknownLogLevelRustlsLogExceptionRustlsExceptionrustlsErrorCodeHandshakeQuery unLogCallback LogLevelError LogLevelWarn LogLevelInfo LogLevelDebug LogLevelTraceserverConfigPtrserverConfigLogCallbackserverConfigCertifiedKeysserverConfigTLSVersionsserverConfigCipherSuitesserverConfigALPNProtocolsserverConfigIgnoreClientOrderserverConfigClientCertVerifierCertificateRevocationListunCertificateRevocationListClientCertVerifierPolicyAllowAnyAuthenticatedClient&AllowAnyAnonymousOrAuthenticatedClientclientCertVerifierPolicyclientCertVerifierCertificatesclientCertVerifierCRLsclientConfigPtrclientConfigLogCallbackcertificateChain privateKeyPEMCertificateParsingPEMCertificateParsingStrictPEMCertificateParsingLaxPEMCertificatesPEMCertificatesInMemoryPemCertificatesFromFileserverCertVerifierCertificatesserverCertVerifierCRLsclientConfigServerCertVerifierclientConfigTLSVersionsclientConfigCipherSuitesclientConfigALPNProtocolsclientConfigEnableSNIclientConfigCertifiedKeys CipherSuite ALPNProtocolunALPNProtocol cipherSuiteIDshowCipherSuitehandshakeQuery resultMsg isCertErrorrethrowRmkSocketBackendmkByteStringBackendwithConnection interactTLS completeIOcompletePriorIOgetIsHandshaking getWantsRead getWantsWritewhenM loopWhileTrue cSizeToInt intToCSize strToTextignoreExceptionsignoreSyncExceptions$fShowCipherSuite$fOrdCipherSuite$fEqCipherSuite$fShowCertifiedKey$fExceptionRustlsException $fShowIsEOF $fEqIsEOF$fFunctorHandshakeQuery$fApplicativeHandshakeQuery$fMonadHandshakeQuery$fShowRustlsUnknownLogLevel $fExceptionRustlsUnknownLogLevel$fShowRustlsLogException$fExceptionRustlsLogException$fShowRustlsException $fOrdLogLevel$fEnumLogLevel$fBoundedLogLevel$fGenericLogLevel$fShowServerConfigBuilder$fGenericServerConfigBuilder$fShowClientConfigBuilder$fGenericClientConfigBuilder$fShowServerCertVerifier$fGenericServerCertVerifier$fShowClientCertVerifier$fGenericClientCertVerifier$fShowCertificateRevocationList"$fGenericCertificateRevocationList$fShowClientCertVerifierPolicy$fEqClientCertVerifierPolicy$fOrdClientCertVerifierPolicy$fEnumClientCertVerifierPolicy!$fBoundedClientCertVerifierPolicy!$fGenericClientCertVerifierPolicy$fGenericCertifiedKey$fShowPEMCertificates$fGenericPEMCertificates$fShowPEMCertificateParsing$fEqPEMCertificateParsing$fOrdPEMCertificateParsing$fEnumPEMCertificateParsing$fBoundedPEMCertificateParsing$fGenericPEMCertificateParsing$fShowALPNProtocol$fEqALPNProtocol$fOrdALPNProtocol$fGenericALPNProtocolDERCertificateunDERCertificateversionallTLSVersionsdefaultTLSVersionsdefaultClientConfigBuilderbuildClientConfigbuildServerConfigdefaultServerConfigBuildernewLogCallbacknewClientConnectionnewServerConnectiongetALPNProtocol getTLSVersiongetCipherSuitegetSNIHostnamegetPeerCertificatesendCloseNotifyreadPtrreadBSwritePtrwriteBS$fShowDERCertificate$fEqDERCertificate$fOrdDERCertificate$fGenericDERCertificateGHC.Exception.TypedisplayExceptionGHC.BaseMonadghc-prim GHC.TypesFalseTruebytestring-0.11.5.3Data.ByteString.Internal.Type ByteString GHC.Conc.Sync reportError GHC.MaybeNothing