ollie/cmd/toolsrv
Levi Neely 11c67a7fb1 toolsrv: implement 9P Tauth authentication
Replace HMAC-based registration with proper 9P Tauth flow:
- First client to connect sets the secret via Tauth afid write
- Server stores secret in memory, returns session token
- Subsequent clients must provide matching secret
- Secret never in env vars or disk, only transmitted over socket

Changes:
- server9p.go: Authenticate() replaces RegisterAgent/GetAgent
- client9p.go: Dial() does Tauth handshake (write secret, read token)
- spawn.go: generates secret, no longer passes via TOOLSRV_SECRET env
- auth9p.go: simplified to just GenerateSecret()
- spec9p.go: removed /register file, token validation at connection level
- cmd/toolsrv/server.go: handleAuth/handleAuthWrite/handleAuthRead

Security model:
- Session generates secret on Spawn()
- All agents share session's secret via ProcessKeeper
- Socket permissions (local) or SSH (remote) protect transport
- Secret dies with toolsrv process, new secret on respawn

Added integration tests verifying:
- First connection sets secret
- Reconnect with same secret works
- Wrong secret rejected
- ProcessKeeper reconnect/respawn behavior
- Concurrent connections
2026-08-10 19:03:10 +02:00
..
test rename ollie-remote to toolsrv 2026-08-10 15:01:42 +02:00
.gitignore rename ollie-remote to toolsrv 2026-08-10 15:01:42 +02:00
main.go toolsrv: implement 9P Tauth authentication 2026-08-10 19:03:10 +02:00
sandbox-remote.yaml rename ollie-remote to toolsrv 2026-08-10 15:01:42 +02:00
server.go toolsrv: implement 9P Tauth authentication 2026-08-10 19:03:10 +02:00