!"l$      !"#None_Hnetwork-simple-tlsObtain new default   for a particular $..No client credentials sumbitted to the server.%Use system-wide CA certificate store./Use an in-memory TLS session manager from the  7https://hackage.haskell.org/package/tls-session-managertls-session-manager package.Everything else as proposed by .network-simple-tlsMake defaults  .(Certificate chain validation is done by % from the Data.X509.Validation module.:The Server Name Indication (SNI) TLS extension is enabled.4The supported cipher suites are those enumerated by &%, in decreasing order of preference. Secure renegotiation is enabled. Only the TLS 1.1, TLS 1.2 and TLS 1.3$ protocols are supported by default.OIf you are unsatisfied with any of these settings, please please refer to the  Network.TLS# module for more documentation on  .network-simple-tls Make default  .4The supported cipher suites are those enumerated by 'X, in decreasing order of preference. The cipher suite preferred by the server is used.pSecure renegotiation initiated by the server is enabled, but renegotiation initiated by the client is disabled. Only the TLS 1.1, TLS 1.2 and TLS 1.3$ protocols are supported by default.OIf you are unsatisfied with any of these settings, please please refer to the  Network.TLS# module for more documentation on  .network-simple-tlsObtain new default   for a particular server .'Don't require credentials from clients./Use an in-memory TLS session manager from the  7https://hackage.haskell.org/package/tls-session-managertls-session-manager package.Everything else as proposed by .network-simple-tls~Start a TLS-secured TCP server that accepts incoming connections and handles each of them concurrently, in different threads.JAny acquired network resources are properly closed and discarded when done or in case of exceptions. This function binds a listening socket, accepts an incoming connection, performs a TLS handshake and then safely closes the connection when done or in case of exceptions. You don't need to perform any of those steps manually.network-simple-tlsAAccepts a single incomming TLS-secured TCP connection and use it.A TLS handshake is performed immediately after establishing the TCP connection and the TLS and TCP connections are properly closed when done or in case of exceptions. If you need to manage the lifetime of the connection resources yourself, then use  instead.network-simple-tlsLike a, except it uses a different thread to performs the TLS handshake and run the given computation.network-simple-tls:Connect to a TLS-secured TCP server and use the connectionA TLS handshake is performed immediately after establishing the TCP connection and the TLS and TCP connections are properly closed when done or in case of exceptions. If you need to manage the lifetime of the connection resources yourself, then use  instead.network-simple-tlsLike =, but connects to the destination server over a SOCKS5 proxy.network-simple-tlsCEstalbishes a TCP connection to a remote server and returns a TLS  ) configured on top of it using the given  +. The remote end address is also returned.Prefer to use # if you will be using the obtained   within a limited scope.5You need to perform a TLS handshake on the resulting  v before using it for communication purposes, and gracefully close the TLS and TCP connections afterwards using. The ,  and  can help you with that.network-simple-tlsLike >, but connects to the destination server over a SOCKS5 proxy.network-simple-tlsMake a client-side TLS  2 for the given settings, on top of the given TCP  connected to the remote end.network-simple-tls5Accepts an incoming TCP connection and returns a TLS  * configured on top of it using the given  +. The remote end address is also returned.Prefer to use # if you will be using the obtained   within a limited scope.5You need to perform a TLS handshake on the resulting  v before using it for communication purposes, and gracefully close the TLS and TCP connections afterwards using. The ,  and  can help you with that.network-simple-tlsMake a server-side TLS  2 for the given settings, on top of the given TCP  connected to the remote end.network-simple-tls%Perform a TLS handshake on the given  T, then perform the given action and at last gracefully close the TLS session using (.UThis function does not close the underlying TCP connection when done. Prefer to use  or 6 if you need that behavior. Otherwise, you must call ) yourself at some point.network-simple-tlsLike ;, except it also fully closes the TCP connection when done.network-simple-tls Similar to >, except it performs the all the IO actions in a new thread.Use this instead of forking 2 yourself, as that won't give the right behavior. network-simple-tls(Receives decrypted bytes from the given   . Returns * on EOF.Up to 16384* decrypted bytes will be received at once.!network-simple-tlsEncrypts the given strict + and sends it through the  ."network-simple-tlsEncrypts the given lazy , and sends it through the  .#network-simple-tlsTry to create a new credential object from a public certificate and the associated private key that are stored on the filesystem in PEM format.-network-simple-tlsLike ( from the  Network.TLS module, except it ignores .K errors which might happen if the remote peer closes the connection first. network-simple-tls $ ~ (, +) Identification of the connection consisting of the fully qualified host name for the server (e.g. www.example.com) and an optional suffix.It is important that the hostname part is properly filled for security reasons, as it allow to properly associate the remote side with the given certificate during a handshake.The suffix is used to identity a certificate per service on a specific host. For example, a same host might have different certificates on differents ports (443 and 995). For TCP connections, it's recommended to use: :port, or :service for the blob (e.g., @":443",  ":https"@).network-simple-tls $ ~ (, +) Identification of the connection consisting of the fully qualified host name for the server (e.g. www.example.com) and an optional suffix.It is important that the hostname part is properly filled for security reasons, as it allow to properly associate the remote side with the given certificate during a handshake.The suffix is used to identity a certificate per service on a specific host. For example, a same host might have different certificates on differents ports (443 and 995). For TCP connections, it's recommended to use: :port, or :service for the blob (e.g., @":443",  ":https"@).network-simple-tls[Credentials to provide to the server if requested. Only credentials matching the server's / will be submitted.Can be loaded with # or similar functions.network-simple-tls*CAs used to verify the server certificate.Use 0+ to obtain the operating system's defaults.network-simple-tlsServer credential.Can be loaded with # or similar functions.network-simple-tls*CAs used to verify the client certificate.QIf specified, then a valid client certificate will be expected during handshake.Use 0+ to obtain the operating system's defaults.network-simple-tlsServer credential.Can be loaded with # or similar functions.network-simple-tls TLS settings.network-simple-tlsPreferred host to bind.network-simple-tlsService port to bind.network-simple-tlsComputation to run in a different thread once an incomming connection is accepted and a TLS-secured communication is established. Takes the TLS connection context and remote end address.network-simple-tls TLS settings.network-simple-tlsListening and bound socket.network-simple-tlsComputation to run in a different thread once an incomming connection is accepted and a TLS-secured communication is established. Takes the TLS connection context and remote end address.network-simple-tls TLS settings.network-simple-tlsListening and bound socket.network-simple-tlsComputation to run in a different thread once an incomming connection is accepted and a TLS-secured communication is established. Takes the TLS connection context and remote end address.network-simple-tls TLS settings.network-simple-tlsServer hostname.network-simple-tls/Destination server service port name or number.network-simple-tlsComputation to run after establishing TLS-secured TCP connection to the remote server. Takes the TLS connection context and remote end address.network-simple-tls+SOCKS5 proxy server hostname or IP address.network-simple-tls0SOCKS5 proxy server service port name or number.network-simple-tls TLS settings.network-simple-tlsDDestination server hostname or IP address. We connect to this host through6 the SOCKS5 proxy specified in the previous arguments.)Note that if hostname resolution on this S is necessary, it will happen on the proxy side for security reasons, not locally.network-simple-tls/Destination server service port name or number.network-simple-tlsComputation to run after establishing TLS-secured TCP connection to the remote server. Takes the TLS connection that can be used to interact with the destination server, as well as the address of the SOCKS5 server and the address of the destination server, in that order.network-simple-tls TLS settings.network-simple-tlsServer hostname.network-simple-tls#Server service name or port number.network-simple-tls+SOCKS5 proxy server hostname or IP address.network-simple-tls0SOCKS5 proxy server service port name or number.network-simple-tls TLS settings.network-simple-tlsDDestination server hostname or IP address. We connect to this host through6 the SOCKS5 proxy specified in the previous arguments.)Note that if hostname resolution on this S is necessary, it will happen on the proxy side for security reasons, not locally.network-simple-tls/Destination server service port name or number.network-simple-tls Returns the   that can be used to interact with the destination server, as well as the address of the SOCKS5 server and the address of the destination server, in that order.network-simple-tls TLS settings.network-simple-tlsListening and bound socket.#network-simple-tls"Public certificate (X.509 format).network-simple-tls,Private key associated with the certificate.$   !"#$ !"  #1       !"#$%&'()*+,-./012314567689:;<=>?@A?BAC<DEFGHIJKLnetwork-simple-tls-0.4-inplaceNetwork.Simple.TCP.TLS&network-2.8.0.1-Hmt657UE3v349uYmvUXEvWNetwork.SocketHostName ServiceNameNetwork.Socket.Internal withSocketsDoNetwork.Socket.TypesSocketSockAddr+network-simple-0.4.5-6FmWWKeMm8uElBlpGzhDp1Network.Simple.TCPlistenNetwork.Simple.InternalHostHostIPv6HostIPv4HostAnyHostPreference tls-1.5.1-HXAGhw2lGnY4XOkSaYCSByNetwork.TLS.Context.InternalContextNetwork.TLS.Parameters ClientParams ServerParamsNetwork.TLS.Credentials CredentialnewDefaultClientParamsmakeClientParamsmakeServerParamsnewDefaultServerParamsserveaccept acceptForkconnectconnectOverSOCKS5 connectTlsconnectTlsOverSOCKS5makeClientContext acceptTlsmakeServerContextuseTlsuseTlsThenCloseuseTlsThenCloseForkrecvsendsendLazycredentialLoadX509-x509-validation-1.6.11-LEPDDIKlYCQEDd9hZo4Q8BData.X509.Validation.Types ServiceIDData.X509.ValidationvalidateDefaultNetwork.TLS.Extra.Cipherciphersuite_defaultciphersuite_strongNetwork.TLS.Corebye contextClosebase GHC.MaybeNothingbytestring-0.10.8.2Data.ByteString.Internal ByteStringData.ByteString.Lazy.Internal silentByeForeign.C.ErrorePIPE!x509-1.7.5-3Iu2pFoXNseHWN1NpZEFUMData.X509.DistinguishedNameDistinguishedName(x509-system-1.6.6-FZcKoUsa75DEr0csO4XAk0System.X509.UnixgetSystemCertificateStore