Versions in this module Expand all Collapse all v0 v0.6.0 Dec 12, 2017 Changes in this version + var ErrCloseSessionForRetry = errors.New("closing session in order to recreate after a retry") + var ErrHOLExperiment = qerr.Error(qerr.InvalidCryptoMessageParameter, "HOL experiment. Unsupported") + var ErrNSTPExperiment = qerr.Error(qerr.InvalidCryptoMessageParameter, "NSTP experiment. Unsupported") + type Cookie struct + RemoteAddr string + SentTime time.Time + type CookieGenerator struct + func NewCookieGenerator() (*CookieGenerator, error) + func (g *CookieGenerator) DecodeToken(encrypted []byte) (*Cookie, error) + func (g *CookieGenerator) NewToken(raddr net.Addr) ([]byte, error) + type CookieHandler struct + func NewCookieHandler(callback func(net.Addr, *Cookie) bool) (*CookieHandler, error) + func (h *CookieHandler) Generate(conn *mint.Conn) ([]byte, error) + func (h *CookieHandler) Validate(conn *mint.Conn, token []byte) bool + type CryptoSetup interface + DiversificationNonce func() []byte + GetSealer func() (protocol.EncryptionLevel, Sealer) + GetSealerForCryptoStream func() (protocol.EncryptionLevel, Sealer) + GetSealerWithEncryptionLevel func(protocol.EncryptionLevel) (Sealer, error) + HandleCryptoStream func() error + Open func(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) ([]byte, protocol.EncryptionLevel, error) + SetDiversificationNonce func([]byte) + func NewCryptoSetup(cryptoStream io.ReadWriter, connID protocol.ConnectionID, remoteAddr net.Addr, ...) (CryptoSetup, error) + func NewCryptoSetupClient(cryptoStream io.ReadWriter, hostname string, connID protocol.ConnectionID, ...) (CryptoSetup, error) + func NewCryptoSetupTLSClient(cryptoStream io.ReadWriter, connID protocol.ConnectionID, hostname string, ...) (CryptoSetup, error) + func NewCryptoSetupTLSServer(tls MintTLS, cryptoStream *CryptoStreamConn, nullAEAD crypto.AEAD, ...) CryptoSetup + type CryptoStreamConn struct + func NewCryptoStreamConn(remoteAddr net.Addr) *CryptoStreamConn + func (c *CryptoStreamConn) AddDataForReading(data []byte) + func (c *CryptoStreamConn) Close() error + func (c *CryptoStreamConn) Flush() (int, error) + func (c *CryptoStreamConn) GetDataForWriting() []byte + func (c *CryptoStreamConn) LocalAddr() net.Addr + func (c *CryptoStreamConn) Read(b []byte) (int, error) + func (c *CryptoStreamConn) RemoteAddr() net.Addr + func (c *CryptoStreamConn) SetDeadline(time.Time) error + func (c *CryptoStreamConn) SetReadDeadline(time.Time) error + func (c *CryptoStreamConn) SetStream(stream io.ReadWriter) + func (c *CryptoStreamConn) SetWriteDeadline(time.Time) error + func (c *CryptoStreamConn) Write(p []byte) (int, error) + type HandshakeMessage struct + Data map[Tag][]byte + Tag Tag + func ParseHandshakeMessage(r io.Reader) (HandshakeMessage, error) + func (h HandshakeMessage) String() string + func (h HandshakeMessage) Write(b *bytes.Buffer) + type KeyDerivationFunction func(crypto.TLSExporter, protocol.Perspective) (crypto.AEAD, error) + type KeyExchangeFunction func() crypto.KeyExchange + type MintTLS interface + Handshake func() mint.Alert + SetCryptoStream func(io.ReadWriter) + SetExtensionHandler func(mint.AppExtensionHandler) error + State func() mint.State + type QuicCryptoKeyDerivationFunction func(forwardSecure bool, sharedSecret, nonces []byte, connID protocol.ConnectionID, ...) (crypto.AEAD, error) + type Sealer interface + Overhead func() int + Seal func(dst, src []byte, packetNumber protocol.PacketNumber, associatedData []byte) []byte + type ServerConfig struct + ID []byte + func NewServerConfig(kex crypto.KeyExchange, certChain crypto.CertChain) (*ServerConfig, error) + func (s *ServerConfig) Get() []byte + func (s *ServerConfig) GetCertsCompressed(sni string, commonSetHashes, compressedHashes []byte) ([]byte, error) + func (s *ServerConfig) Sign(sni string, chlo []byte) ([]byte, error) + type TLSExtensionHandler interface + GetPeerParams func() <-chan TransportParameters + Receive func(mint.HandshakeType, *mint.ExtensionList) error + Send func(mint.HandshakeType, *mint.ExtensionList) error + func NewExtensionHandlerClient(params *TransportParameters, initialVersion protocol.VersionNumber, ...) TLSExtensionHandler + func NewExtensionHandlerServer(params *TransportParameters, supportedVersions []protocol.VersionNumber, ...) TLSExtensionHandler + type Tag uint32 + const TagAEAD + const TagCCRT + const TagCCS + const TagCERT + const TagCFCW + const TagCHLO + const TagCOPT + const TagCSCT + const TagEXPY + const TagFHL2 + const TagICSL + const TagKEXS + const TagMIDS + const TagMSPC + const TagNONC + const TagNONP + const TagNSTP + const TagOBIT + const TagPAD + const TagPDMD + const TagPROF + const TagPRST + const TagPUBS + const TagREJ + const TagRNON + const TagRSEQ + const TagSCFG + const TagSCID + const TagSCLS + const TagSFCW + const TagSHLO + const TagSNI + const TagSNO + const TagSRBF + const TagSTK + const TagSVID + const TagTCID + const TagUAID + const TagVER + const TagXLCT + type TransportParameters struct + ConnectionFlowControlWindow protocol.ByteCount + IdleTimeout time.Duration + MaxStreams uint32 + OmitConnectionID bool + StreamFlowControlWindow protocol.ByteCount