_Hj1      !"#$%&'()*+,-./0 1234567891234578912345789unknown experimental#Vincent Hanquez <vincent@snarc.org>Compression algorithm :;<default null compression :;<:;<:;<=>?@ABCDEFGHIJKLMNOPQRSTUV=>?BEFGHIJKLMNOPQRSUV=?>>?BEFFGHHIJKLMNOPQRSUVunknown experimental#Vincent Hanquez <vincent@snarc.org>WXYZ[\]^_`abcdefghijklmnopqrprime modulus s generator tpublic value (g^X mod p) uvwxyz{|}~6TLSError that might be returned through the TLS stack  Versions known to TLS ESSL2 is just defined, but this version is and will not be supported. TLS12 is not yet supported WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ WXYXYZ dcba`_^]\[[\]^_`abcdekjihgffghijklmnomnopqrstqrstu ~}|{zyxwvvwxyz{|}~   unknown experimental#Vincent Hanquez <vincent@snarc.org>Cipher algorithm  unknown experimental#Vincent Hanquez <vincent@snarc.org>unknown experimental#Vincent Hanquez <vincent@snarc.org>           unknown experimental#Vincent Hanquez <vincent@snarc.org>8 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJK ./0@ADGJK ./0@ADGJK LMNOPLMNOPLMNOP unknown experimental#Vincent Hanquez <vincent@snarc.org>TQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~KQTUVWXYZ[\]^_`adefghijklmnopqrstuvwxyz{|}~KQT UVWXYZ[\]^_`aUVWXYZ[\]^_`adefghijklefghijklmnonopqrstqrstuyxwvvwxyz ~}|{{|}~ unknown experimental#Vincent Hanquez <vincent@snarc.org>  unknown experimental#Vincent Hanquez <vincent@snarc.org> unknown experimental#Vincent Hanquez <vincent@snarc.org>(IA TLS Context is a handle augmented by tls specific state and parameters /return the handle associated with this context %version to use on client connection. "allowed versions that we can use. +all ciphers supported ordered by priority. /all compression supported ordered by priority. #request a certificate from client.  use by server only. Athe cert chain for this context with the associated keys if any. !callback for logging "(callback to verify received cert chain. #$%&'()*:receive one enveloppe from the context that contains 1 or B many packets (many only in case of handshake). if will returns a 3 TLSError if the packet is unexpected or malformed Send one packet to the context +GCreate a new Client context with a configuration, a RNG, and a Handle. 6 It reconfigures the handle buffermode to noBuffering ,GCreate a new Server context with a configuration, a RNG, and a Handle. 6 It reconfigures the handle buffermode to noBuffering -=notify the context that this side wants to close connection. J this is important that it is called before closing the handle, otherwise 1 the session might not be resumable (for version < TLS1.2).  this doesn't actually close the handle .#Handshake for a new TLS connection Q This is to be called at the beginning of a connection, and during renegociation / sendData sends a bunch of data. < It will automatically chunk data to acceptable packet size 0GrecvData get data out of Data packet, and automatically renegociate if % a Handshake ClientHello is received  !"#$%&'()*+,-./0  !" !"#$%&'($%&'()*+,-./0unknown experimental#Vincent Hanquez <vincent@snarc.org>WXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~  ./0@ADGJKunknown experimental#Vincent Hanquez <vincent@snarc.org>1  !"#$%&'()*+,-./02 !"#$%&'(*)+,-./0  !"#$%&'())*+,-./01223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{||}~g&                      ! " # $ % & ' ( ) * + , - . / 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 X Y Z [ \ ] ^ _ ` a b c d e e f f g h i j k l m n n o p p q r s t u v w x y z { | } ~                                                             ' tls-0.6.4 Network.TLSNetwork.TLS.MACNetwork.TLS.CompressionNetwork.TLS.CryptoNetwork.TLS.StructNetwork.TLS.CipherNetwork.TLS.CapNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.UtilNetwork.TLS.StateNetwork.TLS.ReceivingNetwork.TLS.SendingNetwork.TLS.CoreNetwork.TLS.Internal CompressionnullCompression PrivateKeyPrivRSATLSErrorError_Unknown_TypeError_Unknown_Version#Error_Internal_Packet_ByteProcessedError_Packet_ParsingError_Packet_unexpectedError_Packet_Size_Mismatch Error_Packet Error_Digest Error_RandomError_Certificate Error_MiscVersionTLS12TLS11TLS10SSL3SSL2CipherTLSCtx ctxHandle TLSParamspConnectVersionpAllowedVersionspCiphers pCompressionspWantClientCert pCertificatespLoggingonCertificatesRecv TLSLoggingloggingPacketSentloggingPacketRecv loggingIOSent loggingIORecvdefaultLogging defaultParamsclientserverbye handshakesendDatarecvDatamacSSLhmachmacMD5hmacSHA1 hmacSHA256hmacIterprf_SHA1prf_MD5 prf_MD5SHA1 compressionIDcompressionFctHashType HashTypeMD5 HashTypeSHA1KeyXchgKxRSAHashCtxMD5SHA1KxErrorRSAError PublicKeyPubRSAinitMD5 updateMD5 finalizeMD5hashMD5initSHA1 updateSHA1 finalizeSHA1hashSHA1initHash updateHash finalizeHashgeneralizeRSAError kxEncrypt kxDecrypt 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 ServerRandomHeaderPacketAppDataChangeCipherSpecAlert 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 ConnectionEndConnectionClientConnectionServerBytesconstrRandom32 serverRandom clientRandom packetTypetypeOfHandshake numericalVerverOfNumcipherID cipherNamecipherDigestSize cipherKeySize cipherIVSizecipherKeyBlockSizecipherPaddingSizecipherKeyExchange cipherMACHashcipherF cipherMinVerCipherKeyExchangeTypeCipherKeyExchangeECDHE_ECDSACipherKeyExchangeECDH_RSACipherKeyExchangeECDH_ECDSACipherKeyExchangeDH_RSACipherKeyExchangeDH_DSSCipherKeyExchangeDHE_DSSCipherKeyExchangeECDHE_RSACipherKeyExchangeDHE_RSACipherKeyExchangeRSACipherTypeFunctions CipherStreamF CipherBlockF CipherNoneFIVKeycipherExchangeNeedMoreDatahasHelloExtensionshasExplicitBlockIV getWords8 getWord16 getWords16 getWord24 processBytes putWords8 putWord16 putWords16 putWord24putBytes encodeWord64cereal-0.3.3.0Data.Serialize.GetgetWord8getBytesisEmpty remainingrunGetGetData.Serialize.PutputWord8runPutPut runGetErr getVersion putVersion getHeaderTypegetHandshakeType decodeHeader encodeHeaderencodeHeaderNoVer decodeAlert encodeAlertdecodeHandshakeHeaderdecodeHandshakesdecodeHandshakedecodeHelloRequestdecodeClientHellodecodeServerHellodecodeServerHelloDonedecodeCertificatesdecodeFinishedgetSignatureHashAlgorithmdecodeCertRequestdecodeCertVerifydecodeClientKeyXchgdecodeServerKeyXchg_DHdecodeServerKeyXchg_RSAdecodeServerKeyXchgencodeHandshakeencodeHandshakeHeaderencodeHandshakeContent getRandom32getServerRandom32getClientRandom32 putRandom32putClientRandom32putServerRandom32getClientKeyData46putClientKeyData46 getSession putSessiongetCertsputCert getExtensions putExtension putExtensionsdecodeChangeCipherSpecencodeChangeCipherSpecgenerateMasterSecret_TLSgenerateMasterSecret_SSLgenerateMasterSecretgenerateKeyBlock_TLSgenerateKeyBlock_SSLgenerateKeyBlockgenerateFinished_TLSgenerateFinished_SSLgenerateClientFinishedgenerateServerFinishedsubtakelast partition3 partition6fromJustTLSStrunTLSStTLSStatestClientContext stVersionstStatus stHandshake stTxEncrypted stRxEncryptedstTxCryptStatestRxCryptState stTxMacState stRxMacStatestCipher stRandomGenStateRNGTLSHandshakeStatehstClientVersionhstClientRandomhstServerRandomhstMasterSecrethstRSAPublicKeyhstRSAPrivateKeyhstHandshakeDigest TLSMacState msSequence TLSCryptStatecstKeycstIV cstMacSecret TLSStatusStatusOkStatusHandshakeStatusHandshakeReq StatusInitHandshakeStatusHsStatusServerChangeCipherHsStatusClientFinishedHsStatusClientChangeCipherHsStatusClientCertificateVerifyHsStatusClientKeyXchgHsStatusClientCertificateHsStatusServerHelloDoneHsStatusServerCertificateReqHsStatusServerKeyXchgHsStatusServerCertificateHsStatusServerHelloHsStatusClientHelloassert runTLSState newTLSState withTLSRNG genTLSRandom makeDigesthsStatusTransitionTable updateStatusupdateStatusHsupdateStatusCCfinishHandshakeTypeMaterialfinishHandshakeMaterialswitchTxEncryptionswitchRxEncryptionsetServerRandomsetMasterSecret setPublicKey setPrivateKey setKeyBlock setCipher setVersionisClientContextnewEmptyHandshakestartHandshakeClienthasValidHandshakeupdateHandshakeupdateHandshakeDigestupdateHandshakeDigestSplittedgetHandshakeDigest endHandshake returnEither readPacket checkState processPacketprocessHandshake decryptRSAprocessClientKeyXchgprocessClientFinisheddecryptContent getCipherData decryptDataprocessCertificatesmakePacketDataprocessPacketDataencryptPacketDatapostprocessPacketData encodePacketpreProcessPacket writePacket encryptRSAencryptContent encryptDataencodePacketContentwritePacketContent ctxParamsctxStatenewCtx ctxLogging usingState usingState_ getStateRNG whileStatus recvPacket sendPackethandshakeClienthandshakeServerWithhandshakeServer