Documentation
¶
Index ¶
- type ClientAuth
- type Overlay
- type Receive
- func (r *Receive) ClientAuth() *ClientAuth
- func (r *Receive) IP() netip.Addr
- func (r *Receive) ListenOverlayDERP(ctx context.Context) error
- func (r *Receive) ListenOverlaySTUN(ctx context.Context) (<-chan struct{}, error)
- func (r *Receive) PickDERPHome(ctx context.Context) error
- func (r *Receive) Recv() <-chan *tailcfg.Node
- func (r *Receive) Send() chan<- *tailcfg.Node
- type Send
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ClientAuth ¶
type ClientAuth struct {
// OverlayPrivateKey is the main auth mechanism used to secure the overlay.
// Peers are sent this private key to encrypt node communication to the
// receiver. Leaking this private key would allow anyone to connect.
OverlayPrivateKey key.NodePrivate
// ReceiverPublicKey is the public key of the receiver. Node messages are
// encrypted to this public key.
ReceiverPublicKey key.NodePublic
// ReceiverStunAddr is the address that the receiver is reachable over UDP
// when the overlay is running in P2P mode.
ReceiverStunAddr netip.AddrPort
// ReceiverDERPRegionID is the region id that the receiver is reachable over
// DERP when the overlay is running in DERP mode.
ReceiverDERPRegionID uint16
}
func (*ClientAuth) AuthKey ¶
func (ca *ClientAuth) AuthKey() string
func (*ClientAuth) Parse ¶
func (ca *ClientAuth) Parse(authKey string) error
type Overlay ¶
type Overlay interface {
// listenOverlay(ctx context.Context, kind string) error
Recv() <-chan *tailcfg.Node
Send() chan<- *tailcfg.Node
IP() netip.Addr
}
Overlay specifies the mechanism by which senders and receivers exchange Tailscale nodes over a sidechannel.
type Receive ¶
type Receive struct {
Logger *slog.Logger
DerpMap *tailcfg.DERPMap
// SelfPriv is the private key that peers will encrypt overlay messages to.
// The public key of this is sent in the auth key.
SelfPriv key.NodePrivate
// PeerPriv is the main auth mechanism used to secure the overlay. Peers are
// sent this private key to encrypt node communication. Leaking this private
// key would allow anyone to connect.
PeerPriv key.NodePrivate
// contains filtered or unexported fields
}
func (*Receive) ClientAuth ¶
func (r *Receive) ClientAuth() *ClientAuth
func (*Receive) ListenOverlaySTUN ¶
Click to show internal directories.
Click to hide internal directories.