wolfssh/apps
Yosuke Shimizu a384999f61 agent, apps, examples: relay whole agent messages
- src/agent.c gains AgentWriteAll(), AgentReadFull(),
  AgentReadMessage() and AgentWriteMessage(), which loop the
  agentIoCb, bound a declared length by the new
  WOLFSSH_AGENT_MAX_MSG_SZ, and reconnect once when a write finds
  the socket dead. wolfSSH_AGENT_Relay() is rebuilt on them.
- New WOLFSSH_API wolfSSH_AGENT_RelayChannel() frames the channel
  side, holding a partial request and an unfinished reply on
  WOLFSSH_AGENT_CTX in two WOLFSSH_BUFFERs whose whole allocation
  is zeroed as each message is consumed. It answers WS_WANT_WRITE,
  WS_WINDOW_FULL or WS_REKEYING while a reply is owed, flushes
  what is left queued below under those last two, and answers
  WS_WANT_WRITE while any of it is still queued.
- readPeer() in apps/wolfssh/wolfssh.c and examples/client/client.c
  calls it, drops its local ato32() and 512-byte buffer, and arms a
  select() write set for the transport's own want-write. While a
  reply is owed it ends the read loop so the retry above select()
  runs, and examples/client/client.c times its select() out at one
  second.
- tests/api.c adds nine wolfSSH_AGENT_Relay() cases and
  tests/regress.c twenty-two for wolfSSH_AGENT_RelayChannel().

Issue: F-10545
2026-09-24 17:24:14 -05:00
..
wolfssh agent, apps, examples: relay whole agent messages 2026-09-24 17:24:14 -05:00
wolfsshd wolfsshd: keep a 022 umask in the daemon 2026-09-22 14:09:18 -05:00
include.am Add wolfssh-options build option probe 2026-08-19 16:55:00 -07:00
wolfssh-options.c Fix ML-DSA composite logic from code review 2026-09-21 11:11:16 -07:00