@@ -338,6 +338,149 @@ static void _whTest_Auth_DeleteUserByName(whClientContext* client,
338338 }
339339}
340340
341+ static int _whTest_Auth_BadArgs (void )
342+ {
343+ int rc = 0 ;
344+ int loggedIn = 1 ;
345+ whAuthContext ctx ;
346+ whAuthConfig config ;
347+ whAuthPermissions perms ;
348+ whUserId user_id = WH_USER_ID_INVALID ;
349+
350+ memset (& ctx , 0 , sizeof (ctx ));
351+ memset (& config , 0 , sizeof (config ));
352+ memset (& perms , 0 , sizeof (perms ));
353+
354+ WH_TEST_PRINT (" Test: Auth core bad args\n" );
355+ rc = wh_Auth_Init (NULL , & config );
356+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
357+ rc = wh_Auth_Init (& ctx , NULL );
358+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
359+
360+ rc = wh_Auth_Cleanup (NULL );
361+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
362+ rc = wh_Auth_Cleanup (& ctx );
363+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
364+
365+ rc = wh_Auth_Login (NULL , 0 , WH_AUTH_METHOD_PIN , "user" , "pin" , 3 , & loggedIn );
366+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
367+ rc = wh_Auth_Login (& ctx , 0 , WH_AUTH_METHOD_PIN , "user" , "pin" , 3 , NULL );
368+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
369+ rc = wh_Auth_LoginRequest (NULL , 0 , WH_AUTH_METHOD_PIN , "user" , "pin" , 3 , & loggedIn );
370+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
371+ rc = wh_Auth_LoginResponse (NULL , & loggedIn , & user_id , & perms );
372+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
373+
374+ rc = wh_Auth_Logout (NULL , 1 );
375+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
376+ rc = wh_Auth_Logout (& ctx , 1 );
377+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
378+
379+ rc = wh_Auth_UserAdd (& ctx , "user" , & user_id , perms , WH_AUTH_METHOD_PIN ,
380+ "pin" , 3 );
381+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
382+ rc = wh_Auth_UserDelete (& ctx , 1 );
383+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
384+ rc = wh_Auth_UserSetPermissions (& ctx , 1 , perms );
385+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
386+ rc = wh_Auth_UserGet (& ctx , "user" , & user_id , & perms );
387+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
388+ rc = wh_Auth_UserSetCredentials (& ctx , 1 , WH_AUTH_METHOD_PIN ,
389+ "pin" , 3 , "new" , 3 );
390+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
391+
392+ WH_TEST_PRINT (" Test: Auth base bad args\n" );
393+ rc = wh_AuthBase_Login (NULL , 0 , WH_AUTH_METHOD_PIN ,
394+ TEST_ADMIN_USERNAME , TEST_ADMIN_PIN , 4 , NULL , & perms , & loggedIn );
395+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
396+ rc = wh_AuthBase_Login (NULL , 0 , WH_AUTH_METHOD_NONE , NULL , NULL , 0 ,
397+ & user_id , & perms , & loggedIn );
398+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
399+
400+ rc = wh_AuthBase_Logout (NULL , 0 , WH_USER_ID_INVALID );
401+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
402+ rc = wh_AuthBase_Logout (NULL , 0 , 999 );
403+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_NOTFOUND );
404+
405+ rc = wh_AuthBase_CheckRequestAuthorization (NULL , WH_USER_ID_INVALID ,
406+ WH_MESSAGE_GROUP_AUTH , WH_MESSAGE_AUTH_ACTION_LOGIN );
407+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_OK );
408+ rc = wh_AuthBase_CheckRequestAuthorization (NULL , WH_USER_ID_INVALID ,
409+ WH_MESSAGE_GROUP_AUTH , WH_MESSAGE_AUTH_ACTION_LOGOUT );
410+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_ACCESS );
411+ rc = wh_AuthBase_CheckRequestAuthorization (NULL , WH_USER_ID_INVALID ,
412+ WH_MESSAGE_GROUP_COMM , 0 );
413+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_OK );
414+
415+ rc = wh_AuthBase_CheckKeyAuthorization (NULL , WH_USER_ID_INVALID , 1 , 0 );
416+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_ACCESS );
417+
418+ rc = wh_AuthBase_UserAdd (NULL , "baduser" , & user_id , perms ,
419+ WH_AUTH_METHOD_NONE , "x" , 1 );
420+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
421+ rc = wh_AuthBase_UserDelete (NULL , 0 , WH_USER_ID_INVALID );
422+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_NOTFOUND );
423+ rc = wh_AuthBase_UserSetPermissions (NULL , 0 , WH_USER_ID_INVALID , perms );
424+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_NOTFOUND );
425+ rc = wh_AuthBase_UserSetCredentials (NULL , WH_USER_ID_INVALID ,
426+ WH_AUTH_METHOD_PIN , NULL , 0 , "new" , 3 );
427+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
428+ rc = wh_AuthBase_UserGet (NULL , "missing" , & user_id , & perms );
429+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_NOTFOUND );
430+
431+ return WH_TEST_SUCCESS ;
432+ }
433+
434+ static int _whTest_Auth_MessageBadArgs (void )
435+ {
436+ int rc = 0 ;
437+ whMessageAuth_SimpleResponse simple = {0 };
438+ whMessageAuth_LoginRequest login_hdr = {0 };
439+ whMessageAuth_LoginRequest login_out = {0 };
440+ whMessageAuth_UserAddRequest add_hdr = {0 };
441+ whMessageAuth_UserAddRequest add_out = {0 };
442+ whMessageAuth_UserSetCredentialsRequest set_hdr = {0 };
443+
444+ WH_TEST_PRINT (" Test: Auth message bad args\n" );
445+ rc = wh_MessageAuth_TranslateSimpleResponse (0 , NULL , & simple );
446+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
447+ rc = wh_MessageAuth_TranslateSimpleResponse (0 , & simple , NULL );
448+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
449+
450+ rc = wh_MessageAuth_TranslateLoginRequest (0 , NULL , 0 , & login_out , NULL );
451+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
452+ rc = wh_MessageAuth_TranslateLoginRequest (0 , & login_hdr , 0 , & login_out , NULL );
453+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
454+
455+ memset (& login_hdr , 0 , sizeof (login_hdr ));
456+ login_hdr .auth_data_len = (uint16_t )(WH_MESSAGE_AUTH_MAX_CREDENTIALS_LEN + 1 );
457+ rc = wh_MessageAuth_TranslateLoginRequest (0 , & login_hdr , sizeof (login_hdr ),
458+ & login_out , NULL );
459+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
460+
461+ rc = wh_MessageAuth_TranslateUserAddRequest (0 , NULL , 0 , & add_out , NULL );
462+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
463+
464+ memset (& add_hdr , 0 , sizeof (add_hdr ));
465+ add_hdr .credentials_len = (uint16_t )(WH_MESSAGE_AUTH_MAX_CREDENTIALS_LEN + 1 );
466+ rc = wh_MessageAuth_TranslateUserAddRequest (0 , & add_hdr , sizeof (add_hdr ),
467+ & add_out , NULL );
468+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BUFFER_SIZE );
469+
470+ rc = wh_MessageAuth_TranslateUserSetCredentialsRequest (0 , NULL , 0 ,
471+ & set_hdr , NULL , NULL );
472+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
473+
474+ memset (& set_hdr , 0 , sizeof (set_hdr ));
475+ set_hdr .current_credentials_len = 4 ;
476+ set_hdr .new_credentials_len = 4 ;
477+ rc = wh_MessageAuth_TranslateUserSetCredentialsRequest (0 , & set_hdr ,
478+ sizeof (set_hdr ), & set_hdr , NULL , NULL );
479+ WH_TEST_ASSERT_RETURN (rc == WH_ERROR_BADARGS );
480+
481+ return WH_TEST_SUCCESS ;
482+ }
483+
341484/* Logout Tests */
342485int whTest_AuthLogout (whClientContext * client )
343486{
@@ -1015,6 +1158,11 @@ int whTest_AuthTest(whClientContext* client_ctx)
10151158{
10161159 WH_TEST_PRINT ("Testing authentication functionality...\n" );
10171160
1161+ WH_TEST_PRINT ("Running auth bad-args tests...\n" );
1162+ WH_TEST_RETURN_ON_FAIL (_whTest_Auth_BadArgs ());
1163+ WH_TEST_PRINT ("Running auth message bad-args tests...\n" );
1164+ WH_TEST_RETURN_ON_FAIL (_whTest_Auth_MessageBadArgs ());
1165+
10181166 /* Run authentication test groups */
10191167 WH_TEST_PRINT ("Running logout tests...\n" );
10201168 /* Verify client context is valid */
0 commit comments