bJ      !"#$%&'()*+,-./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:;<=>?@ABCDEFGHIJKLMNOPQ  RSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~PNOv~}|{zyxwputsrqkonmlajihgfedcb#$%&' !"\`_^]Z[XYVWTUQRSKML3JIHGFEDCBA@?>=<;:987654(210/.-,+*)    !" !"#$%&'$%&'( 210/.-,+*))*+,-./0123JIHGFEDCBA@?>=<;:987654456789:;<=>?@ABCDEFGHIJKMLLMNOOPQRSSTUUVWWXYYZ[[\`_^]]^_`a jihgfedcbbcdefghijkonmllmnoputsrqqrstuv~}|{zyxwwxyz{|}~ unknown experimental#Vincent Hanquez <vincent@snarc.org> !"#$%& ! ! unknown experimental#Vincent Hanquez <vincent@snarc.org>.'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRST'()*+,:;<NOPQST'()*+,:;<NOPQSTunknown experimental#Vincent Hanquez <vincent@snarc.org>/UVWXYZ[\]^_`###  unknown experimental#Vincent Hanquez <vincent@snarc.org>9abcdefghijklmnopqrstuvwxyz{|}~6abcdefghijklmnopqrstuvwxyz{|}~6abcbcd efghijklmnopqefghijklmnopqrstuvwxyzstuvwxyz{|}|}~ 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 user callbacks )optional callback to verify certificates 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 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  !"#$%&'()*+,--./00123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZZ[\]]^^__``aabcdefghijklmnopqrstuvwxyz{|}~                     ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M NOPQRSTUVWXYZ [ \ ] ^ ^ _ ` a b c d e f g h i j k k l m n o p q r s s t u u v w x y z { | } ~                                              tls-0.1.2Network.TLS.MACNetwork.TLS.SRandomNetwork.TLS.StructNetwork.TLS.CipherNetwork.TLS.ServerNetwork.TLS.ClientNetwork.TLS.CryptoNetwork.TLS.CompressionNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.StateNetwork.TLS.SendingNetwork.TLS.ReceivinghmacMD5hmacSHA1 hmacSHA256prf_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 FinishedDataSession 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 CipherType CipherAEAD CipherBlock CipherStream ConnectionEndConnectionClientConnectionServerVersionTLS12TLS11TLS10SSL3SSL2 serverRandom clientRandom packetTypetypeOfHandshake numericalVerverOfNumCiphercipherID cipherNamecipherDigestSize cipherKeySize cipherIVSizecipherKeyBlockSizecipherPaddingSizecipherKeyExchange cipherHMACcipherF cipherMinVerCipherKeyExchangeTypeCipherKeyExchangeECDHE_ECDSACipherKeyExchangeECDH_RSACipherKeyExchangeECDH_ECDSACipherKeyExchangeDH_RSACipherKeyExchangeDH_DSSCipherKeyExchangeDHE_DSSCipherKeyExchangeECDHE_RSACipherKeyExchangeDHE_RSACipherKeyExchangeRSACipherTypeFunctions CipherStreamF CipherBlockF CipherNoneFcipherExchangeNeedMoreDatacipher_null_nullcipher_RC4_128_MD5cipher_RC4_128_SHA1cipher_AES128_SHA1cipher_AES256_SHA1cipher_AES128_SHA256cipher_AES256_SHA256TLSStateServerTLSServerParamsspAllowedVersions spSessions spCiphers spCertificatespWantClientCert spCallbacksTLSServerCallbackscbCertificates runTLSServer recvPacket sendPacketlistensendDatarecvDataclose TLSClientrunTLSCTLSStateClientTLSClientParamscpConnectVersioncpAllowedVersions cpSession cpCiphers cpCertificate cpCallbacksTLSClientCallbacks runTLSClientconnectHashType HashTypeMD5 HashTypeSHA1HashCtxMD5SHA1initMD5 updateMD5 finalizeMD5hashMD5initSHA1 updateSHA1 finalizeSHA1hashSHA1initHash updateHash finalizeHash rsaEncrypt rsaDecrypt RSA-1.0.6Codec.Crypto.RSApublic_epublic_n public_size PublicKey private_d private_n private_size PrivateKey Compression compressionIDcompressionFct lazyOfStricthmachmacIter 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 putRandom32putClientRandom32putServerRandom32getClientKeyData46putClientKeyData46 getSession putSessiongetCertsputCert getExtensions putExtension putExtensionsdecodeChangeCipherSpecencodeChangeCipherSpecgenerateMasterSecretgenerateKeyBlockgenerateFinishedgenerateClientFinishedgenerateServerFinishedIVKeyrepackaes128_cbc_encryptaes128_cbc_decryptaes256_cbc_encryptaes256_cbc_decrypttoIVtoCtx initF_rc4 encryptF_rc4 decryptF_rc4 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 decryptDataprocessCertificates TLSServerscParams scTLSState TLSServerCertrunTLSServerSThandleClientHelloexpectingPacketexpectingHandshakehandshakeSendServerDatahandshakeSendFinish handshakescCertRequestedrunTLSClientSTrecvServerHelloconnectSendClientHelloconnectSendClientCertificateconnectSendClientKeyXchgconnectSendFinish