úÎ[HDL­      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬ ­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉ­®¯°³´µ¶·¸¹º»¼½¾¿­¯®®¯°³´µ¶·¸¹º»¼½¾¿unknown experimental#Vincent Hanquez <vincent@snarc.org>ÊËÌÍÊËÌÍÊËÌÍËÌÍ ÎÏÐÑÒÓÔÕÖÐÑÒÔÕÖÐÑÒÔÕÖרÙÚרÙÚרÙÚunknown experimental#Vincent Hanquez <vincent@snarc.org>’ prime modulus  generator public value (g^X mod p)  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGÛÜHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆÝ‰Š‹ŒŽ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽƒˆ‡†…„€‚|~}FDEs{zyxwvutjrqponmlkdihgfe_cba`U^]\[ZYXWVPTSRQNOLMJK‰ŠGHIACB)@?>=<;:9876543210/.-,+*('&%$#"!  Ž‹Œ   ('&%$#"!  !"#$%&'()@?>=<;:9876543210/.-,+**+,-./0123456789:;<=>?@ACBBCDEEFGHIIJKKLMMNOOPTSRQQRSTU ^]\[ZYXWVVWXYZ[\]^_cba``abcdihgfeefghijrqponmlkklmnopqrs{zyxwvuttuvwxyz{|~}}~€‚‚ƒˆ‡†…„„…†‡ˆ‰Š‹ŒŽunknown experimental#Vincent Hanquez <vincent@snarc.org>ÞßàáâãäåæçèéêëìíîïðñòóôõöÞâãäåæçèéêëìíîïðñÞâãäåæçèéêëìíîïðñ unknown experimental#Vincent Hanquez <vincent@snarc.org>.÷øùúûüýþÿ      !"#$÷øùúûü    !#$÷øùúûü    !#$ unknown experimental#Vincent Hanquez <vincent@snarc.org>/%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS#%&'()*+,-./0123456789:;<=>?BMNOPQRS#% &'()*+,-./01&'()*+,-./012 ;:98765433456789:;<?>==>?BMNOPQRS unknown experimental#Vincent Hanquez <vincent@snarc.org>9TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹Œ6TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…‡Š‹Œ6TUVUVW XYZ[\]^_`abcdXYZ[\]^_`abcdefghijklmfghijklmnopopqrsturstuvwxyz{|}~€‚ƒ„…‡Š‹Œ unknown experimental#Vincent Hanquez <vincent@snarc.org> Ž‘’“”•–—˜’’ unknown experimental#Vincent Hanquez <vincent@snarc.org>™š›œžŸ ¡¢£¤¥¦§¨žžunknown experimental#Vincent Hanquez <vincent@snarc.org>©ª«¬­-server params and config for this connection ®%server TLS State for this connection ‘’!allowed versions that we can use “%placeholder for futur known sessions ”)all ciphers that the server side support •'the certificate we serve to the client –0configure if we do a cert request to the client ¯°—˜4receive a single TLS packet or on error a TLSError ™send a single TLS packet ±²³´µ¶š-listen on a handle to a new TLS connection. › sendData sends a bunch of data œGrecvData get data out of Data packet, and automatically renegociate if ( - a Handshake ClientHello 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 ‘’“”•–—˜™š›œ‘’“”•–—˜™š›œ‘’“”•–‘’“”•–—˜™š›œ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 ¾¦§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 žŸ ¡¢£¤¥¦§¨©ª«¬Ÿ ¡¢£¤¥ž¦§¨©ª«¬žŸ ¡¢£¤¥ ¡¢£¤¥¦§¨©ª«¬Ä !"##$%&&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPPQRSSTTUUVVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•––—˜™š›œžŸ ¡¢£¤¤¥¦§¨©ªž« ¡¢¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁ¿À¿ÀÿÀÄ¿ÀÄ¿ÀÅ¿ÀÆ¿ÀÇ¿ÀÈ¿ÀÈÉÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòðñóðñôðñõðñö ÷ ø ù ú û ü ý þ ÿ                                  ! " # $ % % & ' ( ) * + , - . / 0 1 2 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 V W X Y Z [ \ ] ^ _ ` a b c c d e f g h i j k k l m m n o p q r s t u v w x y z { | } ~  €  ‚ ƒ „ … † ‡ ˆ ‰ Š ‹ Œ  Ž   ‘ ’ “ ” • – — ˜ ™ š › œ  ž Ÿ    ¡ ¢££¤•¥¦§¨©ª«¬­®¯¯¤£¥¦°±²³´µ¶· tls-0.1.1Network.TLS.StructNetwork.TLS.ServerNetwork.TLS.ClientNetwork.TLS.CryptoNetwork.TLS.CompressionNetwork.TLS.MACNetwork.TLS.SRandomNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.CipherNetwork.TLS.StateNetwork.TLS.SendingNetwork.TLS.Receiving 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 FinishedDataSession 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 CipherType CipherAEAD CipherBlock CipherStream ConnectionEndConnectionClientConnectionServerVersionTLS12TLS11TLS10SSL3SSL2 serverRandom clientRandom packetTypetypeOfHandshake numericalVerverOfNumTLSStateServerTLSServerParamsspAllowedVersions spSessions spCiphers spCertificatespWantClientCert runTLSServer recvPacket sendPacketlistensendDatarecvDatacloseTLSStateClientTLSClientParamscpConnectVersioncpAllowedVersions cpSession cpCiphers cpCertificate runTLSClientconnectHashType HashTypeMD5 HashTypeSHA1HashCtxMD5SHA1initMD5 updateMD5 finalizeMD5hashMD5initSHA1 updateSHA1 finalizeSHA1hashSHA1initHash updateHash finalizeHash rsaEncrypt rsaDecrypt RSA-1.0.4Codec.Crypto.RSApublic_epublic_n public_size PublicKey private_d private_n private_size PrivateKey Compression compressionIDcompressionFct lazyOfStricthmachmacMD5hmacSHA1 hmacSHA256hmacIterprf_SHA1prf_MD5 prf_MD5SHA1 SRandomGenmakeSRandomGen getRandomBytegetRandomBytes CompressionIDCipherIDconstrRandom32GetGErunGEliftGetrunGet remaining bytesReadgetWord8 getWords8 getWord16 getWords16 getWord24getBytes processBytesisEmpty putWords8 putWord16 putWords16 putWord24 encodeWord64binary-0.5.0.2Data.Binary.PutputLazyByteString putByteStringputWord8runPutPut decodeHeader encodeHeader decodeAlert encodeAlertdecodeHandshakeHeaderdecodeHandshakedecodeHelloRequestdecodeClientHellodecodeServerHellodecodeServerHelloDonedecodeCertificatesdecodeFinishedgetSignatureHashAlgorithmdecodeCertRequestdecodeCertVerifydecodeClientKeyXchgdecodeServerKeyXchg_DHdecodeServerKeyXchg_RSAdecodeServerKeyXchgencodeHandshakeencodeHandshakeHeaderencodeHandshakeContent getVersion putVersion getRandom32getServerRandom32getClientRandom32 putRandom32putClientRandom32putServerRandom32 getRandom46 putRandom46 getSession putSessiongetCertsputCert getExtensions putExtension putExtensionsdecodeChangeCipherSpecencodeChangeCipherSpecgenerateMasterSecretgenerateKeyBlockgenerateFinishedgenerateClientFinishedgenerateServerFinishedCiphercipherID 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 putTLSStateTLSStatestClientContextstClientVersion stVersion stHandshake stTxEncrypted stRxEncryptedstTxCryptStatestRxCryptState stTxMacState stRxMacStatestCipher stRandomGenTLSHandshakeStatehstClientVersionhstClientRandomhstServerRandomhstMasterSecrethstRSAPublicKeyhstRSAPrivateKeyhstHandshakeDigest TLSMacState msSequence TLSCryptStatecstKeycstIV cstMacSecretassert newTLSStatemodifyTLSState makeDigestfinishHandshakeTypeMaterialfinishHandshakeMaterialswitchTxEncryptionswitchRxEncryptionsetServerRandomsetMasterSecret setPublicKey setPrivateKey setKeyBlock setCipher setVersionisClientContextnewEmptyHandshakestartHandshakeClienthasValidHandshakeupdateHandshakeupdateHandshakeDigestgetHandshakeDigest endHandshakemakePacketDataprocessPacketDataencryptPacketDatapostprocessPacketData encodePacket writePacket encryptRSAencryptContenttakelast encryptDataencodePacketContentwritePacketContentTLSReadTLSRrunTLSR runTLSRead returnEither readPacket decryptRSAsetMasterSecretRandomprocessClientKeyXchgprocessClientFinishedprocessHsPacketdecryptContentReallydecryptContent decryptDataprocessCertificate TLSServerrunTLSCscParams scTLSState TLSServerCertrunTLSServerSThandleClientHelloexpectingPacketexpectingHandshakehandshakeSendServerDatahandshakeSendFinish handshake TLSClientscCertRequestedrunTLSClientSTrecvServerHelloconnectSendClientHelloconnectSendClientCertificateconnectSendClientKeyXchgconnectSendFinish