úÎ#ÿ!     ?Hack into the internals of OpenSSL to add missing functionality(c) Eric Mertens, 2016ISCemertens@gmail.comNonedAdd hostname checking to the certificate verification step. Partial wildcards matching is disabled.param name namelen 1 success, 0 failure param flags !ctx  hostname  !2Network connections generalized over TLS and SOCKS(c) Eric Mertens, 2016ISCemertens@gmail.comNone­A connection to a network service along with its read buffer used for line-oriented protocols. The connection could be a plain network connection, SOCKS connected, or TLS.3Type for errors that can be thrown by this package.Failure during  getAddrInfo resolving remote hostFailure during  to remote hostFailure during Incomplete line during TLS connection parameters SOCKS5 connection parametersSOCKS server hostSOCKS server portParameters for .Destination hostDestination TCP portOptional SOCKS5 parametersOptional TLS parameters"POpen a socket using the given parameters either directly or via a SOCKS server.#Open a $ using the parameters from an %JOpen network connection to TCP service specified by the given parameters.Throws &, ', (, Close network connection.2Receive a line from the network connection. Both "rn" and "n" are recognized.Throws: ConnectionAbruptlyTerminated, , &)Remove the trailing '\r' if one is found.NSend bytes on the network connection. Ensures that the whole message is sent.Throws: &,  ProtocolError*¼Initiate a TLS session on the given socket destined for the given hostname. When successful an active TLS connection is returned with certificate verification successful when requested./+,-. "/01#2345)*server hostname parameters connected socket connected TLS 6789 insecure    +,-. "/01#2345)*6789:      !"#$%#&'()*+,-./01234%56789:;<=>?@$hookup-0.1.0.0-k82p4Vb3JW9kPIywcVvidHookupHookup.OpenSSL ConnectionConnectionFailureHostnameResolutionFailure LineTooLong LineTruncated TlsParamstpClientCertificatetpClientPrivateKeytpServerCertificate tpCipherSuite tpInsecure SocksParamsspHostspPortConnectionParamscpHostcpPortcpSockscpTlsconnectcloserecvLinesend$fExceptionConnectionFailure$fShowConnectionFailureinstallVerificationX509_VERIFY_PARAM_x509VerifyParamSet1Hostx509VerifyParamSetHostflags sslGet0Param openSocketsocket'&network-2.6.3.1-G4Up1CPKbp7DeFsnywOnGGNetwork.Socket.TypesSocketNetwork.SocketAddrInfobaseGHC.IO.ExceptionIOError"socks-0.5.5-7NKerosohUG4pHD8gUq0E5Network.Socks5.Types SocksError)HsOpenSSL-0.11.2.3-ArPYLekTbEuHAxUZ2LQ7hvOpenSSL.Session ProtocolErrorcleanEndstartTls NetworkHandleSSL openSocks openSocket'attemptConnectionsopenNetworkHandlecloseNetworkHandle networkSend networkRecvsetupCaCertificatessetupCertificatesetupPrivateKeyverificationMode