#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include "rpcclt_openapi.h"
#include "proc_util.h"
void printUserAccountsAppMenu()
{
printf("Usage: user_accounts <test#> <arg1> <arg2> ... \n");
printf("Test 1: Set user name and password: user_accounts_example 1 <username> <password> \n");
printf("Test 2: Set access level to the user: user_accounts_example 2 <username> <level> \n");
printf("Test 3: Get the information of users configured: user_accounts_example 3 \n");
printf("Test 4: Delete the user account: user_accounts_example 4 <username> \n");
printf("Test 5: Set the enable password: user_accounts_example 5 <password> \n");
printf("Test 6: Remove enable password: user_accounts_example 6 \n");
printf("Test 7: Authenticate login user: user_accounts_example 7 <username> <password> \n");
printf("Test 8: user_accounts_example OpEN APIs sanity: user_accounts_example 8 \n");
printf("Test 9: Search the next valid ID of SSH session: user_accounts_example 9 <session type> <start session ID> \n");
printf("Test 10: Closes the session by ID: user_accounts_example 10 <session ID> \n");
printf("Test 11: Set user name, password, encryption type and encrypted: user_accounts_example 11 <username> <password> <encryption type> <encrypted>\n");
printf("Test 12: Get encryption type of user password: user_accounts_example 12 <username>\n");
printf("Test 13: Set enable password, encryption type and encrypted: user_accounts_example 13 <password> <encryption type> <encrypted> \n");
printf("Test 14: Get encryption type of enable password: user_accounts_example 14 \n");
printf("Test 15: Validates user provided password: user_accounts_example 15 <username> <password>\n");
printf("Test 16: Set the lockout count for password: user_accounts_example 16 <count>\n");
printf("Test 17: Get the lockout count for password: user_accounts_example 17\n");
printf("Test 18: Set the time for the user account to unlock: user_accounts_example 18 <time>\n");
printf("Test 19: Get the time for the user account to unlock: user_accounts_example 19\n");
printf("Test 20: Set the timer mode for the user account to unlock: user_accounts_example 20 <mode>\n");
printf("Test 21: Get the timer mode for the user account to unlock: user_accounts_example 21\n");
printf("Test 22: Authenticate login user: user_accounts_example 22 <username> <password> <line> <remoteIp>\n");
printf("Test 23: Get user lockout status: user_accounts_example 23 <username>\n");
return;
}
{
uint32_t userNameMax;
uint32_t passwordMax = OPEN_PASSWORD_SIZE;
char *userNameStr;
char *passwordStr;
{
printf("Bad return code while getting the username max. (result = %d)\n", result);
return;
}
if ((userNameStr = (char*)malloc(userNameMax)) == NULL)
{
printf("Could not allocate memory for user name.\n");
return;
}
if ((passwordStr = (char*)malloc(passwordMax)) == NULL)
{
printf("Could not allocate memory for password.\n");
free(userNameStr);
return;
}
memset(userNameStr, 0, userNameMax);
strncpy(userNameStr, userName, userNameMax-1);
userBuffDesc.
pstart = userNameStr;
userBuffDesc.
size = userNameMax-1;
memset(passwordStr, 0, passwordMax);
strncpy(passwordStr, password, passwordMax-1);
passwordBuffDesc.pstart = passwordStr;
passwordBuffDesc.size = passwordMax-1;
{
printf("Bad return code trying to set username and password. (result = %d)\n", result);
}
else
{
printf("Username and password are configured successfully\n");
}
free(userNameStr);
free(passwordStr);
return;
}
{
char str[100];
memset(str, 0, sizeof(str));
strncpy(str, userName, (sizeof(str) - 1));
userBuffDesc.pstart = str;
userBuffDesc.size = strlen(str)+1;
{
printf("Bad return code trying to set access level to user. (result = %d)\n", result);
}
else
{
printf("Access level is set successfully to the user\n");
}
return;
}
{
uint32_t userNameSize;
uint32_t maxUsers;
uint32_t level;
char *str;
printf("Getting maximum no. of users supported\n");
{
printf(" Bad return code trying to get maximum number of users supported. (result = %d)\n", result);
}
else
{
printf(" Maximum no. of users: %d\n", maxUsers);
}
{
printf("Bad return code while getting the username size. (result = %d)\n", result);
return;
}
if ((str = (char*)malloc(userNameSize)) == NULL)
{
printf("Could not allocate memory.\n");
return;
}
memset(str, 0, userNameSize);
userBuffDesc.pstart = str;
userBuffDesc.size = userNameSize;
printf("Printing the user name and level:\n");
{
{
printf(" No users found. (result = %d)\n", result);
}
else
{
printf(" Bad return code while getting first username. (result = %d)\n", result);
}
free(str);
return;
}
do
{
printf(" Username: %s", str);
{
printf(" Level: %d\n", level);
}
userBuffDesc.size = userNameSize;
free(str);
return;
}
{
char str[100];
memset(str, 0, sizeof(str));
strncpy(str, userName, (sizeof(str) - 1));
userBuffDesc.pstart = str;
userBuffDesc.size = strlen(str)+1;
{
printf("Bad return code trying to delete username. (result = %d)\n", result);
}
else
{
printf("User deleted successfully\n");
}
return;
}
{
char str[100];
memset(str, 0, sizeof(str));
strncpy(str, password, (sizeof(str) - 1));
pswdBufDesc.pstart = str;
pswdBufDesc.size = strlen(str)+1;
{
printf("Bad return code trying to set enable password. (result = %d)\n", result);
}
else
{
printf("Enable password set successfully. \n");
}
return;
}
{
{
printf("Bad return code trying to remove enable password. (result = %d)\n", result);
}
else
{
printf("Enable password removed successfully. \n");
}
return;
}
{
char str1[100];
char str2[100];
memset(str1, 0, sizeof(str1));
strncpy(str1, userName, (sizeof(str1) - 1));
userBuffDesc.pstart = str1;
userBuffDesc.size = strlen(str1)+1;
memset(str2, 0, sizeof(str2));
strncpy(str2, password, (sizeof(str2) - 1));
pswdBuffDesc.pstart = str2;
pswdBuffDesc.size = strlen(str2)+1;
{
printf("Bad return code trying to authenticate user. (result = %d)\n", result);
}
else
{
printf("User authenticated successfully. (result = %d)\n", result);
printf("Privilege level of the user: %d \n", accessLevel);
}
return;
}
{
uint32_t userNameSize = 0, passwordMinSize = 0, passwordMaxSize = 0;
uint32_t maxUsers = 0;
uint32_t val = 5;
uint32_t level = 0, encryptType = 0;
uint32_t minPswdLen = 0, maxPswdLen = 0;
char *username, *password;
printf("Testing User Accounts OpEN APIs sanity:\n");
{
printf("Bad return code while getting the username size. (result = %d)\n", result);
return;
}
{
printf("Bad return code while getting the password size. (result = %d)\n", result);
return;
}
if ((username = (char *)malloc(userNameSize)) == NULL)
{
printf("Could not allocate memory\n");
return;
}
memset(username, 0, sizeof(userNameSize));
userBuffDesc.pstart = username;
userBuffDesc.size = userNameSize;
if ((password = (char *)malloc(passwordMaxSize)) == NULL)
{
printf("Could not allocate memory\n");
free(username);
return;
}
memset(password, 0, passwordMaxSize);
pswdBuffDesc.pstart = password;
pswdBuffDesc.size = passwordMaxSize;
printf("\nTesting openapiUserNameSizeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL username size. (result = %d)\n", result);
printf("openapiUserNameSizeGet() sanity successful.\n");
printf("\nTesting openapiPasswordSizeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL minimum password length. (result = %d)\n", result);
printf("NULL maximum password length. (result = %d)\n", result);
printf("openapiPasswordSizeGet() sanity successful.\n");
printf("\nTesting openapiUserSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("NULL buff descriptor to password. (result = %d)\n", result);
printf("openapiUserSet() sanity successful.\n");
printf("\nTesting openapiUserFirstGet() \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("openapiUserFirstGet() sanity successful.\n");
printf("\nTesting openapiUserNextGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to previous user name. (result = %d)\n", result);
printf("NULL buff descriptor to next user name. (result = %d)\n", result);
printf("openapiUserNextGet() sanity successful. \n");
printf("\nTesting openapiMaxUsersSupportedGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL parameter to maximum users. (result = %d)\n", result);
printf("openapiMaxUsersSupportedGet() sanity successful.\n");
printf("\nTesting openapiUserLevelSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("Invalid user level. (result = %d)\n", result);
printf("openapiUserLevelSet() sanity successful. \n");
printf("\nTesting openapiUserLevelGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("NULL user level. (result = %d)\n", result);
printf("openapiUserLevelGet() sanity successful. \n");
printf("\nTesting openapiUserNameValidate(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("openapiUserNameValidate() sanity successful. \n");
printf("\nTesting openapiPasswordSizeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL parameter to passowrd minimum length. (result = %d)\n", result);
printf("NULL parameter to passowrd maximum length. (result = %d)\n", result);
printf("openapiPasswordSizeGet() sanity successful. \n");
printf("\nTesting openapiUserDelete(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("openapiUserDelete() sanity successful. \n");
printf("\nTesting openapiAuthenticateUser(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("NULL buff descriptor to password. (result = %d)\n", result);
printf("NULL parameter to access level. (result = %d)\n", result);
printf("openapiAuthenticateUser() sanity successful. \n");
printf("\nTesting openapiUserPasswordEncryptTypeSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("NULL buff descriptor to password. (result = %d)\n", result);
printf("Invalid user password encryption type. (result = %d)\n", result);
printf("Invalid encrypted flag value. (result = %d)\n", result);
printf("openapiUserPasswordEncryptTypeSet() sanity successful. \n");
printf("\nTesting openapiUserPasswordEncryptTypeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL buff descriptor to user name. (result = %d)\n", result);
printf("NULL user password encryption type. (result = %d)\n", result);
printf("openapiUserPasswordEncryptTypeGet() sanity successful. \n");
printf("\nTesting openapiEnablePasswordEncryptTypeSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("Invalid enable password. (result = %d)\n", result);
printf("Invalid enable password encryption type. (result = %d)\n", result);
printf("Invalid encrypted flag. (result = %d)\n", result);
printf("openapiEnablePasswordEncryptTypeSet() sanity successful. \n");
printf("\nTesting openapiEnablePasswordEncryptTypeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL enable password encryption type. (result = %d)\n", result);
printf("openapiEnablePasswordEncryptTypeGet() sanity successful. \n");
free(username);
free(password);
printf("\nTesting openapiUserLockoutAttemptsSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("Invalid lockout attempts. (result = %d)\n", result);
printf("openapiUserLockoutAttemptsSet() sanity successful. \n");
printf("\nTesting openapiUserLockoutAttemptsGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL lockout attempts. (result = %d)\n", result);
printf("openapiUserLockoutAttemptsGet() sanity successful. \n");
printf("\nTesting openapiUserUnlockTimeSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("Invalid unlock timer value. (result = %d)\n", result);
printf("openapiUserUnlockTimeSet() sanity successful. \n");
printf("\nTesting openapiUserUnlockTimeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL unlock timer value. (result = %d)\n", result);
printf("openapiUserUnlockTimeGet() sanity successful. \n");
printf("\nTesting openapiUserUnlockTimerModeSet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("Invalid unlock timer mode. (result = %d)\n", result);
printf("openapiUserUnlockTimerModeSet() sanity successful. \n");
printf("\nTesting openapiUserUnlockTimerModeGet(): \n");
printf("NULL Client Handle. (result = %d)\n", result);
printf("NULL unlock timer mode. (result = %d)\n", result);
printf("openapiUserUnlockTimerModeGet() sanity successful. \n");
return;
}
void sessionIDNextValidGetTest(
openapiClientHandle_t *clientHandle, uint32_t sessionType, uint32_t sessionID)
{
uint32_t SID = sessionID;
char buf[256];
switch (sessionLoginType)
{
case OPEN_LOGIN_TYPE_SERIAL:
sprintf(buf, "%s", "SERIAL");
break;
case OPEN_LOGIN_TYPE_TELNET:
sprintf(buf, "%s", "TELNET");
break;
case OPEN_LOGIN_TYPE_SSH:
sprintf(buf, "%s", "SSH");
break;
case OPEN_LOGIN_TYPE_HTTP:
sprintf(buf, "%s", "HTTP");
break;
case OPEN_LOGIN_TYPE_HTTPS:
sprintf(buf, "%s", "HTTPS");
break;
default:
sprintf(buf, "%s", "UNKNOWN");
break;
}
do
{
switch (result)
{
printf("The next ID of %s session is returned successfully. (ID = %u, result = %d)\n", buf, SID, result);
break;
printf("The valid next ID of %s session wasn't found. (result = %d)\n", buf, result);
break;
printf("Invalid parameter is passed. (result = %d)\n", result);
break;
default:
break;
}
}
{
switch (result)
{
printf("The logout of session ID:%u was successful. (result = %d)\n", sessionID, result);
break;
printf("The logout of session ID:%u failed. (result = %d)\n", sessionID, result);
break;
printf("Invalid parameter is passed. (result = %d)\n", result);
break;
default:
break;
}
}
{
uint32_t userNameMax;
uint32_t passwordMin;
uint32_t passwordMax;
char *userNameStr;
char *passwordStr;
{
printf("Bad return code while getting the username max. (result = %d)\n", result);
return;
}
{
printf("Bad return code while getting the password max. (result = %d)\n", result);
return;
}
if ((userNameStr = (char*)malloc(userNameMax)) == NULL)
{
printf("Could not allocate memory for user name.\n");
return;
}
if ((passwordStr = (char*)malloc(passwordMax)) == NULL)
{
printf("Could not allocate memory for password.\n");
free(userNameStr);
return;
}
memset(userNameStr, 0, userNameMax);
strncpy(userNameStr, userName, userNameMax-1);
userBuffDesc.pstart = userNameStr;
userBuffDesc.size = userNameMax-1;
memset(passwordStr, 0, passwordMax);
strncpy(passwordStr, password, passwordMax-1);
passwordBuffDesc.pstart = passwordStr;
passwordBuffDesc.size = passwordMax-1;
{
printf("Bad return code trying to set username, password and encryption type. (result = %d)\n", result);
}
else
{
printf("Username, password and encryption type are configured successfully\n");
}
free(userNameStr);
free(passwordStr);
return;
}
{
char str[OPEN_LOGIN_SIZE];
memset(str, 0, sizeof(str));
strncpy(str, userName, (sizeof(str) - 1));
userBuffDesc.pstart = str;
userBuffDesc.size = strlen(str)+1;
{
printf("Bad return code trying to get password encryption type. (result = %d)\n", result);
}
else
{
printf("Password encryption type: %d (result = %d)\n", encryptType, result);
}
return;
}
{
char str[256];
memset(str, 0, sizeof(str));
strncpy(str, password, (sizeof(str) - 1));
pswdBufDesc.pstart = str;
pswdBufDesc.size = strlen(str)+1;
{
printf("Bad return code trying to set enable password and encryption type. (result = %d)\n", result);
}
else
{
printf("Enable password and encryption type are set successfully. \n");
}
return;
}
{
{
printf("Bad return code trying to get enable password encryption type. (result = %d)\n", result);
}
else
{
printf("Enable password encryption type: %d (result = %d)\n", encryptType, result);
}
return;
}
{
{
printf("Bad return code trying to validates user provided password. (result = %d)\n", result);
}
else
{
printf("Successfully validated password for user :%s.\n", (char*)pUser->pstart);
}
return;
}
uint32_t lockoutCount)
{
{
printf("Bad return code trying to set lockout count:%d. (result = %d)\n",
lockoutCount, result);
}
else
{
printf("Lockout Count:%d is configured successfully.\n", lockoutCount);
}
return;
}
{
uint32_t lockoutCount = 0;
{
printf("Bad return code trying to get lockout count. (result = %d)\n",
result);
}
else
{
printf("Lockout Count:%d\n", lockoutCount);
}
return;
}
uint32_t unlockTime)
{
{
printf("Bad return code trying to set unlock time:%d. (result = %d)\n",
unlockTime, result);
}
else
{
printf("Unlock time:%d minutes is configured successfully.\n", unlockTime);
}
return;
}
{
uint32_t unlockTime = 0;
{
printf("Bad return code trying to get unlock time. (result = %d)\n",
result);
}
else
{
printf("Unlock Time (mins):%d\n", unlockTime);
}
return;
}
uint32_t unlockTimerMode)
{
{
printf("Bad return code trying to set unlock timer:%s. (result = %d)\n",
(unlockTimerMode ==
OPEN_ENABLE) ?
"Enable" :
"Disable", result);
}
else
{
printf(
"Unlock timer mode:%s is configured successfully.\n", (unlockTimerMode ==
OPEN_ENABLE) ?
"Enable" :
"Disable");
}
return;
}
{
uint32_t unlockTimerMode = 0;
{
printf("Bad return code trying to get unlock timer mode. (result = %d)\n",
result);
}
else
{
printf(
"Unlock Timer Mode:%s\n", (unlockTimerMode ==
OPEN_ENABLE) ?
"Enable" :
"Disable");
}
return;
}
{
switch (level)
{
return "None";
return "Read-Only";
return "ReadWrite";
default:
return "Unknown";
}
return "";
}
{
switch (authMethod)
{
return "Local";
return "Line";
return "Enable";
return "None";
return "Radius";
return "Tacacs";
default:
return "Unknown";
}
return "";
}
char *userName,
char *password,
uint32_t accessLine,
char *remoteIp)
{
char str1[OPEN_LOGIN_SIZE];
char str2[OPEN_PASSWORD_SIZE];
char str3[256];
memset(str1, 0, sizeof(str1));
memset(str2, 0, sizeof(str2));
memset(str3, 0, sizeof(str3));
snprintf(str1, sizeof(str1), "%s", userName);
userBuffDesc.pstart = str1;
userBuffDesc.size = strlen(str1) + 1;
snprintf(str2, sizeof(str2), "%s", password);
pswdBuffDesc.pstart = str2;
pswdBuffDesc.size = strlen(str2) + 1;
snprintf(str3, sizeof(str3), "%s", remoteIp);
remoteIpBuffDesc.pstart = str3;
remoteIpBuffDesc.size = strlen(str3) + 1;
accessLine, &remoteIpBuffDesc, &accessLevel,
{
printf("Bad return code trying to authenticate user:%s. (result = %d)\n",
userName, result);
}
else
{
printf("\r\nUser: %s\r\n", userName);
printf("Privilege level: %s(%d)\r\n", getAccessLevelStr(accessLevel), accessLevel);
printf("Authentication Method: %s(%d)\r\n", getAuthMethodStr(authMethod), authMethod);
printf(
"Default Password: %s(%d)\r\n", (isDefPassword ==
OPEN_TRUE) ?
"Yes" :
"No", isDefPassword);
}
return;
}
{
char str[OPEN_LOGIN_SIZE];
memset(str, 0, sizeof(str));
strncpy(str, userName, (sizeof(str) - 1));
userBuffDesc.pstart = str;
userBuffDesc.size = strlen(str)+1;
{
printf("Bad return code trying to get lockout status for user:%s. (result = %d)\n",
userName, result);
}
else
{
printf("\r\nUser: %s\r\n", userName);
printf(
"Lockout Status: %s\r\n", (
OPEN_TRUE == lockoutStatus) ?
"Yes" :
"No");
}
return;
}
int main(int argc, char **argv)
{
uint32_t testNum, arg1, arg2;
char switch_os_revision_string[100];
char usrNameBuf[128] = {0};
char pwdBuf[128] = {0};
open_buffdesc usrBufDesc = {.pstart = usrNameBuf, .size =
sizeof(usrNameBuf)};
open_buffdesc pwdBufDesc = {.pstart = pwdBuf, .size =
sizeof(pwdBuf)};
if (argc < 2)
{
printUserAccountsAppMenu();
exit(1);
}
testNum = atoi(argv[1]);
l7proc_crashlog_register();
{
printf("\nFailed to initialize RPC to OpEN. Exiting (result = %d)\n", result);
exit(2);
}
{
sleep(1);
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Starting User Accounts API example application");
printf("\n");
switch_os_revision.pstart = switch_os_revision_string;
switch_os_revision.size = sizeof(switch_os_revision_string);
printf("Network OS version = %s\n", switch_os_revision_string);
else
printf("Network OS version retrieve error\n");
printf("\n");
switch (testNum)
{
case 1:
if (argc != 4)
{
printUserAccountsAppMenu();
exit(1);
}
userNamePasswordSet(&clientHandle, argv[2], argv[3]);
break;
case 2:
if (argc != 4)
{
printUserAccountsAppMenu();
exit(1);
}
arg1 = atoi(argv[3]);
userLevelSet(&clientHandle, argv[2], arg1);
break;
case 3:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
userInfoGet(&clientHandle);
break;
case 4:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userDelete(&clientHandle, argv[2]);
break;
case 5:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
enablePasswordSet(&clientHandle, argv[2]);
break;
case 6:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
enablePasswordRemove(&clientHandle);
break;
case 7:
if (argc != 4)
{
printUserAccountsAppMenu();
exit(1);
}
authenticateUser(&clientHandle, argv[2], argv[3]);
break;
case 8:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
userAccountsOpENAPIsTestSanity(&clientHandle);
break;
case 9:
if (argc != 4)
{
printUserAccountsAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
arg2 = atoi(argv[3]);
sessionIDNextValidGetTest(&clientHandle, arg1, arg2);
break;
case 10:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
arg1 = atoi(argv[2]);
sessionLogoutTest(&clientHandle, arg1);
break;
case 11:
if (argc != 6)
{
printUserAccountsAppMenu();
exit(1);
}
arg1 = atoi(argv[4]);
arg2 = atoi(argv[5]);
userPasswordEncryptTypeSet(&clientHandle, argv[2], argv[3], arg1, arg2);
break;
case 12:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userPasswordEncryptTypeGet(&clientHandle, argv[2]);
break;
case 13:
if (argc != 5)
{
printUserAccountsAppMenu();
exit(1);
}
arg1 = atoi(argv[3]);
arg2 = atoi(argv[4]);
enablePasswordEncryptTypeSet(&clientHandle, argv[2], arg1, arg2);
break;
case 14:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
enablePasswordEncryptTypeGet(&clientHandle);
break;
case 15:
if (argc != 4)
{
printUserAccountsAppMenu();
exit(1);
}
memset(usrNameBuf, 0, sizeof(usrNameBuf));
strncpy(usrNameBuf, argv[2], sizeof(usrNameBuf)-1);
usrBufDesc.size = strlen(usrBufDesc.pstart) + 1;
memset(pwdBuf, 0, sizeof(pwdBuf));
strncpy(pwdBuf, argv[3], sizeof(pwdBuf)-1);
pwdBufDesc.size = strlen(pwdBufDesc.pstart) + 1;
validateUserPassword(&clientHandle, &usrBufDesc, &pwdBufDesc);
break;
case 16:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userLockoutAttemptsSet(&clientHandle, atoi(argv[2]));
break;
case 17:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
userLockoutAttemptsGet(&clientHandle);
break;
case 18:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userUnlockTimeSet(&clientHandle, atoi(argv[2]));
break;
case 19:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
userUnlockTimeGet(&clientHandle);
break;
case 20:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userUnlockTimerModeSet(&clientHandle, atoi(argv[2]));
break;
case 21:
if (argc != 2)
{
printUserAccountsAppMenu();
exit(1);
}
userUnlockTimerModeGet(&clientHandle);
break;
case 22:
if (argc != 6)
{
printUserAccountsAppMenu();
exit(1);
}
userAuthentication(&clientHandle, argv[2], argv[3], atoi(argv[4]),argv[5]);
break;
case 23:
if (argc != 3)
{
printUserAccountsAppMenu();
exit(1);
}
userLockoutStatusGet(&clientHandle, argv[2]);
break;
default:
printUserAccountsAppMenu();
break;
}
L7PROC_LOGF(L7PROC_LOG_SEVERITY_INFO, 0, "Stopping User Accounts API example application");
return 0;
}