You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/wgengine/magicsock
James Tucker c09c95ef67 types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation
Adds the ability to rotate discovery keys on running clients, needed for
testing upcoming disco key distribution changes.

Introduces key.DiscoKey, an atomic container for a disco private key,
public key, and the public key's ShortString, replacing the prior
separate atomic fields.

magicsock.Conn has a new RotateDiscoKey method, and access to this is
provided via localapi and a CLI debug command.

Note that this implementation is primarily for testing as it stands, and
regular use should likely introduce an additional mechanism that allows
the old key to be used for some time, to provide a seamless key rotation
rather than one that invalidates all sessions.

Updates tailscale/corp#34037

Signed-off-by: James Tucker <james@tailscale.com>
2 weeks ago
..
blockforever_conn.go syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 2 weeks ago
cloudinfo.go feature/featuretags, all: add build features, use existing ones in more places 2 months ago
cloudinfo_nocloud.go wgengine/magicsock: use cloud metadata to get public IPs 1 year ago
cloudinfo_test.go wgengine/magicsock: use cloud metadata to get public IPs 1 year ago
debughttp.go feature/featuretags: add a catch-all "Debug" feature flag 2 months ago
debugknobs.go wgengine/magicsock: add TS_DEBUG_NEVER_DIRECT_UDP debug knob (#17094) 3 months ago
debugknobs_stubs.go wgengine/magicsock: add TS_DEBUG_NEVER_DIRECT_UDP debug knob (#17094) 3 months ago
derp.go net/connstats: prepare to remove package (#17554) 2 months ago
derp_test.go net/netcheck,wgengine/magicsock: align DERP frame receive time heuristics 2 years ago
disco_atomic.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
disco_atomic_test.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
discopingpurpose_string.go go.mod: bump golang.org/x/crypto (#17907) 2 weeks ago
endpoint.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
endpoint_default.go all: adjust some build tags for plan9 2 years ago
endpoint_stub.go all: adjust some build tags for plan9 2 years ago
endpoint_test.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
endpoint_tracker.go syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 2 weeks ago
endpoint_tracker_test.go all: use Go 1.22 range-over-int 2 years ago
magicsock.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
magicsock_default.go feature/featuretags, all: add build features, use existing ones in more places 2 months ago
magicsock_linux.go feature/featuretags, all: add build features, use existing ones in more places 2 months ago
magicsock_linux_test.go wgengine/magicsock: fix bpf fragmentation jump offsets (#16204) 6 months ago
magicsock_notplan9.go wgengine/magicsock: refactor maybeRebindOnError 11 months ago
magicsock_plan9.go wgengine/magicsock: refactor maybeRebindOnError 11 months ago
magicsock_test.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
peermap.go net/{batching,packet},wgengine/magicsock: export batchingConn (#16848) 4 months ago
peermap_test.go net/{batching,packet},wgengine/magicsock: export batchingConn (#16848) 4 months ago
peermtu.go magicsock: mute noisy expected peer mtu related error (#10870) 2 years ago
peermtu_darwin.go wgengine/magicsock: improve don't fragment bit set/get support 2 years ago
peermtu_linux.go wgengine/magicsock: improve don't fragment bit set/get support 2 years ago
peermtu_stubs.go magicsock: mute noisy expected peer mtu related error (#10870) 2 years ago
peermtu_unix.go wgengine/magicsock: replace CanPMTUD() with ShouldPMTUD() 2 years ago
rebinding_conn.go syncs: add Mutex/RWMutex alias/wrappers for future mutex debugging 2 weeks ago
relaymanager.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago
relaymanager_test.go types/key,wgengine/magicsock,control/controlclient,ipn: add debug disco key rotation 2 weeks ago