Documentation
¶
Overview ¶
package tlsdialer contains a customized version of crypto/tls.Dial that allows control over whether or not to send the ServerName extension in the client handshake.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Dial ¶
Like crypto/tls.Dial, but with the ability to control whether or not to send the ServerName extension in client handshakes through the sendServerName flag.
Note - if sendServerName is false, the VerifiedChains field on the connection's ConnectionState will never get populated. Use DialForTimings to get back a data structure that includes the verified chains.
Types ¶
type ConnWithTimings ¶
type ConnWithTimings struct {
// Conn: the conn resulting from dialing
Conn *tls.Conn
// ResolutionTime: the amount of time it took to resolve the address
ResolutionTime time.Duration
// ConnectTime: the amount of time that it took to connect the socket
ConnectTime time.Duration
// HandshakeTime: the amount of time that it took to complete the TLS
// handshake
HandshakeTime time.Duration
// ResolvedAddr: the address to which our dns lookup resolved
ResolvedAddr *net.TCPAddr
// VerifiedChains: like tls.ConnectionState.VerifiedChains
VerifiedChains [][]*x509.Certificate
}
A tls.Conn along with timings for key steps in establishing that Conn
func DialForTimings ¶
func DialForTimings(dial func(net string, addr string, timeout time.Duration) (net.Conn, error), timeout time.Duration, network, addr string, sendServerName bool, config *tls.Config) (*ConnWithTimings, error)
Like DialWithDialer but returns a data structure including timings and the verified chains.

