m      !"#$%&'()*+,-./0123456789: #$%&'()*+,-/0 #$%&'()*+,-/0;<=>?@AB<=>@AB<=>@ABCDEFCDEFCDEFunknown experimental#Vincent Hanquez <vincent@snarc.org>GHIJKLMNOPQRSTUVWXYZ[\]^_`abprime modulus c generator dpublic value (g^X mod p) efghijklmnopqrstuvwxyz{|}~GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIHIJ TSRQPONMLKKLMNOPQRSTU[ZYXWVVWXYZ[\]^_]^_`abcdabcde onmlkjihgffghijklmnop~}|{zyxwvutsrqqrstuvwxyz{|}~ unknown experimental#Vincent Hanquez <vincent@snarc.org>unknown experimental#Vincent Hanquez <vincent@snarc.org>unknown experimental#Vincent Hanquez <vincent@snarc.org>1      !"#$%&'()*+,#$'(+,#$'(+, -./0-./0-./0 unknown experimental#Vincent Hanquez <vincent@snarc.org>0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`#123456789:;<=>?@ABCDEFGHIJKNZ[\]^_`#1 23456789:;<=23456789:;<=> GFEDCBA@??@ABCDEFGHKJIIJKNZ[\]^_` unknown experimental#Vincent Hanquez <vincent@snarc.org>8abcdefghijklmnopqrstuvwxyz{|}~5abcdefghijklmnopqrstuvwxyz{|}~5abcbcd efghijklmnopefghijklmnopqrstuvwxyrstuvwxyz{|{|}~~ unknown experimental#Vincent Hanquez <vincent@snarc.org>  unknown experimental#Vincent Hanquez <vincent@snarc.org>unknown experimental#Vincent Hanquez <vincent@snarc.org>#-client params and config for this connection %client TLS State for this connection -mark that the server requested a certificate client version we're sending by default !allowed versions from the server session for this connection  all ciphers for this connection an optional client certificate user callbacks )optional callback to verify certificates 4receive a single TLS packet or on error a TLSError send a single TLS packet 3connect through a handle as a new TLS connection.  sendData sends a bunch of data NrecvData get data out of Data packet, and automatically try to renegociate if ) - a Handshake HelloRequest is received close a TLS connection.  - note that it doesn'&t close the handle, but just signal we're going to close % - the connection to the other side / Throw by 2 when a response does not have a 2xx status code.  Thrown by + when a URL could not be parsed correctly.  also uses the & function to read the location header 5 from a server, so it can also throw this exception. 8A simple representation of the HTTP response created by .  KAll information on how to connect to a host and what should be sent in the  HTTP request. /If you simply wish to download from a URL, see . #HTTP request method, eg GET, POST.  Whether to use HTTPS (ie, SSL). .Everything from the host to the query string. ,Automatically escaped for your convenience. JThe OpenSSL library requires some initialization of variables to be used,  and therefore you must call  withOpenSSL$ before using any of its functions. , As this library uses OpenSSL, you must use  withOpenSSL as well. (As a side  note, you';ll also want to use the withSocketsDo function for network  activity.) KTo future-proof this package against switching to different SSL libraries,  we re-export  withOpenSSL0 under this name. You can call this function as G early as you like; in fact, simply wrapping the do block of your main  function is probably best. <The most low-level function for initiating an HTTP request. GThe second argument to this function gives a full specification on the K request: the host to connect to, whether to use SSL, headers, etc. Please  see   for full details. CThe first argument specifies how the response should be handled. It's a M function that takes two arguments: the first is the HTTP status code of the I response, and the second is a list of all response headers. This module  exports , which generates a  value. KNote that this allows you to have fully interleaved IO actions during your G HTTP download, making it possible to download very large responses in  constant memory. Convert a URL into a  . $This defaults some of the values in  , such as setting   to  GET and  to []. Since this function uses +, the return monad can be anything that is  an instance of  , such as  or . !Convert the HTTP response into a  value. Even though a 0 contains a lazy bytestring, this function does  not utilize lazy I/7O, and therefore the entire response body will live in / memory. If you want constant memory usage, you'll need to write your own  iteratee and use  or  directly. Download the specified  , returning the results as a .  This is a simplified version of & for the common case where you simply N want the response data as a simple datatype. If you want more power, such as > interleaved actions on the response body during download, you'll need to use  ( directly. This function is defined as:  httpLbs = http lbsIter Please see ! for more information on how the  value is  created. DDownload the specified URL, following any redirects, and return the  response body. This function will  an  for any response with a  non-2xx status code. It uses # to parse the input. This function  essentially wraps . Same as ;, but follows all 3xx redirect status codes that contain a  location header. Download the specified  , returning the results as a  ' and automatically handling redirects.  This is a simplified version of  for the common case where you M simply want the response data as a simple datatype. If you want more power, F such as interleaved actions on the response body during download, you'll  need to use ( directly. This function is defined as:  &httpLbsRedirect = httpRedirect lbsIter Please see ! for more information on how the  value is  created. !Add url-encoded paramters to the  . This sets a new ), adds a content-type request header and  changes the   to POST.        !"#$%&'()*+,-./0123456789:;<=>?=>@=>A=>B=>B=>C=>D=>E=>F=>FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghhijkklmnopqrstuvwxyz{|}~V      !"#$%&'()*+,-. / 0 1 2 3 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P : Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d d e f g h i j k l m n o p p q r s t u v w x x y z z { | } ~                                                http-enumerator-0.1.1Network.HTTP.EnumeratorNetwork.TLS.CryptoNetwork.TLS.MACNetwork.TLS.SRandomNetwork.TLS.StructNetwork.TLS.CapNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.UtilNetwork.TLS.CipherNetwork.TLS.StateNetwork.TLS.SendingNetwork.TLS.Receiving"Network.HTTP.Enumerator.HttpParserNetwork.TLS.Client HttpExceptionInvalidUrlExceptionHeadersResponse statusCoderesponseHeaders responseBodyRequestmethodsecurehostportpath queryStringrequestHeaders requestBodywithHttpEnumeratorhttpparseUrllbsIterhttpLbs simpleHttp httpRedirecthttpLbsRedirecturlEncodedBodyHashType HashTypeMD5 HashTypeSHA1HashCtxMD5SHA1initMD5 updateMD5 finalizeMD5hashMD5initSHA1 updateSHA1 finalizeSHA1hashSHA1initHash updateHash finalizeHash lazyToStrict rsaEncrypt rsaDecrypt RSA-1.0.6Codec.Crypto.RSApublic_epublic_n public_size PublicKey private_d private_n private_size PrivateKeyhmachmacMD5hmacSHA1 hmacSHA256hmacIterprf_SHA1prf_MD5 prf_MD5SHA1 SRandomGenmakeSRandomGen getRandomBytegetRandomBytes TypeValuable valOfType valToType HandshakeFinished CertVerify CertRequest ServerKeyXchg ClientKeyXchgServerHelloDone HelloRequest Certificates ServerHello ClientHelloServerKeyXchgAlgorithmData SKX_DH_RSA SKX_DH_DSSSKX_RSA SKX_DHE_RSA SKX_DHE_DSS SKX_DH_AnonServerRSAParams rsa_modulus rsa_exponentServerDHParamsdh_pdh_gdh_Ys HandshakeTypeHandshakeType_FinishedHandshakeType_ClientKeyXchgHandshakeType_CertVerifyHandshakeType_ServerHelloDoneHandshakeType_CertRequestHandshakeType_ServerKeyXchgHandshakeType_CertificateHandshakeType_ServerHelloHandshakeType_ClientHelloHandshakeType_HelloRequestAlertDescriptionNoRenegotiation UserCanceled InternalErrorInsufficientSecurityProtocolVersionExportRestriction DecryptError DecodeError AccessDenied UnknownCaIllegalParameterCertificateUnknownCertificateExpiredCertificateRevokedUnsupportedCertificateBadCertificateHandshakeFailureDecompressionFailureRecordOverflowDecryptionFailed BadRecordMacUnexpectedMessage CloseNotify AlertLevelAlertLevel_FatalAlertLevel_Warning EncryptedData Extension FinishedData CompressionIDCipherIDSession ClientKeyData ClientRandom ServerRandomHeaderPacketAppDataChangeCipherSpecAlertTLSErrorError_Unknown_TypeError_Unknown_Version#Error_Internal_Packet_ByteProcessedError_Internal_Packet_RemainingError_Packet_Size_Mismatch Error_Packet Error_DigestError_Certificate Error_Misc ProtocolTypeProtocolType_AppDataProtocolType_HandshakeProtocolType_AlertProtocolType_ChangeCipherSpecSignatureAlgorithmSignatureOtherSignatureECDSA SignatureDSS SignatureRSASignatureAnonymous HashAlgorithm HashOther HashSHA512 HashSHA384 HashSHA256 HashSHA224HashSHA1HashMD5HashNoneCertificateTypeCertificateType_UnknownCertificateType_fortezza_dms CertificateType_DSS_Ephemeral_dh CertificateType_RSA_Ephemeral_dhCertificateType_DSS_Fixed_DHCertificateType_RSA_Fixed_DHCertificateType_DSS_SignCertificateType_RSA_Sign CipherDatacipherDataContent cipherDataMACcipherDataPadding CipherType CipherAEAD CipherBlock CipherStream ConnectionEndConnectionClientConnectionServerVersionTLS12TLS11TLS10SSL3SSL2BytesconstrRandom32 serverRandom clientRandom packetTypetypeOfHandshake numericalVerverOfNumhasHelloExtensionshasExplicitBlockIVPutGetGErunGEliftGetrunGet remaining bytesReadgetWord8 getWords8 getWord16 getWords16 getWord24getBytes processBytesisEmptyputWord8 putWords8 putWord16 putWords16 putWord24putBytes lazyToBytesrunPut encodeWord64 decodeHeader encodeHeader decodeAlert encodeAlertdecodeHandshakeHeaderdecodeHandshakedecodeHelloRequestdecodeClientHellodecodeServerHellodecodeServerHelloDonedecodeCertificatesdecodeFinishedgetSignatureHashAlgorithmdecodeCertRequestdecodeCertVerifydecodeClientKeyXchgdecodeServerKeyXchg_DHdecodeServerKeyXchg_RSAdecodeServerKeyXchgencodeHandshakeencodeHandshakeHeaderencodeHandshakeContent getVersion putVersion getRandom32getServerRandom32getClientRandom32 putRandom32putClientRandom32putServerRandom32getClientKeyData46putClientKeyData46 getSession putSessiongetCertsputCert getExtensions putExtension putExtensionsdecodeChangeCipherSpecencodeChangeCipherSpecgenerateMasterSecret_TLSgenerateMasterSecret_SSLgenerateMasterSecretgenerateKeyBlockgenerateFinished_TLSgenerateFinished_SSLgenerateClientFinishedgenerateServerFinishedsubtakelast partition3 partition6CiphercipherID cipherNamecipherDigestSize cipherKeySize cipherIVSizecipherKeyBlockSizecipherPaddingSizecipherKeyExchange cipherHMACcipherF cipherMinVerCipherKeyExchangeTypeCipherKeyExchangeECDHE_ECDSACipherKeyExchangeECDH_RSACipherKeyExchangeECDH_ECDSACipherKeyExchangeDH_RSACipherKeyExchangeDH_DSSCipherKeyExchangeDHE_DSSCipherKeyExchangeECDHE_RSACipherKeyExchangeDHE_RSACipherKeyExchangeRSACipherTypeFunctions CipherStreamF CipherBlockF CipherNoneFIVKeycipherExchangeNeedMoreDatarepackaes128_cbc_encryptaes128_cbc_decryptaes256_cbc_encryptaes256_cbc_decrypttoIVtoCtx initF_rc4 encryptF_rc4 decryptF_rc4cipher_null_nullcipher_RC4_128_MD5cipher_RC4_128_SHA1cipher_AES128_SHA1cipher_AES256_SHA1cipher_AES128_SHA256cipher_AES256_SHA256 MonadTLSState getTLSState putTLSStateTLSStatestClientContext stVersion stHandshake stTxEncrypted stRxEncryptedstTxCryptStatestRxCryptState stTxMacState stRxMacStatestCipher stRandomGenTLSHandshakeStatehstClientVersionhstClientRandomhstServerRandomhstMasterSecrethstRSAPublicKeyhstRSAPrivateKeyhstHandshakeDigest TLSMacState msSequence TLSCryptStatecstKeycstIV cstMacSecretassert newTLSStatemodifyTLSState makeDigestfinishHandshakeTypeMaterialfinishHandshakeMaterialswitchTxEncryptionswitchRxEncryptionsetServerRandomsetMasterSecret setPublicKey setPrivateKey setKeyBlock setCipher setVersionisClientContextnewEmptyHandshakestartHandshakeClienthasValidHandshakeupdateHandshakeupdateHandshakeDigestgetHandshakeDigest endHandshakemakePacketDataprocessPacketDataencryptPacketDatapostprocessPacketData encodePacket writePacket encryptRSAencryptContent encryptDataencodePacketContentwritePacketContentTLSReadTLSRrunTLSR runTLSRead returnEither readPacket decryptRSAsetMasterSecretRandomprocessClientKeyXchgprocessClientFinishedprocessHsPacketdecryptContent getCipherData decryptDataprocessCertificatesStatus parseHeadernotNewlineColonisSpace notNewlinenewline parseHeaders iterHeaders parseStatusparseChunkHeaderiterChunkHeader iterNewlineattribshexshex IStateWrapperrunIStateWrapperIStateTLSStateClientscParams scTLSStatescCertRequestedTLSClientParamscpConnectVersioncpAllowedVersions cpSession cpCiphers cpCertificate cpCallbacksTLSClientCallbackscbCertificates newIState recvPacket sendPacketrecvServerHelloconnectSendClientHelloconnectSendClientCertificateconnectSendClientKeyXchgconnectSendFinishconnect sendDataChunksendDatarecvDatacloseclientEnumSimple clientEnumWithConn getSocketwithSocketConn writeToIter readToEnum withSslConn iterChunks'takeLBSrenderQSencodeUrlCharPI encodeUrlChar failure-0.1.0Control.FailureFailureghc-prim GHC.TypesIObase Data.MaybeMaybe parseUrl1 parseUrl2parseQueryStringqsDecodeuncons breakDiscardfailurereadMay