iO       !"#$%&'()*+,-./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{|}~RPQy~}|{zsxwvutnrqpocmlkjihgfed%&'()!"#$ ^ba`_\]Z[XYVWSTUMON5LKJIHGFEDCBA@?>=<;:9876*43210/.-,+       !"#$"#$%&'()&'()* 43210/.-,++,-./012345LKJIHGFEDCBA@?>=<;:98766789:;<=>?@ABCDEFGHIJKLMONNOPQQRSTUUVWWXYYZ[[\]]^ba`__`abc mlkjihgfeddefghijklmnrqpoopqrsxwvuttuvwxy~}|{zz{|}~ unknown experimental#Vincent Hanquez <vincent@snarc.org> unknown experimental#Vincent Hanquez <vincent@snarc.org> !"#$%&'()*+,-./0 !"#$%&'()*+,-/0 !"#$%&'()*+,-/0 unknown experimental#Vincent Hanquez <vincent@snarc.org>5123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde1234578FGHZ[^ade1234578FGHZ[^ade fghifghifghiunknown experimental#Vincent Hanquez <vincent@snarc.org>0jklmnopqrstuv###  unknown experimental#Vincent Hanquez <vincent@snarc.org>Rwxyz{|}~Mwxyz{|}~Mwxyxyz {|}~{|}~ 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  !"#$%&'()*+,-./011234456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^^_`aabbccddeefghijklmnopqrstuvwxyz{|}~                        ! " # $ % & ' ( ) * + , - . / 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 [ \ ] ^ _ ` a bcdefghijklmn o p q r r s t u v w x y z { | } ~                                                                 tls-0.2Network.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.ReceivingmacSSLhmachmacMD5hmacSHA1 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_unexpectedError_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 cipherMACHashcipherF 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 compressionIDcompressionFcthmacIter CompressionIDCipherIDconstrRandom32hasHelloExtensionshasExplicitBlockIVPutGetGErunGEliftGetrunGet remaining bytesReadgetWord8 getWords8 getWord16 getWords16 getWord24getBytes processBytesisEmptyputWord8 putWords8 putWord16 putWords16 putWord24putBytes lazyToBytesrunPut encodeWord64 decodeHeader encodeHeaderencodeHeaderNoVer decodeAlert encodeAlertdecodeHandshakeHeaderdecodeHandshakesdecodeHandshakedecodeHelloRequestdecodeClientHellodecodeServerHellodecodeServerHelloDonedecodeCertificatesdecodeFinishedgetSignatureHashAlgorithmdecodeCertRequestdecodeCertVerifydecodeClientKeyXchgdecodeServerKeyXchg_DHdecodeServerKeyXchg_RSAdecodeServerKeyXchgencodeHandshakeencodeHandshakeHeaderencodeHandshakeContent getVersion putVersion getRandom32getServerRandom32getClientRandom32 putRandom32putClientRandom32putServerRandom32getClientKeyData46putClientKeyData46 getSession putSessiongetCertsputCert getExtensions putExtension putExtensionsdecodeChangeCipherSpecencodeChangeCipherSpecgenerateMasterSecret_TLSgenerateMasterSecret_SSLgenerateMasterSecretgenerateKeyBlock_TLSgenerateKeyBlock_SSLgenerateKeyBlockgenerateFinished_TLSgenerateFinished_SSLgenerateClientFinishedgenerateServerFinishedsubtakelast partition3 partition6IVKeyrepackaes128_cbc_encryptaes128_cbc_decryptaes256_cbc_encryptaes256_cbc_decrypttoIVtoCtx initF_rc4 encryptF_rc4 decryptF_rc4 MonadTLSState getTLSState putTLSStateTLSStatestClientContext stVersionstStatus stHandshake stTxEncrypted stRxEncryptedstTxCryptStatestRxCryptState stTxMacState stRxMacStatestCipher stRandomGenTLSHandshakeStatehstClientVersionhstClientRandomhstServerRandomhstMasterSecrethstRSAPublicKeyhstRSAPrivateKeyhstHandshakeDigest TLSMacState msSequence TLSCryptStatecstKeycstIV cstMacSecret TLSStatusStatusOkStatusHandshakeStatusHandshakeReq StatusInitHandshakeStatusHsStatusServerChangeCipherHsStatusClientFinishedHsStatusClientChangeCipherHsStatusClientCertificateVerifyHsStatusClientKeyXchgHsStatusClientCertificateHsStatusServerHelloDoneHsStatusServerCertificateReqHsStatusServerKeyXchgHsStatusServerCertificateHsStatusServerHelloHsStatusClientHelloassert newTLSStatemodifyTLSState withTLSRNG makeDigesthsStatusTransitionTable whileStatus updateStatusupdateStatusHsupdateStatusCCfinishHandshakeTypeMaterialfinishHandshakeMaterialswitchTxEncryptionswitchRxEncryptionsetServerRandomsetMasterSecret setPublicKey setPrivateKey setKeyBlock setCipher setVersionisClientContextnewEmptyHandshakestartHandshakeClienthasValidHandshakeupdateHandshakeupdateHandshakeDigestupdateHandshakeDigestSplittedgetHandshakeDigest endHandshakemakePacketDataprocessPacketDataencryptPacketDatapostprocessPacketData encodePacketpreProcessPacket writePacket encryptRSAencryptContent encryptDataencodePacketContentwritePacketContentTLSReadTLSRrunTLSR runTLSRead returnEither readPacket checkState processPacketprocessHandshake decryptRSAsetMasterSecretRandomprocessClientKeyXchgprocessClientFinisheddecryptContent getCipherData decryptDataprocessCertificates TLSServerscParams scTLSState TLSServerCertrunTLSServerSThandleClientHellohandshakeSendServerDatahandshakeSendFinish handshake sendDataChunkscCertRequestedrunTLSClientSTprocessServerInforecvServerInfoconnectSendClientHelloconnectSendClientCertificateconnectSendClientKeyXchgconnectSendFinish