Skip to content

Commit 8a00381

Browse files
Merge pull request #319 from ejohnstown/agent
Agent Updates
2 parents b81f577 + 351bc75 commit 8a00381

5 files changed

Lines changed: 265 additions & 146 deletions

File tree

examples/client/client.c

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,9 @@ static void ShowUsage(void)
172172
printf(" -R raw untranslated output\n");
173173
#endif
174174
#endif
175+
#ifdef WOLFSSH_AGENT
176+
printf(" -a Attempt to use SSH-AGENT\n");
177+
#endif
175178
}
176179

177180

@@ -815,14 +818,15 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args)
815818
byte rawMode = 0;
816819
#endif
817820
#ifdef WOLFSSH_AGENT
821+
byte useAgent = 0;
818822
WS_AgentCbActionCtx agentCbCtx;
819823
#endif
820824

821825
int argc = ((func_args*)args)->argc;
822826
char** argv = ((func_args*)args)->argv;
823827
((func_args*)args)->return_code = 0;
824828

825-
while ((ch = mygetopt(argc, argv, "?c:eh:i:j:p:tu:xzNP:R")) != -1) {
829+
while ((ch = mygetopt(argc, argv, "?ac:eh:i:j:p:tu:xzNP:R")) != -1) {
826830
switch (ch) {
827831
case 'h':
828832
host = myoptarg;
@@ -888,6 +892,13 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args)
888892
keepOpen = 1;
889893
break;
890894
#endif
895+
896+
#ifdef WOLFSSH_AGENT
897+
case 'a':
898+
useAgent = 1;
899+
break;
900+
#endif
901+
891902
case '?':
892903
ShowUsage();
893904
exit(EXIT_SUCCESS);
@@ -995,9 +1006,11 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args)
9951006
wolfSSH_SetUserAuth(ctx, ((func_args*)args)->user_auth);
9961007

9971008
#ifdef WOLFSSH_AGENT
998-
wolfSSH_CTX_set_agent_cb(ctx,
999-
wolfSSH_AGENT_DefaultActions, wolfSSH_AGENT_IO_Cb);
1000-
wolfSSH_CTX_AGENT_enable(ctx, 1);
1009+
if (useAgent) {
1010+
wolfSSH_CTX_set_agent_cb(ctx,
1011+
wolfSSH_AGENT_DefaultActions, wolfSSH_AGENT_IO_Cb);
1012+
wolfSSH_CTX_AGENT_enable(ctx, 1);
1013+
}
10011014
#endif
10021015

10031016
ssh = wolfSSH_new(ctx);
@@ -1013,9 +1026,11 @@ THREAD_RETURN WOLFSSH_THREAD client_test(void* args)
10131026
wolfSSH_SetUserAuthCtx(ssh, (void*)password);
10141027

10151028
#ifdef WOLFSSH_AGENT
1016-
memset(&agentCbCtx, 0, sizeof(agentCbCtx));
1017-
agentCbCtx.state = AGENT_STATE_INIT;
1018-
wolfSSH_set_agent_cb_ctx(ssh, &agentCbCtx);
1029+
if (useAgent) {
1030+
memset(&agentCbCtx, 0, sizeof(agentCbCtx));
1031+
agentCbCtx.state = AGENT_STATE_INIT;
1032+
wolfSSH_set_agent_cb_ctx(ssh, &agentCbCtx);
1033+
}
10191034
#endif
10201035

10211036
wolfSSH_CTX_SetPublicKeyCheck(ctx, wsPublicKeyCheck);

0 commit comments

Comments
 (0)