Documentation
¶
Index ¶
- Variables
- type ClientAuth
- type HostInfo
- type Logf
- type Overlay
- type Peer
- type Wasm
- func (r *Wasm) ClientAuth() *ClientAuth
- func (r *Wasm) Connect(ctx context.Context, ca ClientAuth, offer webrtc.SessionDescription) (Peer, error)
- func (r *Wasm) IPs() []netip.Addr
- func (r *Wasm) ListenOverlayDERP(ctx context.Context) error
- func (r *Wasm) PickDERPHome(ctx context.Context) error
- func (r *Wasm) Recv() <-chan *tailcfg.Node
- func (r *Wasm) SendTailscaleNodeUpdate(node *tailcfg.Node)
- func (r *Wasm) SendWebrtcCandidate(peer string, cand webrtc.ICECandidateInit)
Constants ¶
This section is empty.
Variables ¶
View Source
var TailscaleServicePrefix6 = [6]byte{0xfd, 0x7a, 0x11, 0x5c, 0xa1, 0xe0}
Functions ¶
This section is empty.
Types ¶
type ClientAuth ¶
type ClientAuth struct {
Web bool
// 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
func (*ClientAuth) PrintDebug ¶ added in v0.0.6
func (ca *ClientAuth) PrintDebug(logf func(str string, args ...any), dm *tailcfg.DERPMap)
type Overlay ¶
type Overlay interface {
// listenOverlay(ctx context.Context, kind string) error
Recv() <-chan *tailcfg.Node
SendTailscaleNodeUpdate(node *tailcfg.Node)
IPs() []netip.Addr
}
Overlay specifies the mechanism by which senders and receivers exchange Tailscale nodes over a sidechannel.
type Wasm ¶ added in v0.4.0
type Wasm struct {
Logger *slog.Logger
HumanLogf Logf
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
SelfIP netip.Addr
// DerpRegionID is the DERP region that can be used for proxied overlay
// communication.
DerpRegionID uint16
DerpLatency time.Duration
// contains filtered or unexported fields
}
func NewWasmOverlay ¶ added in v0.4.0
func (*Wasm) ClientAuth ¶ added in v0.4.0
func (r *Wasm) ClientAuth() *ClientAuth
func (*Wasm) ListenOverlayDERP ¶ added in v0.4.0
func (*Wasm) SendTailscaleNodeUpdate ¶ added in v0.4.0
func (*Wasm) SendWebrtcCandidate ¶ added in v0.4.0
Click to show internal directories.
Click to hide internal directories.