From 88e7919fbf81fe57eeff88a7c6056d0fd5df6f95 Mon Sep 17 00:00:00 2001 From: John Safranek Date: Sun, 1 Nov 2020 19:40:08 -0800 Subject: [PATCH] SSH-AGENT Add command line option to the client to allow use of the agent. --- examples/client/client.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/examples/client/client.c b/examples/client/client.c index cd52f8d..8929a48 100644 --- a/examples/client/client.c +++ b/examples/client/client.c @@ -172,6 +172,9 @@ static void ShowUsage(void) printf(" -R raw untranslated output\n"); #endif #endif +#ifdef WOLFSSH_AGENT + printf(" -a Attempt to use SSH-AGENT\n"); +#endif } @@ -815,6 +818,7 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args) byte rawMode = 0; #endif #ifdef WOLFSSH_AGENT + byte useAgent = 0; WS_AgentCbActionCtx agentCbCtx; #endif @@ -888,6 +892,13 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args) keepOpen = 1; break; #endif + + #ifdef WOLFSSH_AGENT + case 'a': + useAgent = 1; + break; + #endif + case '?': ShowUsage(); exit(EXIT_SUCCESS); @@ -995,9 +1006,11 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args) wolfSSH_SetUserAuth(ctx, ((func_args*)args)->user_auth); #ifdef WOLFSSH_AGENT - wolfSSH_CTX_set_agent_cb(ctx, - wolfSSH_AGENT_DefaultActions, wolfSSH_AGENT_IO_Cb); - wolfSSH_CTX_AGENT_enable(ctx, 1); + if (useAgent) { + wolfSSH_CTX_set_agent_cb(ctx, + wolfSSH_AGENT_DefaultActions, wolfSSH_AGENT_IO_Cb); + wolfSSH_CTX_AGENT_enable(ctx, 1); + } #endif ssh = wolfSSH_new(ctx); @@ -1013,9 +1026,11 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args) wolfSSH_SetUserAuthCtx(ssh, (void*)password); #ifdef WOLFSSH_AGENT - memset(&agentCbCtx, 0, sizeof(agentCbCtx)); - agentCbCtx.state = AGENT_STATE_INIT; - wolfSSH_set_agent_cb_ctx(ssh, &agentCbCtx); + if (useAgent) { + memset(&agentCbCtx, 0, sizeof(agentCbCtx)); + agentCbCtx.state = AGENT_STATE_INIT; + wolfSSH_set_agent_cb_ctx(ssh, &agentCbCtx); + } #endif wolfSSH_CTX_SetPublicKeyCheck(ctx, wsPublicKeyCheck);