Îõ³h&+Ó%žš      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™None  #$%&+/8:<ÆÉÊÎÑÙàáèìî¾rustls+A TLS protocol version supported by Rustls.rustls(Unused) userdata.Urustls Hostname.ã  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abãYXWVONMTPUHLKJIGFEDCBA@?+*)>5234/01.;-,:9876< = ^[Z]\ab('&%$#`_"! SRQNone  #$%&+/8:<ÆÉÊÎÑÙàáèìîÉ6wrustls)Messages sent from the background thread.xrustlsÚReply with a buffer, either containing the read data, or awaiting a write to this buffer.yrustls"Notify that the FFI call finished.zrustls'Messages sent to the background thread.{rustlsàRequest to start a read or a write FFI call from the background thread. It should respond with x.|rustlsËNotify 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 An in-memory ‘.rustlsRead a š with the given max length.rustlsWrite a š.‘rustls#Underlying data sources for Rustls.’rustls1Read data from the backend into the given buffer.“rustls0Write data from the given buffer to the backend.”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.¥rustlsÑA logging callback. If it throws an exception, a note will be printed to stderr.Ã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&How to verify TLS client certificates.¯rustls9Root certificates used to verify TLS client certificates.°rustlsÿRoot 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.´rustlsÑA logging callback. If it throws an exception, a note will be printed to stderr.Ã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 }:}µrustlsÍA 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.ÌrustlsÓGet 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.çsvutwyxz{|}~€‡†…‚„ƒˆ‰ŠŒ‹Ž‘“’”•–—˜™š›œ¡ Ÿž¢£¤¥¦§­¬«ª©¨®°¯±²³´µ¶¸·¹»º¼¾½¿ÀÆÅÄÃÂÁÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙçÉÊËÇÈÌÍ¿ÀÆÅÄÃÂÁ¼¾½¹»ºµ¶¸·±²³´®°¯¦§­¬«ª©¨¢£¤¥œ¡ Ÿž™š›—˜Î”•–ÏÐÑ‘“’ŽŠŒ‹ˆ‰€‡†…‚„ƒÒ}~z{|wyxÓsvutÔÕÖרÙNone  #$%&+/8:<ÆÉÊÎÑÙàáèìî$6ürustlsA DER-encoded certificate.ÿrustls1Combined version string of Rustls and rustls-ffi.version "rustls-ffi/0.9.1/rustls/0.20.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.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.‹rustls™Ensure 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.“rustlsÉMaximum result length. Note that a buffer of this size will be allocated.Ú`_ˆŠ‹ŒŽ‘’“”—™œžŸ ¡¢¥¦§¨©ª«¬­®¯°±´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÉÊËÌÍÐüýþÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•Ü¿ÀÁÂÃÄÅÆ„¼½¾¹º»±´…‰¦§¨©ª«¬­‡®¯°¢¥†ŠˆŠ‹Œ“•‹—ŒŽ‘™ˆœžŸ ¡’”ÿ‘’“ŽÉÊ˵¶·¸üýþ`_`_€ÇÌ̓‚”Р       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~€‚ƒ„…†‡ˆˆ‰Š‹ŒŽŽ‘’“”•–—˜™š›œžŸ   ¡¢£¤¥¦§¨©ª«¬­®¯¯°°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎgÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàááâãäå&$æçèéêëìíîïðñòóôõö÷øùúûüýþÿ€þ‚ƒ„…ƒ„†þ‡ˆ‰rustls-0.0.0.0-inplaceRustls.Internal.FFIRustls.InternalRustls handshake TLSVersion unTLSVersionSupportedCipherSuite Certificate CertifiedKeyReadWriteCallback LogParamsrustlsLogParamsLevelrustlsLogParamsMessageLogLevel LogCallback ConnectionClientCertVerifierOptionalClientCertVerifierServerConfigBuilder ServerConfig RootCertStoreClientConfigBuilder ClientConfigUserdataIOResultResult SliceBytesStrdefaultVersionsLendefaultVersionsallVersionsLen allVersionshsSupportedCipherSuiteGetNamesupportedCipherSuiteGetSuitedefaultCipherSuitesLendefaultCipherSuitesallCipherSuitesLenallCipherSuitescertificateGetDERcertifiedKeyFreecertifiedKeyBuildconnectionSetBufferLimitconnectionSendCloseNotifyconnectionProcessNewPacketsconnectionWantsWriteconnectionWriteconnectionWriteTlsconnectionWantsReadconnectionReadconnectionReadTlsmkReadWriteCallbackconnectionGetPeerCertificateserverConnectionGetSNIHostname"connectionGetNegotiatedCipherSuiteconnectionGetProtocolVersionconnectionGetALPNProtocolconnectionIsHandshakingconnectionSetLogCallback mkLogCallbackconnectionFree,serverConfigBuilderSetClientVerifierOptionalclientCertVerifierOptionalFreeclientCertVerifierOptionalNew$serverConfigBuilderSetClientVerifierclientCertVerifierFreeclientCertVerifierNew#serverConfigBuilderSetCertifiedKeys'serverConfigBuilderSetIgnoreClientOrder#serverConfigBuilderSetALPNProtocolsserverConnectionNewserverConfigFreeserverConfigBuilderBuildserverConfigBuilderFreeserverConfigBuilderNewCustom"clientConfigBuilderSetCertifiedKeyclientConfigBuilderSetEnableSNI#clientConfigBuilderSetALPNProtocolsclientConfigBuilderUseRootsrootCertStoreFreerootCertStoreAddPEMrootCertStoreNew$clientConfigBuilderLoadRootsFromFileclientConnectionNewclientConfigFreeclientConfigBuilderBuildclientConfigBuilderFreeclientConfigBuilderNewCustomerrorMsgresultIsCertErrorresultInsufficientSizeresultOk hsVersionTLS13TLS12 ioResultOk ioResultErr$fShowTLSVersion$fEqTLSVersion$fOrdTLSVersion$fStorableTLSVersion$fGenericLogParams$fGStorableLogParams $fEqLogLevel$fStorableLogLevel $fEqIOResult $fShowResult $fEqResult $fOrdResult$fGenericSliceBytes$fGStorableSliceBytes $fGenericStr$fGStorableStr RunTLSMode TLSHandshakeTLSReadTLSWriteIOMsgRes UsingBufferDoneFFIIOMsgReqRequestDone ReadOrWriteReadWrite Connection'connbackendlenPtrioMsgReqioMsgResinteractThreadSideClientServerByteStringBackendbsbReadbsbWriteBackend backendRead backendWriteRustlsExceptionrustlsErrorCodeHandshakeQuery 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$fShowRustlsException$fShowLogLevel $fOrdLogLevel$fEnumLogLevel$fBoundedLogLevel$fGenericLogLevel$fShowServerConfigBuilder$fGenericServerConfigBuilder$fShowClientCertVerifier$fGenericClientCertVerifier$fShowClientConfigBuilder$fGenericClientConfigBuilder$fGenericCertifiedKey$fGenericClientRoots$fShowPEMCertificates$fGenericPEMCertificates$fShowALPNProtocol$fEqALPNProtocol$fOrdALPNProtocol$fGenericALPNProtocolDERCertificateunDERCertificateversionallTLSVersionsdefaultTLSVersionsdefaultClientConfigBuilderbuildClientConfigbuildServerConfigdefaultServerConfigBuildernewLogCallbacknewClientConnectionnewServerConnectiongetALPNProtocol getTLSVersiongetCipherSuitegetSNIHostnamegetPeerCertificatesendCloseNotifyreadPtrreadBSwritePtrwriteBS$fShowDERCertificate$fEqDERCertificate$fOrdDERCertificate$fGenericDERCertificate+bytestring-0.10.12.0-BvIZHiOJL8O7XxUygqQkmwData.ByteString.Internal ByteStringbaseGHC.Exception.TypedisplayExceptionGHC.BaseMonadghc-prim GHC.TypesFalseTrue GHC.MaybeNothing