tlsdialer

package
v0.0.0-...-fd97e0e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2016 License: Apache-2.0, Apache-2.0 Imports: 6 Imported by: 0

README

tlsdialer Travis CI Status Coverage Status GoDoc

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.

v2 is the current version. Import and doc information on gopkg.in.

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

func Dial(network, addr string, sendServerName bool, config *tls.Config) (*tls.Conn, error)

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.

func DialWithDialer

func DialWithDialer(dialer *net.Dialer, network, addr string, sendServerName bool, config *tls.Config) (*tls.Conn, error)

Like crypto/tls.DialWithDialer, 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.

func OverrideDial

func OverrideDial(override func(network, addr string, timeout time.Duration) (net.Conn, error))

OverrideDial allows specifying a function that will be used to dial in lieu of a net.Dialer.

func OverrideResolve

func OverrideResolve(override func(addr string) (*net.TCPAddr, error))

OverrideResolve allows overriding the DNS resolution function

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(dialer *net.Dialer, network, addr string, sendServerName bool, config *tls.Config) (*ConnWithTimings, error)

Like DialWithDialer but returns a data structure including timings and the verified chains.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL