jPS      !"#$%&'()*+,-./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:;<=>?@ABCDEFGHIJKLMNOPQR !STUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~QOPx~}|{zyrwvutsmqponblkjihgfedc$%&'( !"#]a`_^[\YZWXUVRSTLNM4KJIHGFEDCBA@?>=<;:98765)3210/.-,+*    !"#!"#$%&'(%&'() 3210/.-,+**+,-./01234KJIHGFEDCBA@?>=<;:9876556789:;<=>?@ABCDEFGHIJKLNMMNOPPQRSTTUVVWXXYZZ[\\]a`_^^_`ab lkjihgfedccdefghijklmqponnopqrwvutsstuvwx~}|{zyyz{|}~ unknown experimental#Vincent Hanquez <vincent@snarc.org>#$#$#$ unknown experimental#Vincent Hanquez <vincent@snarc.org>%&'()*+,-./0123456789:;<=%&*+,-./0123456789:<=%&*+,-./0123456789:<= unknown experimental#Vincent Hanquez <vincent@snarc.org>5>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr>?@ABDESTUghknqr>?@ABDESTUghknqr stuvwstuvwstuvwunknown experimental#Vincent Hanquez <vincent@snarc.org>0xyz{|}~'''  unknown experimental#Vincent Hanquez <vincent@snarc.org>RMM  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 @initiate a new TLS connection through a handshake on a handle.  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   !"#$%&'()*+,-./001233456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]]^_``aabbccddefghijklmnopqrstuvwxyz{|}~            ! " # $ % & ' ( ) * + , - . / 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 b c d e f g h i j k l m n opqrstuvwx y z { | | } ~                                                                            tls-0.3.3Network.TLS.MACNetwork.TLS.SRandomNetwork.TLS.StructNetwork.TLS.CipherNetwork.TLS.ServerNetwork.TLS.ClientNetwork.TLS.CompressionNetwork.TLS.CryptoNetwork.TLS.CapNetwork.TLS.WireNetwork.TLS.PacketNetwork.TLS.UtilNetwork.TLS.StateNetwork.TLS.SendingNetwork.TLS.ReceivingmacSSLhmachmacMD5hmacSHA1 hmacSHA256prf_SHA1prf_MD5 prf_MD5SHA1 SRandomGenmakeSRandomGengetRandomBytes 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 CipherNoneFIVKeycipherExchangeNeedMoreDatacipher_null_nullcipher_null_MD5cipher_null_SHA1cipher_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 runTLSClientinitiateconnect Compression compressionIDcompressionFcthmacIterHashType HashTypeMD5 HashTypeSHA1KeyXchgKxRSAHashCtxMD5SHA1KxErrorRSAError PrivateKeyPrivRSA PublicKeyPubRSAinitMD5 updateMD5 finalizeMD5hashMD5initSHA1 updateSHA1 finalizeSHA1hashSHA1initHash updateHash finalizeHashgeneralizeRSAError kxEncrypt kxDecryptRNGWord128put128get128add1 makeParamsmake chunkSizebxor nextChunk 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 partition6fromJustaes128_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