e!L      !"#$%&'()*+,-./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:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`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> !"#$%&'()*+,-. !"#$%&'()*+-. !"#$%&'()*+-. unknown experimental#Vincent Hanquez <vincent@snarc.org>1/0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_/01234BCDVWZ[^_/01234BCDVWZ[^_ `abc`abc`abcunknown experimental#Vincent Hanquez <vincent@snarc.org>0defghijklmnop###  unknown experimental#Vincent Hanquez <vincent@snarc.org>8qrstuvwxyz{|}~5qrstuvwxyz{|}~5qrsrst uvwxyz{|}~uvwxyz{|}~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  !"#$%&'()*+,-.//01223456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^__``aabbccdefghijklmnopqrstuvwxyz{|}~                        ! " # $ % & ' ( ) * + , - . / 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 W X Y Z [ \]^_`abcdefgh i j k l l m n o p q r s t u v w x x y z { | } ~                                 tls-0.1.3Network.TLS.MACNetwork.TLS.SRandomNetwork.TLS.StructNetwork.TLS.CipherNetwork.TLS.ServerNetwork.TLS.ClientNetwork.TLS.CryptoNetwork.TLS.CompressionNetwork.TLS.CapNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.UtilNetwork.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 CipherDatacipherDataContent cipherDataMACcipherDataPadding CipherType CipherAEAD CipherBlock CipherStream ConnectionEndConnectionClientConnectionServerVersionTLS12TLS11TLS10SSL3SSL2Bytes 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 lazyToStrict rsaEncrypt rsaDecrypt RSA-1.0.6Codec.Crypto.RSApublic_epublic_n public_size PublicKey private_d private_n private_size PrivateKey Compression compressionIDcompressionFcthmachmacIter CompressionIDCipherIDconstrRandom32hasHelloExtensionshasExplicitBlockIVPutGetGErunGEliftGetrunGet 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 partition6IVKeyrepackaes128_cbc_encryptaes128_cbc_decryptaes256_cbc_encryptaes256_cbc_decrypttoIVtoCtx initF_rc4 encryptF_rc4 decryptF_rc4 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 decryptDataprocessCertificates TLSServerscParams scTLSState TLSServerCertrunTLSServerSThandleClientHelloexpectingPacketexpectingHandshakehandshakeSendServerDatahandshakeSendFinish handshake sendDataChunkscCertRequestedrunTLSClientSTrecvServerHelloconnectSendClientHelloconnectSendClientCertificateconnectSendClientKeyXchgconnectSendFinish