mirror of https://github.com/wolfSSL/wolfssh.git
wolfSSH_AGENT_SignRequest() writes the sign request and reads the reply through the whole-message helpers the relay uses, so a short write is followed up and a reply is read to its declared length before it is parsed. The setup callback's WS_AgentCbError result becomes WS_AGENT_CXN_FAIL, and an ECDSA key's reply room fits the SSH blob. - A short write, a hang-up, or a failed setup is WS_AGENT_CXN_FAIL; cleanup runs only after a setup that succeeded, and the client callbacks close their socket when connect() fails. - PrepareUserAuthRequestEcc() reserves r and s as mpints a pad byte over the curve size, and BuildUserAuthRequestEcc() hands the agent that room, checks the reply's algorithm name, and bounds it by outputSz. - A NULL sig, or a NULL digest or key blob with a size, is WS_BAD_ARGUMENT; agent.h documents the contract and return codes. - api: the mock agent's short write is followed up, a reply read a byte at a time is reassembled, and a failed setup and NULL buffers are refused. - regress: the mock agents answer as a stream; ECDSA user auth for each curve at, under, and over the largest blob, and a wrong curve name refused; a failed setup refused with nothing sent. Issue: F-13325, F-14629, F-14631 |
||
|---|---|---|
| .. | ||
| agent.c | ||
| certman.c | ||
| include.am | ||
| internal.c | ||
| io.c | ||
| keygen.c | ||
| log.c | ||
| misc.c | ||
| ossh.c | ||
| port.c | ||
| ssh.c | ||
| wolfscp.c | ||
| wolfsftp.c | ||
| wolfterm.c | ||