@@ -163,6 +163,52 @@ static int tsClientUserAuth(byte authType, WS_UserAuthData* authData, void* ctx)
163163#define NUMARGS 12
164164#define ARGLEN 32
165165
166+ /*
167+ * Macro: ADD_ARG
168+ * Purpose: Adds a string argument to the argument list.
169+ * Parameters:
170+ * - argList: The array of argument strings.
171+ * - argListCount: The current count of arguments in the list (modified
172+ * by the macro).
173+ * - arg: The string argument to add.
174+ * Behavior:
175+ * - Copies the string `arg` into the next available slot in `argList`.
176+ * - Increments `argListCount` if the operation is successful.
177+ * Constraints:
178+ * - The total number of arguments must not exceed `NUMARGS`.
179+ * - Each argument string must not exceed `ARGLEN` characters.
180+ * Side effects:
181+ * - Modifies `argList` and increments `argListCount`.
182+ */
183+ #define ADD_ARG (argList ,argListCount ,arg ) do { \
184+ if ((argListCount) < NUMARGS) \
185+ WSTRNCPY((argList)[(argListCount)++], (arg), ARGLEN); \
186+ } while (0)
187+
188+ /*
189+ * Macro: ADD_ARG_INT
190+ * Purpose: Adds an integer argument to the argument list as a string.
191+ * Parameters:
192+ * - argList: The array of argument strings.
193+ * - argListCount: The current count of arguments in the list (modified
194+ * by the macro).
195+ * - arg: The integer argument to add.
196+ * Behavior:
197+ * - Converts the integer `arg` to a string and stores it in the next
198+ * available slot in `argList`.
199+ * - Increments `argListCount` if the operation is successful.
200+ * Constraints:
201+ * - The total number of arguments must not exceed `NUMARGS`.
202+ * - Each argument string must not exceed `ARGLEN` characters.
203+ * Side effects:
204+ * - Modifies `argList` and increments `argListCount`.
205+ */
206+ #define ADD_ARG_INT (argList ,argListCount ,arg ) do { \
207+ if ((argListCount) < NUMARGS) \
208+ WSNPRINTF((argList)[(argListCount)++], ARGLEN, "%d", (arg)); \
209+ } while (0)
210+
211+
166212static int wolfSSH_wolfSSH_Group16_512 (void )
167213{
168214 tcp_ready ready ;
@@ -175,7 +221,8 @@ static int wolfSSH_wolfSSH_Group16_512(void)
175221 sA [10 ], sA [11 ] };
176222 char cA [NUMARGS ][ARGLEN ];
177223 char * clientArgv [NUMARGS ] =
178- { cA [0 ], cA [1 ], cA [2 ], cA [3 ], cA [4 ] };
224+ { cA [0 ], cA [1 ], cA [2 ], cA [3 ], cA [4 ], cA [5 ], cA [6 ], cA [7 ], cA [8 ], cA [9 ],
225+ cA [10 ], cA [11 ] };
179226 int serverArgc = 0 ;
180227 int clientArgc = 0 ;
181228
@@ -202,19 +249,19 @@ static int wolfSSH_wolfSSH_Group16_512(void)
202249
203250 InitTcpReady (& ready );
204251
205- WSTRNCPY (serverArgv [ serverArgc ++ ] , "echoserver" , ARGLEN );
206- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-1" , ARGLEN );
207- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-f" , ARGLEN );
252+ ADD_ARG (serverArgv , serverArgc , "echoserver" );
253+ ADD_ARG (serverArgv , serverArgc , "-1" );
254+ ADD_ARG (serverArgv , serverArgc , "-f" );
208255 #if !defined(USE_WINDOWS_API ) && !defined(WOLFSSH_ZEPHYR )
209- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-p" , ARGLEN );
210- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-0" , ARGLEN );
256+ ADD_ARG (serverArgv , serverArgc , "-p" );
257+ ADD_ARG (serverArgv , serverArgc , "-0" );
211258 #endif
212- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-x" , ARGLEN );
213- WSTRNCPY (serverArgv [ serverArgc ++ ] , "diffie-hellman-group16-sha512" , ARGLEN );
214- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-m" , ARGLEN );
215- WSTRNCPY (serverArgv [ serverArgc ++ ] , "hmac-sha2-512" , ARGLEN );
216- WSTRNCPY (serverArgv [ serverArgc ++ ] , "-c" , ARGLEN );
217- WSTRNCPY (serverArgv [ serverArgc ++ ] , "aes256-cbc" , ARGLEN );
259+ ADD_ARG (serverArgv , serverArgc , "-x" );
260+ ADD_ARG (serverArgv , serverArgc , "diffie-hellman-group16-sha512" );
261+ ADD_ARG (serverArgv , serverArgc , "-m" );
262+ ADD_ARG (serverArgv , serverArgc , "hmac-sha2-512" );
263+ ADD_ARG (serverArgv , serverArgc , "-c" );
264+ ADD_ARG (serverArgv , serverArgc , "aes256-cbc" );
218265
219266 serverArgs .argc = serverArgc ;
220267 serverArgs .argv = serverArgv ;
@@ -224,12 +271,14 @@ static int wolfSSH_wolfSSH_Group16_512(void)
224271 ThreadStart (echoserver_test , & serverArgs , & serverThread );
225272 WaitTcpReady (& ready );
226273
227- WSTRNCPY (cA [clientArgc ++ ], "client" , ARGLEN );
228- WSTRNCPY (cA [clientArgc ++ ], "-u" , ARGLEN );
229- WSTRNCPY (cA [clientArgc ++ ], "jill" , ARGLEN );
274+ ADD_ARG (clientArgv , clientArgc , "client" );
275+ ADD_ARG (clientArgv , clientArgc , "-u" );
276+ ADD_ARG (clientArgv , clientArgc , "jill" );
277+ ADD_ARG (clientArgv , clientArgc , "-C" );
278+ ADD_ARG (clientArgv , clientArgc , "aes256-cbc" );
230279 #if !defined(USE_WINDOWS_API ) && !defined(WOLFSSH_ZEPHYR )
231- WSTRNCPY ( cA [ clientArgc ++ ] , "-p" , ARGLEN );
232- WSNPRINTF ( cA [ clientArgc ++ ], ARGLEN , "%d" , ready .port );
280+ ADD_ARG ( clientArgv , clientArgc , "-p" );
281+ ADD_ARG_INT ( clientArgv , clientArgc , ready .port );
233282 #endif
234283
235284 clientArgs .argc = clientArgc ;
0 commit comments