Moving micasa 1.5 trunk to Novell forge.
This commit is contained in:
BIN
c_test/c_sample/CSample.ncb
Normal file
BIN
c_test/c_sample/CSample.ncb
Normal file
Binary file not shown.
21
c_test/c_sample/CSample.sln
Normal file
21
c_test/c_sample/CSample.sln
Normal file
@@ -0,0 +1,21 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NativeSample", "NativeSample.vcproj", "{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}.Debug.ActiveCfg = Debug|Win32
|
||||
{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}.Debug.Build.0 = Debug|Win32
|
||||
{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}.Release.ActiveCfg = Release|Win32
|
||||
{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}.Release.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
c_test/c_sample/CSample.suo
Normal file
BIN
c_test/c_sample/CSample.suo
Normal file
Binary file not shown.
154
c_test/c_sample/CSample.vcproj
Normal file
154
c_test/c_sample/CSample.vcproj
Normal file
@@ -0,0 +1,154 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="cSample"
|
||||
ProjectGUID="{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="2"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa_mdd.lib odbc32.lib odbccp32.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\bin\w32\mdd"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Debug/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="4"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa.lib odbc32.lib odbccp32.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\lib\w32"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Release/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\cSample.c">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa_mgmd.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa_types.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\sscs_utf8.h">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
19
c_test/c_sample/Makefile
Normal file
19
c_test/c_sample/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = cSample
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
BIN_NAME = $(TARGET).exe
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target
|
||||
444
c_test/c_sample/cSample.c
Normal file
444
c_test/c_sample/cSample.c
Normal file
@@ -0,0 +1,444 @@
|
||||
/**************************************************************************
|
||||
Copyright (c) [2005] Novell, Inc. All Rights Reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
version 2.1 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, if not, contact Novell, Inc.
|
||||
To contact Novell about this file by physical or electronic mail,
|
||||
you may find current contact information at www.novell.com.
|
||||
**************************************************************************/
|
||||
|
||||
/* Sample code for C Language miCASA APIs */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#ifdef WIN32
|
||||
#include <conio.h>
|
||||
#include <windows.h>
|
||||
#else
|
||||
#define getch(x) getchar(x);
|
||||
#endif
|
||||
|
||||
|
||||
#include <time.h>
|
||||
#include <string.h>
|
||||
#include <micasa_mgmd.h>
|
||||
#include <sscs_utf8.h>
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
void Pause()
|
||||
{
|
||||
printf("\nPress a key ==>\n");
|
||||
getch();
|
||||
} /* end of Pause */
|
||||
|
||||
|
||||
|
||||
void AddSecret()
|
||||
{
|
||||
int rcode = 0;
|
||||
char inputID[20];
|
||||
char inputUsername[20];
|
||||
char inputPassword[20];
|
||||
|
||||
SSCS_BASIC_CREDENTIAL credential = {0};
|
||||
SSCS_SECRET_ID_T appSecretId = {0};
|
||||
SSCS_SECRET_ID_T sharedSecretId = {0};
|
||||
|
||||
SSCS_EXT_T ext = {0};
|
||||
|
||||
printf("Enter secretID: ");
|
||||
gets(inputID);
|
||||
|
||||
printf("Enter Username: ");
|
||||
gets(inputUsername);
|
||||
|
||||
printf("Enter Password: ");
|
||||
gets(inputPassword);
|
||||
|
||||
if ((sscs_Utf8Strlen(inputID) > 0) &&
|
||||
(sscs_Utf8Strlen(inputUsername) > 0) &&
|
||||
(sscs_Utf8Strlen(inputPassword) > 0))
|
||||
{
|
||||
appSecretId.len = sscs_Utf8Strlen(inputID) + 1;
|
||||
sscs_Utf8Strcpy(appSecretId.id, inputID);
|
||||
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
sscs_Utf8Strcpy(credential.username, inputUsername);
|
||||
credential.unLen = sscs_Utf8Strlen(inputUsername) + 1;
|
||||
|
||||
sscs_Utf8Strcpy(credential.password, inputPassword);
|
||||
credential.pwordLen = sscs_Utf8Strlen(inputPassword) + 1;
|
||||
|
||||
// sets the credential for this app
|
||||
rcode = miCASASetCredential(
|
||||
0,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
if (rcode)
|
||||
{
|
||||
printf("Add Secret returned %d\r\n", rcode);
|
||||
Pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DisplaySecret()
|
||||
{
|
||||
|
||||
int rcode = 0;
|
||||
char inputID[20];
|
||||
|
||||
SSCS_BASIC_CREDENTIAL credential = {0};
|
||||
SSCS_SECRET_ID_T appSecretId = {0};
|
||||
SSCS_SECRET_ID_T sharedSecretId = {0};
|
||||
|
||||
SSCS_EXT_T ext = {0};
|
||||
|
||||
printf("Enter secretID to display: ");
|
||||
gets(inputID);
|
||||
|
||||
if (sscs_Utf8Strlen(inputID) > 0)
|
||||
{
|
||||
appSecretId.len = sscs_Utf8Strlen(inputID) + 1;
|
||||
sscs_Utf8Strcpy(appSecretId.id, inputID);
|
||||
|
||||
// set name type we desire
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
|
||||
// gets the credential
|
||||
rcode = miCASAGetCredential(
|
||||
0,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
if (rcode == NSSCS_SUCCESS)
|
||||
{
|
||||
printf("Credential for: %s\r\n", appSecretId.id);
|
||||
printf("Username: %s\r\n", credential.username);
|
||||
printf("Password: %s\r\n", credential.password);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Error: %d\r\n", rcode);
|
||||
Pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RemoveSecret()
|
||||
{
|
||||
int rcode = 0;
|
||||
char inputID[20];
|
||||
|
||||
SSCS_BASIC_CREDENTIAL credential = {0};
|
||||
SSCS_SECRET_ID_T appSecretId = {0};
|
||||
SSCS_SECRET_ID_T sharedSecretId = {0};
|
||||
|
||||
SSCS_EXT_T ext = {0};
|
||||
|
||||
printf("Enter secretID to remove: ");
|
||||
gets(inputID);
|
||||
|
||||
if (sscs_Utf8Strlen(inputID) > 0)
|
||||
{
|
||||
appSecretId.len = sscs_Utf8Strlen(inputID) + 1;
|
||||
sscs_Utf8Strcpy(appSecretId.id, inputID);
|
||||
|
||||
// set name type we desire
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
|
||||
// gets the credential
|
||||
rcode = miCASARemoveCredential(
|
||||
0,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
|
||||
if (rcode == NSSCS_SUCCESS)
|
||||
{
|
||||
printf("Credential %s removed\r\n", inputID);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Error: %d\r\n", rcode);
|
||||
Pause();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void RunTest()
|
||||
{
|
||||
{
|
||||
SSCS_BASIC_CREDENTIAL credential = {0};
|
||||
SSCS_SECRET_ID_T appSecretId = {0};
|
||||
|
||||
int rcode = 0;
|
||||
int iFlags = 0;
|
||||
|
||||
sscs_Utf8Strcpy(appSecretId.id, "NativeC.AppSecretID");
|
||||
appSecretId.len = sscs_Utf8Strlen(appSecretId.id) + 1;
|
||||
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
sscs_Utf8Strcpy((char*)credential.username, "SampleUsername");
|
||||
credential.unLen = sscs_Utf8Strlen(credential.username) + 1;
|
||||
|
||||
sscs_Utf8Strcpy((char*)credential.password, "SamplePassword");
|
||||
credential.pwordLen = sscs_Utf8Strlen(credential.password) + 1;
|
||||
|
||||
printf("Setting %s\r\n", appSecretId.id);
|
||||
printf(" Username: %s\r\n", credential.username);
|
||||
printf(" Password: %s\r\n", credential.password);
|
||||
|
||||
// sets the credential for this app
|
||||
rcode = miCASASetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
credential.unFlags = USERNAME_TYPE_EMAIL_F;
|
||||
sscs_Utf8Strcpy((char*)credential.username, "Username@novell.com");
|
||||
credential.unLen = sscs_Utf8Strlen(credential.username) + 1;
|
||||
|
||||
sscs_Utf8Strcpy((char*)credential.password, "SamplePassword");
|
||||
credential.pwordLen = sscs_Utf8Strlen(credential.password) + 1;
|
||||
|
||||
// sets the credential for this app
|
||||
rcode = miCASASetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
credential.unFlags = USERNAME_TYPE_LDAP_DN_F;
|
||||
sscs_Utf8Strcpy((char*)credential.username, "cn=user,o=novell");
|
||||
credential.unLen = sscs_Utf8Strlen(credential.username) + 1;
|
||||
|
||||
sscs_Utf8Strcpy((char*)credential.password, "SamplePassword");
|
||||
credential.pwordLen = sscs_Utf8Strlen(credential.password) + 1;
|
||||
|
||||
// sets the credential for this app
|
||||
rcode = miCASASetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
credential.unFlags = USERNAME_TYPE_NDS_DN_F;
|
||||
sscs_Utf8Strcpy((char*)credential.username, "Username.novell");
|
||||
credential.unLen = sscs_Utf8Strlen(credential.username) + 1;
|
||||
|
||||
sscs_Utf8Strcpy((char*)credential.password, "SamplePassword");
|
||||
credential.pwordLen = sscs_Utf8Strlen(credential.password) + 1;
|
||||
|
||||
// sets the credential for this app
|
||||
rcode = miCASASetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
|
||||
|
||||
// get the stuff back now
|
||||
memset(&credential, 0, sizeof(SSCS_BASIC_CREDENTIAL));
|
||||
|
||||
credential.unLen = NSSCS_MAX_USERID_LEN;
|
||||
credential.pwordLen = NSSCS_MAX_PWORD_LEN;
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
|
||||
// gets the specific credential
|
||||
rcode = miCASAGetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
|
||||
if (rcode == NSSCS_SUCCESS)
|
||||
{
|
||||
printf("Getting Credential: %s\r\n", appSecretId.id);
|
||||
printf(" Username: %s\r\n", credential.username);
|
||||
printf(" Password: %s\r\n", credential.password);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("ERROR getting Credential: %d\r\n", rcode);
|
||||
Pause();
|
||||
}
|
||||
|
||||
printf("Removing Credential\r\n");
|
||||
rcode = miCASARemoveCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
NULL
|
||||
);
|
||||
|
||||
if (rcode != NSSCS_SUCCESS)
|
||||
printf("Error removing Credential: %d\r\n", rcode);
|
||||
|
||||
|
||||
// get the stuff back now
|
||||
memset(&credential, 0, sizeof(SSCS_BASIC_CREDENTIAL));
|
||||
|
||||
credential.unLen = NSSCS_MAX_USERID_LEN;
|
||||
credential.pwordLen = NSSCS_MAX_PWORD_LEN;
|
||||
credential.unFlags = USERNAME_TYPE_CN_F;
|
||||
|
||||
// gets the specific credential
|
||||
rcode = miCASAGetCredential(
|
||||
iFlags,
|
||||
&appSecretId,
|
||||
NULL,
|
||||
SSCS_CRED_TYPE_BASIC_F,
|
||||
&credential,
|
||||
NULL
|
||||
);
|
||||
|
||||
|
||||
if (rcode == NSSCS_E_INVALID_SECRET_ID)
|
||||
printf("Credential does not exist as expected -- SUCCESS\r\n");
|
||||
else
|
||||
{
|
||||
printf("Credential exists, when it should not -- FAILED\r\n");
|
||||
Pause();
|
||||
}
|
||||
|
||||
|
||||
|
||||
printf("Test completed\r\n");
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
void RunTests()
|
||||
{
|
||||
|
||||
char runtimes[6];
|
||||
int iCount = 1;
|
||||
int iTemp = 0;
|
||||
int i = 0;
|
||||
|
||||
printf("Enter number interations to run (default 1): ");
|
||||
gets(runtimes);
|
||||
|
||||
iTemp = atoi(runtimes);
|
||||
if (iTemp > 1)
|
||||
iCount=iTemp;
|
||||
|
||||
for (i=0; i<iCount; i++)
|
||||
{
|
||||
RunTest();
|
||||
printf("\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void displayMenu()
|
||||
{
|
||||
|
||||
int c;
|
||||
|
||||
while (1)
|
||||
{
|
||||
printf("\r\n");
|
||||
printf("********** Menu **********\r\n");
|
||||
printf("* 1. Add secret *\r\n");
|
||||
printf("* 2. Display secret *\r\n");
|
||||
printf("* 3. Remove secret *\r\n");
|
||||
printf("* 4. Run automated test *\r\n");
|
||||
printf("* 5. Quit *\r\n");
|
||||
printf("**************************\r\n");
|
||||
|
||||
|
||||
printf("Select option and press Enter\r\n");
|
||||
c = getchar();
|
||||
|
||||
// get return
|
||||
getchar();
|
||||
|
||||
if (c == '5')
|
||||
return;
|
||||
else if (c == '1')
|
||||
AddSecret();
|
||||
else if (c == '2')
|
||||
DisplaySecret();
|
||||
else if (c == '3')
|
||||
RemoveSecret();
|
||||
else if (c == '4')
|
||||
RunTests();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* NAME - main
|
||||
*
|
||||
* DESCRIPTION
|
||||
* miCASA test program.
|
||||
*
|
||||
*/
|
||||
int main
|
||||
(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
{ /* beginning of the call */
|
||||
/* ########################## DECLARATIONS START HERE ######################### */
|
||||
|
||||
|
||||
/* ############################## CODE STARTS HERE ############################ */
|
||||
|
||||
printf("***************************************************************\r\n");
|
||||
printf("************** miCASA Sample program in C **************\r\n");
|
||||
printf("***************************************************************\r\n");
|
||||
displayMenu();
|
||||
exit(0);
|
||||
|
||||
|
||||
/* ########################## CODE ENDS HERE ##################### */
|
||||
}
|
||||
12
c_test/c_sample/link.w32
Normal file
12
c_test/c_sample/link.w32
Normal file
@@ -0,0 +1,12 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/md/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/micasa.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Release/cSample.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Release/cSample.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);\
|
||||
12
c_test/c_sample/link_mdd.w32
Normal file
12
c_test/c_sample/link_mdd.w32
Normal file
@@ -0,0 +1,12 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/mdd/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/micasa_mdd.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Debug/cSample.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Debug/cSample.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);
|
||||
3
c_test/c_sample/objs.lux
Normal file
3
c_test/c_sample/objs.lux
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
cSample.$(O)
|
||||
|
||||
3
c_test/c_sample/objs.w32
Normal file
3
c_test/c_sample/objs.w32
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
cSample.$(O)
|
||||
|
||||
26
c_test/c_sample/target
Normal file
26
c_test/c_sample/target
Normal file
@@ -0,0 +1,26 @@
|
||||
include link$(xtra).$(PLAT)
|
||||
|
||||
all : $(BIN_NAME)
|
||||
|
||||
$(BIN_NAME) : $(OBJS)
|
||||
@echo Linking $@ ...
|
||||
@$(LINK_DEF_BLD)
|
||||
$(LINK)
|
||||
$(RM) $(LINKDEF)
|
||||
$(TSTPACK)
|
||||
@echo
|
||||
|
||||
install :
|
||||
@echo client Installing $< ...
|
||||
|
||||
## The binaries
|
||||
ifeq ($(PLAT),w32)
|
||||
$(CP) Release/$(BIN_NAME) $(INSTALLDIR)tools/w32
|
||||
else
|
||||
$(CP) $(BINDIR)$(basename $(BIN_NAME)).$(BIN) $(INSTALLDIR)tools/lux
|
||||
endif
|
||||
|
||||
clean :
|
||||
@echo Cleaning ...
|
||||
$(RM) *.err *.bak *.i *.res $(OBJDIR)*.$(O) $(OBJDIR)*.res Release/*.*
|
||||
|
||||
BIN
c_test/c_sharp_sample/App.ico
Normal file
BIN
c_test/c_sharp_sample/App.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.1 KiB |
76
c_test/c_sharp_sample/AssemblyInfo.cs
Normal file
76
c_test/c_sharp_sample/AssemblyInfo.cs
Normal file
@@ -0,0 +1,76 @@
|
||||
/**************************************************************************
|
||||
Copyright (c) [2005] Novell, Inc. All Rights Reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
version 2.1 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, if not, contact Novell, Inc.
|
||||
To contact Novell about this file by physical or electronic mail,
|
||||
you may find current contact information at www.novell.com.
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
|
||||
//
|
||||
// General Information about an assembly is controlled through the following
|
||||
// set of attributes. Change these attribute values to modify the information
|
||||
// associated with an assembly.
|
||||
//
|
||||
[assembly: AssemblyTitle("")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("")]
|
||||
[assembly: AssemblyCopyright("")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
//
|
||||
// Version information for an assembly consists of the following four values:
|
||||
//
|
||||
// Major Version
|
||||
// Minor Version
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
// You can specify all the values or you can default the Revision and Build Numbers
|
||||
// by using the '*' as shown below:
|
||||
|
||||
[assembly: AssemblyVersion("1.0.*")]
|
||||
|
||||
//
|
||||
// In order to sign your assembly you must specify a key to use. Refer to the
|
||||
// Microsoft .NET Framework documentation for more information on assembly signing.
|
||||
//
|
||||
// Use the attributes below to control which key is used for signing.
|
||||
//
|
||||
// Notes:
|
||||
// (*) If no key is specified, the assembly is not signed.
|
||||
// (*) KeyName refers to a key that has been installed in the Crypto Service
|
||||
// Provider (CSP) on your machine. KeyFile refers to a file which contains
|
||||
// a key.
|
||||
// (*) If the KeyFile and the KeyName values are both specified, the
|
||||
// following processing occurs:
|
||||
// (1) If the KeyName can be found in the CSP, that key is used.
|
||||
// (2) If the KeyName does not exist and the KeyFile does exist, the key
|
||||
// in the KeyFile is installed into the CSP and used.
|
||||
// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility.
|
||||
// When specifying the KeyFile, the location of the KeyFile should be
|
||||
// relative to the project output directory which is
|
||||
// %Project Directory%\obj\<configuration>. For example, if your KeyFile is
|
||||
// located in the project directory, you would specify the AssemblyKeyFile
|
||||
// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")]
|
||||
// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework
|
||||
// documentation for more information on this.
|
||||
//
|
||||
[assembly: AssemblyDelaySign(false)]
|
||||
[assembly: AssemblyKeyFile("")]
|
||||
[assembly: AssemblyKeyName("")]
|
||||
20
c_test/c_sharp_sample/Makefile
Normal file
20
c_test/c_sharp_sample/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = cSharpSample
|
||||
CS_NAME = $(TARGET)$(xtra).exe
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include src.$(PLAT)
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target.cs
|
||||
257
c_test/c_sharp_sample/cSharpSample.cs
Normal file
257
c_test/c_sharp_sample/cSharpSample.cs
Normal file
@@ -0,0 +1,257 @@
|
||||
/**************************************************************************
|
||||
Copyright (c) [2005] Novell, Inc. All Rights Reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
version 2.1 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, if not, contact Novell, Inc.
|
||||
To contact Novell about this file by physical or electronic mail,
|
||||
you may find current contact information at www.novell.com.
|
||||
**************************************************************************/
|
||||
|
||||
using System;
|
||||
using Novell.CASA;
|
||||
|
||||
namespace cSharpTest
|
||||
{
|
||||
/// <summary>
|
||||
/// Summary description for Class1.
|
||||
/// </summary>
|
||||
class Class1
|
||||
{
|
||||
|
||||
private static string APPID = "cSharpAppID";
|
||||
//private static string SHARED_ID = "cSharp_SharedID";
|
||||
private static string USERNAME = "Admin.nov<6F>ll";
|
||||
private static string PASSWORD = "PasswordFor<6F>Admin";
|
||||
|
||||
/// <summary>
|
||||
/// The main entry point for the application.
|
||||
/// </summary>
|
||||
[STAThread]
|
||||
static void Main(string[] args)
|
||||
{
|
||||
Console.WriteLine("**************************************************");
|
||||
Console.WriteLine("********** miCASA Sample written in C# ***********");
|
||||
Console.WriteLine("**************************************************");
|
||||
ShowMenu();
|
||||
}
|
||||
|
||||
|
||||
static private void ShowMenu()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
Console.WriteLine();
|
||||
Console.WriteLine("********** Menu ***********");
|
||||
Console.WriteLine("* 1. Add secret *");
|
||||
Console.WriteLine("* 2. Display secret *");
|
||||
Console.WriteLine("* 3. Remove secret *");
|
||||
Console.WriteLine("* 4. Run automated test *");
|
||||
Console.WriteLine("* 5. Quit *");
|
||||
Console.WriteLine("***************************");
|
||||
|
||||
Console.WriteLine("Select option and Press enter");
|
||||
String line = Console.ReadLine();
|
||||
|
||||
if (line.Length > 0)
|
||||
{
|
||||
char[] c = line.Substring(0, 1).ToCharArray();
|
||||
if (c.Length > 0)
|
||||
{
|
||||
if (c[0].Equals('5'))
|
||||
break;
|
||||
if (c[0].Equals('1'))
|
||||
AddSecret();
|
||||
else if (c[0].Equals('2'))
|
||||
DisplaySecret();
|
||||
else if (c[0].Equals('3'))
|
||||
RemoveSecret();
|
||||
else if (c[0].Equals('4'))
|
||||
RunTest();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static private void AddSecret()
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
Console.Write("Enter SecretID: ");
|
||||
String sID = Console.ReadLine();
|
||||
|
||||
Console.Write("Enter Username: ");
|
||||
String sUsername = Console.ReadLine();
|
||||
|
||||
Console.Write("Enter Password: ");
|
||||
String sPassword = Console.ReadLine();
|
||||
|
||||
if (sID != null && sUsername != null && sPassword != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
//miCASA.SetBasicCredential(sID, null, sUsername, sPassword);
|
||||
miCASA.SetCredential(0, sID, null, miCASA.USERNAME_TYPE_CN_F, sUsername, sPassword);
|
||||
}
|
||||
catch (miCasaException e)
|
||||
{
|
||||
Console.WriteLine(e.getMessage());
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Invalid input, try again");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static private void RemoveSecret()
|
||||
{
|
||||
Console.Write("Enter SecretID to remove: ");
|
||||
String sID = Console.ReadLine();
|
||||
if (sID != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
miCASA.RemoveBasicCredential(sID, null);
|
||||
}
|
||||
catch (miCasaException e)
|
||||
{
|
||||
Console.WriteLine(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static private void DisplaySecret()
|
||||
{
|
||||
Console.Write("Enter SecretID to display: ");
|
||||
String sID = Console.ReadLine();
|
||||
if (sID != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
BasicCredential bc;
|
||||
//bc = miCASA.GetBasicCredential(sID, null);
|
||||
bc = miCASA.GetCredential(0, sID, null, miCASA.USERNAME_TYPE_CN_F);
|
||||
if (bc != null)
|
||||
{
|
||||
Console.WriteLine("Data for "+sID);
|
||||
|
||||
Console.WriteLine("------------------------");
|
||||
Console.WriteLine("Username:" + bc.GetUsername());
|
||||
Console.WriteLine("Password:" + bc.GetPassword());
|
||||
Console.WriteLine("------------------------");
|
||||
Console.WriteLine("Press the Enter key to continue");
|
||||
Console.ReadLine();
|
||||
|
||||
}
|
||||
else
|
||||
Console.WriteLine(sID + " not found");
|
||||
}
|
||||
catch (miCasaException e)
|
||||
{
|
||||
Console.WriteLine(e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static private void RunTest()
|
||||
{
|
||||
|
||||
int count = 1;
|
||||
Console.Write("Enter times to run: ");
|
||||
String sCount = Console.ReadLine();
|
||||
|
||||
try
|
||||
{
|
||||
int icount = int.Parse(sCount);
|
||||
count = icount;
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
for (int i=0; i<count; i++)
|
||||
{
|
||||
Console.Write("Setting Credential .....");
|
||||
try
|
||||
{
|
||||
miCASA.SetBasicCredential(APPID, null, USERNAME, PASSWORD);
|
||||
Console.WriteLine("Succeeded");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine("Failed");
|
||||
Console.WriteLine(e.ToString());
|
||||
Console.WriteLine(e.StackTrace.ToString());
|
||||
return;
|
||||
}
|
||||
|
||||
Console.WriteLine("");
|
||||
|
||||
// did we get it the credential back
|
||||
Console.WriteLine("Getting Credential .....");
|
||||
try
|
||||
{
|
||||
BasicCredential bc = miCASA.GetBasicCredential(APPID, null);
|
||||
if (bc != null)
|
||||
{
|
||||
if (bc.GetUsername().Equals(USERNAME))
|
||||
Console.WriteLine(" Username matched : "+bc.GetUsername());
|
||||
if (bc.GetPassword().Equals(PASSWORD))
|
||||
Console.WriteLine(" Password matched : "+bc.GetPassword());
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine("Failed");
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
Console.WriteLine("\r\nRemoving Credential");
|
||||
miCASA.RemoveBasicCredential(APPID, null);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Console.WriteLine(e.ToString());
|
||||
}
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
BasicCredential bc = miCASA.GetBasicCredential(APPID, null);
|
||||
if (bc != null)
|
||||
{
|
||||
Console.WriteLine("\r\nCredential exists and should not - FAILED!");
|
||||
}
|
||||
else
|
||||
Console.WriteLine("\r\nCredential not found as expected - SUCCESS!");
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
Console.WriteLine("\r\n Credential not found as expected - SUCCESS!");
|
||||
}
|
||||
|
||||
Console.WriteLine("Test completed ");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
109
c_test/c_sharp_sample/cSharpSample.csproj
Normal file
109
c_test/c_sharp_sample/cSharpSample.csproj
Normal file
@@ -0,0 +1,109 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP
|
||||
ProjectType = "Local"
|
||||
ProductVersion = "7.10.3077"
|
||||
SchemaVersion = "2.0"
|
||||
ProjectGuid = "{3FB57160-F475-4650-A45C-19D020661A2D}"
|
||||
>
|
||||
<Build>
|
||||
<Settings
|
||||
ApplicationIcon = "App.ico"
|
||||
AssemblyKeyContainerName = ""
|
||||
AssemblyName = "CSharpSample"
|
||||
AssemblyOriginatorKeyFile = ""
|
||||
DefaultClientScript = "JScript"
|
||||
DefaultHTMLPageLayout = "Grid"
|
||||
DefaultTargetSchema = "IE50"
|
||||
DelaySign = "false"
|
||||
OutputType = "Exe"
|
||||
PreBuildEvent = ""
|
||||
PostBuildEvent = ""
|
||||
RootNamespace = "cSharpTest"
|
||||
RunPostBuildEvent = "OnBuildSuccess"
|
||||
StartupObject = ""
|
||||
>
|
||||
<Config
|
||||
Name = "Debug"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "DEBUG;TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "true"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "false"
|
||||
OutputPath = "bin\Debug\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
AllowUnsafeBlocks = "false"
|
||||
BaseAddress = "285212672"
|
||||
CheckForOverflowUnderflow = "false"
|
||||
ConfigurationOverrideFile = ""
|
||||
DefineConstants = "TRACE"
|
||||
DocumentationFile = ""
|
||||
DebugSymbols = "false"
|
||||
FileAlignment = "4096"
|
||||
IncrementalBuild = "false"
|
||||
NoStdLib = "false"
|
||||
NoWarn = ""
|
||||
Optimize = "true"
|
||||
OutputPath = "bin\Release\"
|
||||
RegisterForComInterop = "false"
|
||||
RemoveIntegerChecks = "false"
|
||||
TreatWarningsAsErrors = "false"
|
||||
WarningLevel = "4"
|
||||
/>
|
||||
</Settings>
|
||||
<References>
|
||||
<Reference
|
||||
Name = "System"
|
||||
AssemblyName = "System"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.Data"
|
||||
AssemblyName = "System.Data"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.Data.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "System.XML"
|
||||
AssemblyName = "System.Xml"
|
||||
HintPath = "C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll"
|
||||
/>
|
||||
<Reference
|
||||
Name = "Novell.CASA.miCASAWrapper"
|
||||
Project = "{E21DD887-22F4-4935-9851-409715F663B0}"
|
||||
Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
|
||||
/>
|
||||
</References>
|
||||
</Build>
|
||||
<Files>
|
||||
<Include>
|
||||
<File
|
||||
RelPath = "App.ico"
|
||||
BuildAction = "Content"
|
||||
/>
|
||||
<File
|
||||
RelPath = "AssemblyInfo.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
<File
|
||||
RelPath = "cSharpSample.cs"
|
||||
SubType = "Code"
|
||||
BuildAction = "Compile"
|
||||
/>
|
||||
</Include>
|
||||
</Files>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
48
c_test/c_sharp_sample/cSharpSample.csproj.user
Normal file
48
c_test/c_sharp_sample/cSharpSample.csproj.user
Normal file
@@ -0,0 +1,48 @@
|
||||
<VisualStudioProject>
|
||||
<CSHARP LastOpenVersion = "7.10.3077" >
|
||||
<Build>
|
||||
<Settings ReferencePath = "D:\ccm\SSClient\SecretStoreClient_src\c_sharp\NSSCSWrapper\bin\Debug\;D:\ccm\SSClient\SecretStoreClient_src\c_sharp\NSSCSWrapper\bin\Release\" >
|
||||
<Config
|
||||
Name = "Debug"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = "1"
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "true"
|
||||
/>
|
||||
<Config
|
||||
Name = "Release"
|
||||
EnableASPDebugging = "false"
|
||||
EnableASPXDebugging = "false"
|
||||
EnableUnmanagedDebugging = "false"
|
||||
EnableSQLServerDebugging = "false"
|
||||
RemoteDebugEnabled = "false"
|
||||
RemoteDebugMachine = ""
|
||||
StartAction = "Project"
|
||||
StartArguments = "2"
|
||||
StartPage = ""
|
||||
StartProgram = ""
|
||||
StartURL = ""
|
||||
StartWorkingDirectory = ""
|
||||
StartWithIE = "false"
|
||||
/>
|
||||
</Settings>
|
||||
</Build>
|
||||
<OtherProjectSettings
|
||||
CopyProjectDestinationFolder = ""
|
||||
CopyProjectUncPath = ""
|
||||
CopyProjectOption = "0"
|
||||
ProjectView = "ProjectFiles"
|
||||
ProjectTrust = "0"
|
||||
/>
|
||||
</CSHARP>
|
||||
</VisualStudioProject>
|
||||
|
||||
21
c_test/c_sharp_sample/cSharpSample.sln
Normal file
21
c_test/c_sharp_sample/cSharpSample.sln
Normal file
@@ -0,0 +1,21 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "cSharpSample", "cSharpSample.csproj", "{3FB57160-F475-4650-A45C-19D020661A2D}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{3FB57160-F475-4650-A45C-19D020661A2D}.Debug.ActiveCfg = Debug|.NET
|
||||
{3FB57160-F475-4650-A45C-19D020661A2D}.Debug.Build.0 = Debug|.NET
|
||||
{3FB57160-F475-4650-A45C-19D020661A2D}.Release.ActiveCfg = Release|.NET
|
||||
{3FB57160-F475-4650-A45C-19D020661A2D}.Release.Build.0 = Release|.NET
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
c_test/c_sharp_sample/cSharpSample.suo
Normal file
BIN
c_test/c_sharp_sample/cSharpSample.suo
Normal file
Binary file not shown.
8
c_test/c_sharp_sample/objs.lux
Normal file
8
c_test/c_sharp_sample/objs.lux
Normal file
@@ -0,0 +1,8 @@
|
||||
OBJS=\
|
||||
BasicCredential\
|
||||
miCASA\
|
||||
AssemblyInfo\
|
||||
NativeCalls\
|
||||
Secret\
|
||||
SecretStore
|
||||
|
||||
4
c_test/c_sharp_sample/objs.w32
Normal file
4
c_test/c_sharp_sample/objs.w32
Normal file
@@ -0,0 +1,4 @@
|
||||
OBJS=\
|
||||
cSharpSample\
|
||||
AssemblyInfo
|
||||
|
||||
8
c_test/c_sharp_sample/src.lux
Normal file
8
c_test/c_sharp_sample/src.lux
Normal file
@@ -0,0 +1,8 @@
|
||||
SRC=\
|
||||
BasicCredential.cs\
|
||||
miCASA.cs\
|
||||
AssemblyInfo.cs\
|
||||
NativeCalls.cs\
|
||||
Secret.cs\
|
||||
SecretStore.cs
|
||||
|
||||
3
c_test/c_sharp_sample/src.w32
Normal file
3
c_test/c_sharp_sample/src.w32
Normal file
@@ -0,0 +1,3 @@
|
||||
SRC=\
|
||||
cSharpSample.cs\
|
||||
AssemblyInfo.cs
|
||||
166
c_test/dev_test/enumerate.c
Normal file
166
c_test/dev_test/enumerate.c
Normal file
@@ -0,0 +1,166 @@
|
||||
#include "sscs_cache.h"
|
||||
#include <wchar.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define MAX_ID_LIST_BUF 4*1024
|
||||
#define MAX_SECRET_VAL_LEN 1024
|
||||
#define MAX_RETURNED_IDS 10
|
||||
|
||||
void enumerateIDs(SSCS_SECRETSTORE_HANDLE_T *ssHandle,int type,
|
||||
SSCS_KEYCHAIN_ID_T *keychainID)
|
||||
{
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_ID_LIST_T secretIDList;
|
||||
uint32_t ssFlags = 0;
|
||||
int retVal,i=0;
|
||||
SSCS_SECRET_T mySecret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
uint32_t bytesRequired = 0;
|
||||
|
||||
if(type == 0) //keychains
|
||||
{
|
||||
printf("Enumerate keychains\n----------------------\n");
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle, ssFlags,NULL, &kcIDList,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
}
|
||||
else //secrets
|
||||
{
|
||||
mySecret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(mySecret.data);
|
||||
printf("Enumerating secrets\n-----------------\n");
|
||||
secretIDList.secIDList = (SSCS_SECRET_ID_T*)malloc(
|
||||
sizeof(SSCS_SECRET_ID_T)* MAX_RETURNED_IDS);
|
||||
assert(secretIDList.secIDList);
|
||||
|
||||
secretIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateSecretIDs(ssHandle, ssFlags, keychainID, NULL, &secretIDList, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateSecretIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
for( i = 0 ; i < secretIDList.returnedIDs; i++ )
|
||||
{
|
||||
SSCS_SECRET_ID_T secId;
|
||||
strcpy(secId.id,secretIDList.secIDList[i].id);
|
||||
secId.len = strlen(secretIDList.secIDList[i].id)+1;
|
||||
mySecret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(mySecret.data,0,MAX_SECRET_VAL_LEN);
|
||||
|
||||
retVal = sscs_CacheReadSecret(ssHandle, ssFlags, keychainID,&secId, &mySecret, &epPassword, &bytesRequired, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Read secretID - %s\n",secretIDList.secIDList[i].id);
|
||||
printf("SecretVal is : \n%s\n",mySecret.data);
|
||||
}
|
||||
}
|
||||
free(secretIDList.secIDList);
|
||||
free(mySecret.data);
|
||||
}
|
||||
printf("---------------------------------\n");
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = 0,z=0;
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
uint32_t bytesRequired;
|
||||
wchar_t *testssName;
|
||||
unsigned char testssNameUTF[1024];
|
||||
wchar_t *testkcId;
|
||||
unsigned char testkcIdUTF[1024];
|
||||
wchar_t *testsecretId;
|
||||
unsigned char testsecretIdUTF[1024];
|
||||
wchar_t **wptr = NULL;
|
||||
|
||||
uint32_t ssFlags = 0;
|
||||
int retVal = 0;
|
||||
int i;
|
||||
SSCS_SECRET_T mySecret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
SSCS_SECRET_ID_T mySecretID;
|
||||
SSCS_KEYCHAIN_ID_T mykeychainID;
|
||||
SSCS_KEYCHAIN_ID_T newkeychainID;
|
||||
|
||||
memset(&mykeychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
testkcId = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testkcId);
|
||||
|
||||
//All this required when we have some real wchars :-)
|
||||
wcscpy(testkcId,L"SSCS_SESSION_KEY_CHAIN_ID");
|
||||
wptr = &testkcId;
|
||||
mykeychainID.len = wcsrtombs(testkcIdUTF,wptr,1024,NULL);
|
||||
mykeychainID.len+=1;
|
||||
memcpy(mykeychainID.keychainID,testkcIdUTF,mykeychainID.len);
|
||||
|
||||
memset(&mySecretID,0,sizeof(mySecretID));
|
||||
testsecretId = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testsecretId);
|
||||
wcscpy(testsecretId,L"MySecret");
|
||||
|
||||
wptr = &testsecretId;
|
||||
mySecretID.len = wcsrtombs(testsecretIdUTF,wptr,1024,NULL);
|
||||
mySecretID.len +=1;
|
||||
memcpy(mySecretID.id,testsecretIdUTF,mySecretID.len);
|
||||
|
||||
mySecret.len = MAX_SECRET_VAL_LEN;
|
||||
mySecret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(mySecret.data);
|
||||
|
||||
secID.version = 0x00040000;
|
||||
testssName = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testssName);
|
||||
wcscpy(testssName,L"SecretStoreName");
|
||||
wptr = &testssName;
|
||||
n = wcsrtombs(testssNameUTF,wptr,1024,NULL);
|
||||
memcpy(secID.ssName,testssNameUTF,n);
|
||||
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheOpenSecretStore succesful\n");
|
||||
|
||||
enumerateIDs(ssHandle,0,NULL);
|
||||
enumerateIDs(ssHandle, 1,&mykeychainID);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle,ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheCloseSecretStore success: %d\n",retVal);
|
||||
|
||||
free(testkcId);
|
||||
free(testsecretId);
|
||||
free(mySecret.data);
|
||||
free(testssName);
|
||||
|
||||
printf("Completed testing\n");
|
||||
return 0;
|
||||
}
|
||||
8
c_test/dev_test/makefile
Normal file
8
c_test/dev_test/makefile
Normal file
@@ -0,0 +1,8 @@
|
||||
all: sample enumerate
|
||||
sample:
|
||||
gcc -g -o sample -I../../include/ -L../../lib/lux/dbg/ -lmicasa ./sample.c
|
||||
enumerate:
|
||||
gcc -g -o enumerate -I../../include enumerate.c -L../../lib/lux/dbg/ -lmicasacache
|
||||
clean:
|
||||
rm ./sample
|
||||
rm ./enumerate
|
||||
1779
c_test/dev_test/sample.c
Normal file
1779
c_test/dev_test/sample.c
Normal file
File diff suppressed because it is too large
Load Diff
BIN
c_test/displayCache/DisplayMiCasa.ncb
Normal file
BIN
c_test/displayCache/DisplayMiCasa.ncb
Normal file
Binary file not shown.
21
c_test/displayCache/DisplayMiCasa.sln
Normal file
21
c_test/displayCache/DisplayMiCasa.sln
Normal file
@@ -0,0 +1,21 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sshtst", "sshtst.vcproj", "{48BF7628-6AD4-4FF7-AD10-AA87F541385E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Debug.ActiveCfg = Debug|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Debug.Build.0 = Debug|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Release.ActiveCfg = Release|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Release.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
c_test/displayCache/DisplayMiCasa.suo
Normal file
BIN
c_test/displayCache/DisplayMiCasa.suo
Normal file
Binary file not shown.
19
c_test/displayCache/Makefile
Normal file
19
c_test/displayCache/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = sshtst
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
BIN_NAME = $(TARGET).exe
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target
|
||||
374
c_test/displayCache/displaycache.c
Normal file
374
c_test/displayCache/displaycache.c
Normal file
@@ -0,0 +1,374 @@
|
||||
/**************************************************************************
|
||||
%name: displaycache.c %
|
||||
%version: 3 %
|
||||
%date_modified: Fri May 20 15:09:50 2005 %
|
||||
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
/***************************************************************
|
||||
*** This code is available at "www.developer.novell.com/ndk/ **
|
||||
***************************************************************/
|
||||
|
||||
|
||||
/* Sample code for C Language SecretStore Client Service APIs */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <micasa_mgmd.h>
|
||||
#include <micasa.h>
|
||||
|
||||
|
||||
#define GSS_BLD_STR "4.0.1"
|
||||
|
||||
#define SSCS_BINARY_TYPE_F 0x00000004L
|
||||
static char SSCS_APP_SECRET[] = {'S','S','_','A','p','p', 0};
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/*
|
||||
* Global data
|
||||
*/
|
||||
int optErr = 1; // if error message should be printed
|
||||
int optIdx = 1; // index into parent argv vector
|
||||
int optionString = 1; // character checked for validity
|
||||
char *optArg = NULL; // argument associated with option
|
||||
|
||||
#define BADCHAR (int)'?'
|
||||
#define ERRMSG ""
|
||||
|
||||
/* interactive flag */
|
||||
static int aFlag = 1;
|
||||
|
||||
|
||||
void Pause()
|
||||
{ /* beginning of the call */
|
||||
/* ############################## CODE STARTS HERE ############################ */
|
||||
|
||||
if(aFlag)
|
||||
{
|
||||
}
|
||||
/* ########################## CODE ENDS HERE ######################### */
|
||||
} /* end of Pause */
|
||||
|
||||
|
||||
|
||||
/* */
|
||||
/*
|
||||
* NAME - main
|
||||
*
|
||||
* DESCRIPTION
|
||||
* SecretStore SharedSecret test program.
|
||||
*
|
||||
*/
|
||||
void main
|
||||
(
|
||||
int argc,
|
||||
char **argv
|
||||
)
|
||||
{ /* beginning of the call */
|
||||
/* ########################## DECLARATIONS START HERE ######################### */
|
||||
|
||||
SSCS_SECRETSTORE_T ssid = {0};
|
||||
SSCS_SECRETSTORE_INFO_T ssInfo = {0};
|
||||
SSCS_KEYCHAIN_ID_T keyChainID = {0};
|
||||
|
||||
SSCS_READEXT_T rInfo = {0};
|
||||
void *ssContext = NULL;
|
||||
|
||||
int appTstFlag = 0, multiCredTstFlag = 0, multiEntryTstFlag = 0;
|
||||
char *secret;
|
||||
|
||||
|
||||
static char multiEntryCredSet[] = {'S','h','a','r','e','d','S','e','c','r','e','t',' ','M','u','l','t','i','p','l','e',' ','E','n','t','r','y',' ','C','r','e','d','S','e','t',' ','T','e','s','t',0};
|
||||
|
||||
int rcode = NSSCS_SUCCESS;
|
||||
int exCount = 1, i, j, remLock = 0, unlock = 0,
|
||||
master = 0, rCount = 1;
|
||||
long opCount, bufSize = NSSCS_MAX_SECRET_BUF_LEN;
|
||||
unsigned long startTime, endTime, pFlag = 0L, count = 0;
|
||||
|
||||
SSCS_SECRET_ID_T secretID = {0};
|
||||
|
||||
// SharedSecret data
|
||||
void *secretHandle; // handle for passing to functions
|
||||
SSCS_SH_SECRET_ID_T shSecret; // SharedSecret struct
|
||||
char *key = NULL;
|
||||
unsigned char *value = NULL;
|
||||
int kLen = 0;
|
||||
int vLen = 0;
|
||||
|
||||
SSCS_SH_SECRET_ID_LIST_T shSecIDList = {0};
|
||||
|
||||
|
||||
SSCS_BASIC_CREDENTIAL credential = {0};
|
||||
SSCS_SECRET_ID_T appSecretId = {0};
|
||||
SSCS_SECRET_ID_T sharedSecretId = {0};
|
||||
|
||||
SSCS_EXT_T ext = {0};
|
||||
|
||||
|
||||
|
||||
/* ############################## CODE STARTS HERE ############################ */
|
||||
|
||||
if((secret = (char *)malloc(NSSCS_MAX_SECRET_BUF_LEN)) == NULL)
|
||||
{
|
||||
|
||||
printf("\nSecret Buffer Malloc Failed!!!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if((value = (unsigned char *)malloc(NSSCS_MAX_SECRET_BUF_LEN)) == NULL)
|
||||
{
|
||||
|
||||
printf("\nValue Buffer Malloc Failed!!!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
if((key = (char *)malloc(NSSCS_MAX_SECRET_ID_LEN)) == NULL)
|
||||
{
|
||||
|
||||
printf("\nKey Buffer Malloc Failed!!!\n");
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
memset(key, 0, NSSCS_MAX_SECRET_ID_LEN);
|
||||
memset(value, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
memset(secret, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
|
||||
//printf("\nSecretStore Client Service NDK Test Program version %s ...\n\n", GSS_BLD_STR);
|
||||
|
||||
// Initialize the SID to the user ID if the owner
|
||||
|
||||
strcpy(ssid.ssName, "testuser");
|
||||
ssid.version = NSSCS_VERSION_NUMBER;
|
||||
|
||||
// printf("Execution Count Set to: [%d]\n", exCount);
|
||||
// printf("Initializing...\n");
|
||||
|
||||
startTime = time(NULL);
|
||||
// printf("Done...\n");
|
||||
// Pause();
|
||||
|
||||
|
||||
if((ssContext = miCASAOpenSecretStoreCache(&ssid, 0, NULL)) == NULL)
|
||||
{
|
||||
rcode = NSSCS_E_CANT_OPEN_CLIENT_CACHE;
|
||||
printf("\nCache Failed to Open!!!\n");
|
||||
goto ERROR_1;
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\nCache Opened...\n");
|
||||
}
|
||||
|
||||
keyChainID.len = SSCS_S_KC_ID_CHARS;
|
||||
strcpy(keyChainID.keychainID, SSCS_SESSION_KEY_CHAIN_ID);
|
||||
|
||||
for(j = 0, opCount = 0; j < exCount; j++)
|
||||
{
|
||||
|
||||
|
||||
// ***************************************************
|
||||
// ********* Enumerting Secrets *********
|
||||
// ***************************************************
|
||||
|
||||
|
||||
printf("\nEnumerating the Secrets ....\r\n ");
|
||||
|
||||
shSecIDList.enumHandle = 1;
|
||||
shSecIDList.returnedIDs = 20;
|
||||
shSecIDList.secIDList = (SSCS_SH_SECRET_ID_T *)malloc(20 * sizeof(SSCS_SH_SECRET_ID_T));
|
||||
if(shSecIDList.secIDList)
|
||||
{
|
||||
memset(shSecIDList.secIDList, 0 , 20 * sizeof(SSCS_SH_SECRET_ID_T));
|
||||
do
|
||||
{
|
||||
if((rcode = miCASAEnumerateSecretIDs(ssContext, &keyChainID, 0, NULL, &shSecIDList, NULL)) == NSSCS_SUCCESS)
|
||||
{
|
||||
if (shSecIDList.returnedIDs > 0)
|
||||
{
|
||||
for(i = 0; i < (int)shSecIDList.returnedIDs; i++)
|
||||
{
|
||||
if(shSecIDList.secIDList[i].type & SSCS_APPLICATION_TYPE_F)
|
||||
{
|
||||
printf("\nSS_App:\r\n");
|
||||
}
|
||||
else if(shSecIDList.secIDList[i].type & SSCS_CREDENTIAL_TYPE_F)
|
||||
{
|
||||
printf("\nSS_CredSet:\r\n");
|
||||
}
|
||||
else if(shSecIDList.secIDList[i].type & SSCS_BINARY_TYPE_F)
|
||||
{
|
||||
printf("\nSS_Binary:\r\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n Unsupported SecretID type .... ");
|
||||
}
|
||||
|
||||
//printf("\nLength of the SecretID [%ld]\n", shSecIDList.secIDList[i].len);
|
||||
printf("SecretID [%s]\n", shSecIDList.secIDList[i].name);
|
||||
|
||||
if(shSecIDList.secIDList[i].type & SSCS_CREDENTIAL_TYPE_F)
|
||||
// dump the values
|
||||
{
|
||||
shSecret.type = SSCS_CREDENTIAL_TYPE_F;
|
||||
//strcpy(shSecret.name, shSecIDList.secIDList[i].name);
|
||||
strncpy(shSecret.name, (&(shSecIDList.secIDList[i]).name[11]), shSecIDList.secIDList[i].len -11);
|
||||
|
||||
shSecret.len = strlen(shSecret.name)+1;
|
||||
|
||||
secretHandle = miCASA_CreateSHSHandle(); // create a new secretHandle
|
||||
if(!secretHandle)
|
||||
{
|
||||
goto ERROR_1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
rcode = miCASAReadSecret(ssContext, &keyChainID, 0, secretHandle, &shSecret, NULL, &rInfo, NULL);
|
||||
|
||||
if(rcode != NSSCS_SUCCESS)
|
||||
{
|
||||
printf("\nmiCASAReadSecret returned [%d] when reading [%s]\n\n", rcode, multiEntryCredSet);
|
||||
Pause();
|
||||
goto ERROR_1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
if(!(rcode = miCASA_GetNextSHSEntry(1, secretHandle, &kLen, key, &vLen, value)))
|
||||
{
|
||||
while(rcode == NSSCS_SUCCESS)
|
||||
{
|
||||
if(0 == strlen(key))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
strcpy(secret, key);
|
||||
strcat(secret, "=");
|
||||
strcat(secret, (char *)value);
|
||||
printf("\t [%s]=[%s]\n", key, value);
|
||||
|
||||
// clear the buffers
|
||||
memset(key, 0, NSSCS_MAX_SECRET_ID_LEN);
|
||||
memset(value, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
memset(secret, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
|
||||
rcode = miCASA_GetNextSHSEntry(0, secretHandle, &kLen, key, &vLen, value);
|
||||
}
|
||||
}
|
||||
|
||||
miCASA_DestroySHSHandle(secretHandle); // destroy the secretHandle
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("No secrets found in cache\r\n");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Enumerate secrets returned %d\r\n", rcode);
|
||||
// resize the array based on the count returned because the cache engine below
|
||||
// does not support iterations
|
||||
if(rcode == NSSCS_E_ENUM_BUFF_TOO_SHORT)
|
||||
{
|
||||
shSecIDList.enumHandle = 1;
|
||||
free(shSecIDList.secIDList);
|
||||
shSecIDList.secIDList = (SSCS_SH_SECRET_ID_T *)malloc(shSecIDList.returnedIDs * sizeof(SSCS_SH_SECRET_ID_T));
|
||||
}
|
||||
|
||||
if((rcode = miCASAEnumerateSecretIDs(ssContext, &keyChainID, 0, NULL, &shSecIDList, NULL)) == NSSCS_SUCCESS)
|
||||
{
|
||||
for(i = 0; i < (int)shSecIDList.returnedIDs; i++)
|
||||
{
|
||||
if(shSecIDList.secIDList[i].type & SSCS_APPLICATION_TYPE_F)
|
||||
{
|
||||
printf("\nSS_App:\r\n");
|
||||
}
|
||||
else if(shSecIDList.secIDList[i].type & SSCS_CREDENTIAL_TYPE_F)
|
||||
{
|
||||
printf("\nSS_CredSet:\r\n");
|
||||
}
|
||||
else if(shSecIDList.secIDList[i].type & SSCS_BINARY_TYPE_F)
|
||||
{
|
||||
printf("\nSS_Binary:\r\n ");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\n Unsupported SecretID type .... ");
|
||||
}
|
||||
|
||||
//printf("Length of the SecretID [%ld]\n", shSecIDList.secIDList[i].len);
|
||||
printf("SecretID [%s]\n", shSecIDList.secIDList[i].name);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("Enumerate secrets returned %d\r\n", rcode);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
while(shSecIDList.enumHandle);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("\nEnum Malloc fialed .... ");
|
||||
}
|
||||
|
||||
|
||||
|
||||
} /* end for */
|
||||
|
||||
endTime = time(NULL);
|
||||
|
||||
/* ########################## CODE EXITS HERE ##################### */
|
||||
|
||||
ERROR_1:
|
||||
|
||||
if(secret)
|
||||
{
|
||||
memset(secret, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
free(secret);
|
||||
}
|
||||
|
||||
if(value)
|
||||
{
|
||||
memset(value, 0, NSSCS_MAX_SECRET_BUF_LEN);
|
||||
free(value);
|
||||
}
|
||||
|
||||
if(key)
|
||||
{
|
||||
memset(key, 0, NSSCS_MAX_SECRET_ID_LEN);
|
||||
free(key);
|
||||
}
|
||||
|
||||
|
||||
if(ssContext)
|
||||
{
|
||||
rcode = miCASACloseSecretStoreCache(ssContext, 0, NULL);
|
||||
}
|
||||
|
||||
if(shSecIDList.secIDList)
|
||||
{
|
||||
free(shSecIDList.secIDList);
|
||||
}
|
||||
|
||||
Pause();
|
||||
|
||||
exit(rcode);
|
||||
|
||||
|
||||
/* ########################## CODE ENDS HERE ##################### */
|
||||
}
|
||||
153
c_test/displayCache/displaycache.vcproj
Normal file
153
c_test/displayCache/displaycache.vcproj
Normal file
@@ -0,0 +1,153 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="DisplayCache"
|
||||
ProjectGUID="{534B797C-48CF-45F9-9591-654ABA0B4934}"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="2"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa_mdd.lib odbc32.lib odbccp32.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\casa2\lib\w32"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Debug/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="4"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderFile=".\Release/sshtst.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="$(OutDir)/$(ProjectName).exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\lib\w32"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Release/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\displaycache.c">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa_mgmd.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\sscs_ipc.h">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
15
c_test/displayCache/link.w32
Normal file
15
c_test/displayCache/link.w32
Normal file
@@ -0,0 +1,15 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/md/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/micasa.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/libc.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Release/displaycache.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Release/DisplayCache.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);\
|
||||
echo "/VERSION:$(BLD_VER)" >> $(LINKDEF);\
|
||||
echo "/WARN:3" >> $(LINKDEF);
|
||||
15
c_test/displayCache/link_mdd.w32
Normal file
15
c_test/displayCache/link_mdd.w32
Normal file
@@ -0,0 +1,15 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/mdd/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/micasa_mdd.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/libc.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Debug/displaycache.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Debug/DisplayCache.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);\
|
||||
echo "/VERSION:$(BLD_VER)" >> $(LINKDEF);\
|
||||
echo "/WARN:3" >> $(LINKDEF);
|
||||
3
c_test/displayCache/objs.lux
Normal file
3
c_test/displayCache/objs.lux
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
displaycache.$(O)
|
||||
|
||||
3
c_test/displayCache/objs.w32
Normal file
3
c_test/displayCache/objs.w32
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
displaycache.$(O)
|
||||
|
||||
15
c_test/displayCache/resource.h
Normal file
15
c_test/displayCache/resource.h
Normal file
@@ -0,0 +1,15 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by lsstest.rc
|
||||
//
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
152
c_test/displayCache/sshtst.vcproj
Normal file
152
c_test/displayCache/sshtst.vcproj
Normal file
@@ -0,0 +1,152 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="DisplayCache"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="2"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa_mdd.lib odbc32.lib odbccp32.lib"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\bin\w32\mdd"
|
||||
GenerateDebugInformation="TRUE"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Debug/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="4"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderFile=".\Release/sshtst.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile="$(OutDir)/$(ProjectName).exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\lib\w32"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Release/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath=".\displaycache.c">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa_mgmd.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\sscs_ipc.h">
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
26
c_test/displayCache/target
Normal file
26
c_test/displayCache/target
Normal file
@@ -0,0 +1,26 @@
|
||||
include link$(xtra).$(PLAT)
|
||||
|
||||
all : $(BIN_NAME)
|
||||
|
||||
$(BIN_NAME) : $(OBJS)
|
||||
@echo Linking $@ ...
|
||||
@$(LINK_DEF_BLD)
|
||||
$(LINK)
|
||||
$(RM) $(LINKDEF)
|
||||
$(TSTPACK)
|
||||
@echo
|
||||
|
||||
install :
|
||||
@echo client Installing $< ...
|
||||
|
||||
## The binaries
|
||||
ifeq ($(PLAT),w32)
|
||||
$(CP) Release/$(BIN_NAME) $(INSTALLDIR)tools/w32
|
||||
else
|
||||
$(CP) $(BINDIR)$(basename $(BIN_NAME)).$(BIN) $(INSTALLDIR)tools/lux
|
||||
endif
|
||||
|
||||
clean :
|
||||
@echo Cleaning ...
|
||||
$(RM) *.err *.bak *.i *.res $(OBJDIR)*.$(O) $(OBJDIR)*.res Release/*.*
|
||||
|
||||
114
c_test/java_sample/java_sample.ipr
Normal file
114
c_test/java_sample/java_sample.ipr
Normal file
@@ -0,0 +1,114 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="3" relativePaths="false">
|
||||
<component name="ProjectRootManager" version="2">
|
||||
<jdk name="java version "1.4.1_01"" />
|
||||
<library name="miCasa" />
|
||||
<projectPath>
|
||||
<root type="composite">
|
||||
<root type="simple" url="file://$PROJECT_DIR$" />
|
||||
</root>
|
||||
</projectPath>
|
||||
<sourcePath>
|
||||
<root type="composite">
|
||||
<root type="simple" url="file://$PROJECT_DIR$/src" />
|
||||
<root type="jdk" rootType="sourcePath" name="java version "1.4.1_01"" />
|
||||
<root type="library" rootType="sourcePath" name="miCasa" />
|
||||
<root type="simple" url="file://D:/ccm/SSClient/SecretStoreClient_src/c_jwrapper/src" />
|
||||
</root>
|
||||
</sourcePath>
|
||||
<classPath>
|
||||
<root type="composite">
|
||||
<root type="output" />
|
||||
<root type="jdk" rootType="classPath" name="java version "1.4.1_01"" />
|
||||
<root type="library" rootType="classPath" name="miCasa" />
|
||||
</root>
|
||||
</classPath>
|
||||
<excludePath>
|
||||
<root type="composite">
|
||||
<root type="excludedOutput" />
|
||||
</root>
|
||||
</excludePath>
|
||||
<javadocPath>
|
||||
<root type="composite">
|
||||
<root type="jdk" rootType="javadocPath" name="java version "1.4.1_01"" />
|
||||
<root type="library" rootType="javadocPath" name="miCasa" />
|
||||
</root>
|
||||
</javadocPath>
|
||||
<assert_keyword enabled="no" />
|
||||
<exclude_output enabled="yes" />
|
||||
</component>
|
||||
<component name="CompilerConfiguration">
|
||||
<option name="DEFAULT_COMPILER" value="Javac" />
|
||||
<option name="SYNCHRONIZE_OUTPUT_DIRECTORY" value="false" />
|
||||
<option name="DEFAULT_OUTPUT_PATH" value="$PROJECT_DIR$/classes" />
|
||||
<option name="OUTPUT_MODE" value="single" />
|
||||
<resourceExtensions>
|
||||
<entry name=".+\.(properties|xml|html)" />
|
||||
<entry name=".+\.(gif|png|jpeg|jpg)" />
|
||||
</resourceExtensions>
|
||||
</component>
|
||||
<component name="JavacSettings">
|
||||
<option name="DEBUGGING_INFO" value="true" />
|
||||
<option name="GENERATE_NO_WARNINGS" value="false" />
|
||||
<option name="DEPRECATION" value="true" />
|
||||
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
|
||||
<option name="MAXIMUM_HEAP_SIZE" value="128" />
|
||||
</component>
|
||||
<component name="JikesSettings">
|
||||
<option name="JIKES_PATH" value="" />
|
||||
<option name="DEBUGGING_INFO" value="true" />
|
||||
<option name="DEPRECATION" value="true" />
|
||||
<option name="GENERATE_NO_WARNINGS" value="false" />
|
||||
<option name="GENERATE_MAKE_FILE_DEPENDENCIES" value="false" />
|
||||
<option name="DO_FULL_DEPENDENCE_CHECK" value="false" />
|
||||
<option name="IS_EMACS_ERRORS_MODE" value="true" />
|
||||
<option name="ADDITIONAL_OPTIONS_STRING" value="" />
|
||||
</component>
|
||||
<component name="AntConfiguration">
|
||||
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
|
||||
<option name="FILTER_TARGETS" value="false" />
|
||||
</component>
|
||||
<component name="JavadocGenerationManager">
|
||||
<option name="OUTPUT_DIRECTORY" />
|
||||
<option name="OPTION_SCOPE" value="protected" />
|
||||
<option name="OPTION_HIERARCHY" value="true" />
|
||||
<option name="OPTION_NAVIGATOR" value="true" />
|
||||
<option name="OPTION_INDEX" value="true" />
|
||||
<option name="OPTION_SEPARATE_INDEX" value="true" />
|
||||
<option name="OPTION_DOCUMENT_TAG_USE" value="false" />
|
||||
<option name="OPTION_DOCUMENT_TAG_AUTHOR" value="false" />
|
||||
<option name="OPTION_DOCUMENT_TAG_VERSION" value="false" />
|
||||
<option name="OPTION_DOCUMENT_TAG_DEPRECATED" value="true" />
|
||||
<option name="OPTION_DEPRECATED_LIST" value="true" />
|
||||
<option name="OTHER_OPTIONS" value="" />
|
||||
<option name="HEAP_SIZE" />
|
||||
<option name="OPEN_IN_BROWSER" value="true" />
|
||||
</component>
|
||||
<component name="WebManager">
|
||||
<option enabled="false" />
|
||||
</component>
|
||||
<component name="WebRootContainer" />
|
||||
<component name="EjbManager" enabled="false" />
|
||||
<component name="JUnitProjectSettings">
|
||||
<option name="TEST_RUNNER" value="UI" />
|
||||
</component>
|
||||
<component name="EntryPointsManager">
|
||||
<entry_points />
|
||||
</component>
|
||||
<component name="EjbActionsConfiguration">
|
||||
<option name="NEW_MESSAGE_BEAN_LAST_PACKAGE" value="" />
|
||||
<option name="NEW_ENTITY_BEAN_LAST_PACKAGE" value="" />
|
||||
<option name="NEW_SESSION_BEAN_LAST_PACKAGE" value="" />
|
||||
</component>
|
||||
<component name="CodeStyleManager">
|
||||
<option name="USE_DEFAULT_CODE_STYLE_SCHEME" value="true" />
|
||||
<option name="CODE_STYLE_SCHEME" value="Default" />
|
||||
</component>
|
||||
<component name="ExportToHTMLSettings">
|
||||
<option name="PRINT_LINE_NUMBERS" value="false" />
|
||||
<option name="OPEN_IN_BROWSER" value="false" />
|
||||
<option name="OUTPUT_DIRECTORY" />
|
||||
</component>
|
||||
<component name="WebReferencesManager" />
|
||||
</project>
|
||||
|
||||
490
c_test/java_sample/java_sample.iws
Normal file
490
c_test/java_sample/java_sample.iws
Normal file
@@ -0,0 +1,490 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="3" relativePaths="false">
|
||||
<component name="WebReferencesConfigurable">
|
||||
<property name="CUSTOM_MAP_LOOKUP" type="list" />
|
||||
<property name="INTERFACE_POSTFIX" value="" type="string" />
|
||||
<property name="electric.home" value="/electric" type="string" />
|
||||
<property name="INTERFACE_PREFIX" value="I" type="string" />
|
||||
<property name="INCLUDE_SYSTEM_MAP" value="true" type="boolean" />
|
||||
<property name="THROW_EXCEPTIONS" value="false" type="boolean" />
|
||||
<property name="ENABLED" value="false" type="boolean" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<history>
|
||||
<source-position-entry url="jar://D:/ccm/iMan202_FPx/iManager/tools/jdk/jre/lib/rt.jar!/java/lang/String.class" line="12" column="19" vertical-scroll-proportion="0.20307167" horizontal-scroll-proportion="0.15182649" />
|
||||
<source-position-entry url="file://$PROJECT_DIR$/src/JavaSample.java" line="106" column="0" vertical-scroll-proportion="0.5633803" horizontal-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</source-position-entry>
|
||||
<source-position-entry url="file://D:/ccm/SSClient/SecretStoreClient_src/c_jwrapper/src/com/novell/casa/MiCasa.java" line="77" column="34" vertical-scroll-proportion="2.633803" horizontal-scroll-proportion="0.2713797" />
|
||||
</history>
|
||||
<open-files>
|
||||
<source-position-entry url="file://$PROJECT_DIR$/src/JavaSample.java" line="106" column="0" vertical-scroll-proportion="0.5633803" horizontal-scroll-proportion="0.0">
|
||||
<folding>
|
||||
<element signature="imports" expanded="true" />
|
||||
</folding>
|
||||
</source-position-entry>
|
||||
<source-position-entry url="file://D:/ccm/SSClient/SecretStoreClient_src/c_jwrapper/src/com/novell/casa/MiCasa.java" line="77" column="34" vertical-scroll-proportion="2.633803" horizontal-scroll-proportion="0.2713797" selected="true" />
|
||||
</open-files>
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="-4" y="-4" width="1288" height="1002" extended-state="0" />
|
||||
<editor active="false" />
|
||||
<layout>
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="1" />
|
||||
<window_info id="Run" active="true" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.36259976" order="2" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="2" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.32930845" order="7" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="sliding" type="sliding" visible="false" weight="0.4" order="0" />
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="true" weight="0.237751" order="0" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.36800894" order="3" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="1" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.3295325" order="1" />
|
||||
<window_info id="Messages" active="false" anchor="bottom" auto_hide="true" internal_type="sliding" type="sliding" visible="false" weight="0.3295325" order="8" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.4" order="6" />
|
||||
<window_info id="Web" active="false" anchor="left" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="2" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="5" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.33" order="0" />
|
||||
<window_info id="EJB" active="false" anchor="bottom" auto_hide="false" internal_type="docked" type="docked" visible="false" weight="0.25" order="4" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="Debugger">
|
||||
<line_breakpoints>
|
||||
<breakpoint url="file://$PROJECT_DIR$/src/JavaSample.java" line="106">
|
||||
<option name="ENABLED" value="true" />
|
||||
<option name="SUSPEND_VM" value="true" />
|
||||
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||
<option name="COUNT_FILTER" value="0" />
|
||||
<option name="CONDITION_ENABLED" value="false" />
|
||||
<option name="CONDITION" />
|
||||
<option name="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
<option name="LOG_MESSAGE" />
|
||||
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||
<option name="INVERSE_CLASS_FILLTERS" value="false" />
|
||||
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||
</breakpoint>
|
||||
</line_breakpoints>
|
||||
<exception_breakpoints>
|
||||
<breakpoint_any>
|
||||
<option name="NOTIFY_CAUGHT" value="true" />
|
||||
<option name="NOTIFY_UNCAUGHT" value="true" />
|
||||
<option name="ENABLED" value="false" />
|
||||
<option name="SUSPEND_VM" value="true" />
|
||||
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||
<option name="COUNT_FILTER" value="0" />
|
||||
<option name="CONDITION_ENABLED" value="false" />
|
||||
<option name="CONDITION" />
|
||||
<option name="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
<option name="LOG_MESSAGE" />
|
||||
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||
<option name="INVERSE_CLASS_FILLTERS" value="false" />
|
||||
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||
</breakpoint_any>
|
||||
</exception_breakpoints>
|
||||
<field_breakpoints />
|
||||
<method_breakpoints />
|
||||
</component>
|
||||
<component name="DebuggerManager">
|
||||
<watch_expression value="rcode" />
|
||||
</component>
|
||||
<component name="DebuggerSettings">
|
||||
<option name="TRACING_FILTERS_ENABLED" value="true" />
|
||||
<option name="TOSTRING_CLASSES_ENABLED" value="false" />
|
||||
<option name="VALUE_LOOKUP_DELAY" value="700" />
|
||||
<option name="DEBUGGER_TRANSPORT" value="0" />
|
||||
<option name="FORCE_CLASSIC_VM" value="true" />
|
||||
<option name="HIDE_DEBUGGER_ON_PROCESS_TERMINATION" value="false" />
|
||||
<option name="SKIP_SYNTHETIC_METHODS" value="true" />
|
||||
<option name="SKIP_CONSTRUCTORS" value="false" />
|
||||
<option name="STEP_THREAD_SUSPEND_POLICY" value="SuspendThread" />
|
||||
<default_breakpoint_settings>
|
||||
<option name="NOTIFY_CAUGHT" value="true" />
|
||||
<option name="NOTIFY_UNCAUGHT" value="true" />
|
||||
<option name="WATCH_MODIFICATION" value="true" />
|
||||
<option name="WATCH_ACCESS" value="true" />
|
||||
<option name="WATCH_ENTRY" value="true" />
|
||||
<option name="WATCH_EXIT" value="true" />
|
||||
<option name="ENABLED" value="true" />
|
||||
<option name="SUSPEND_VM" value="true" />
|
||||
<option name="COUNT_FILTER_ENABLED" value="false" />
|
||||
<option name="COUNT_FILTER" value="0" />
|
||||
<option name="CONDITION_ENABLED" value="false" />
|
||||
<option name="CONDITION" />
|
||||
<option name="LOG_ENABLED" value="false" />
|
||||
<option name="LOG_EXPRESSION_ENABLED" value="false" />
|
||||
<option name="LOG_MESSAGE" />
|
||||
<option name="CLASS_FILTERS_ENABLED" value="false" />
|
||||
<option name="INVERSE_CLASS_FILLTERS" value="false" />
|
||||
<option name="SUSPEND_POLICY" value="SuspendAll" />
|
||||
</default_breakpoint_settings>
|
||||
<filter>
|
||||
<option name="PATTERN" value="com.sun.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
<filter>
|
||||
<option name="PATTERN" value="java.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
<filter>
|
||||
<option name="PATTERN" value="javax.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
<filter>
|
||||
<option name="PATTERN" value="org.omg.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
<filter>
|
||||
<option name="PATTERN" value="sun.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
<filter>
|
||||
<option name="PATTERN" value="junit.*" />
|
||||
<option name="ENABLED" value="true" />
|
||||
</filter>
|
||||
</component>
|
||||
<component name="CompilerWorkspaceConfiguration">
|
||||
<option name="COMPILE_IN_BACKGROUND" value="false" />
|
||||
<option name="AUTO_SHOW_ERRORS_IN_EDITOR" value="true" />
|
||||
</component>
|
||||
<component name="ErrorTreeViewConfiguration">
|
||||
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
|
||||
<option name="HIDE_WARNINGS" value="false" />
|
||||
</component>
|
||||
<component name="DaemonCodeAnalyzer">
|
||||
<disable_hints />
|
||||
</component>
|
||||
<component name="StructureViewFactory">
|
||||
<option name="SORT_MODE" value="0" />
|
||||
<option name="GROUP_OVERRIDINGS" value="true" />
|
||||
<option name="GROUP_IMPLEMENTINGS" value="true" />
|
||||
<option name="AUTOSCROLL_MODE" value="true" />
|
||||
<option name="SHOW_METHODS" value="true" />
|
||||
<option name="SHOW_FIELDS" value="true" />
|
||||
<option name="AUTOSCROLL_FROM_SOURCE" value="false" />
|
||||
<option name="GROUP_GETTERS_AND_SETTERS" value="true" />
|
||||
</component>
|
||||
<component name="CvsConfiguration">
|
||||
<Checkout>
|
||||
<option name="DATE_TAG" value="" />
|
||||
<option name="REVISION_TAG" value="" />
|
||||
<option name="PRUNE_EMPTY_DIRS" value="true" />
|
||||
<option name="RESET_STICKY_TAGS" value="false" />
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="CREATE_WORKING_DIR" value="" />
|
||||
<option name="ADDITIONAL_OPTIONS" value="" />
|
||||
</Checkout>
|
||||
<Update>
|
||||
<option name="DATE_TAG" value="" />
|
||||
<option name="REVISION_TAG" value="" />
|
||||
<option name="PRUNE_EMPTY_DIRS" value="true" />
|
||||
<option name="RESET_STICKY_TAGS" value="false" />
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="CREATE_MISSING_DIRECTORIES" value="true" />
|
||||
<option name="DONT_CHANGE_FILES" value="false" />
|
||||
<option name="QUIET_MODE" value="false" />
|
||||
<option name="ADDITIONAL_OPTIONS" value="" />
|
||||
</Update>
|
||||
<Commit>
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="REVISION_TAG" value="" />
|
||||
<option name="LOG_MESSAGE" value="" />
|
||||
<option name="ADDITIONAL_OPTIONS" value="" />
|
||||
</Commit>
|
||||
<Diff>
|
||||
<option name="REVISION_TAG" value="HEAD" />
|
||||
<option name="DATE_TAG" value="" />
|
||||
<option name="IGNORE_WHITESPACE" value="false" />
|
||||
</Diff>
|
||||
<Add>
|
||||
<option name="ADD_AS_BINARY" value="false" />
|
||||
<option name="LOG_MESSAGE" value="" />
|
||||
</Add>
|
||||
<Status>
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="INCLUDE_TAGS" value="false" />
|
||||
</Status>
|
||||
<Edit>
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="FORCE_RECURSIVE" value="false" />
|
||||
<option name="EDIT" value="false" />
|
||||
<option name="UNEDIT" value="false" />
|
||||
<option name="COMMIT" value="false" />
|
||||
<option name="ALL" value="true" />
|
||||
<option name="NONE" value="false" />
|
||||
</Edit>
|
||||
<Remove>
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="FORCE_RECURSIVE" value="false" />
|
||||
<option name="DELETE_FILE" value="false" />
|
||||
</Remove>
|
||||
<Log>
|
||||
<option name="DEFAULT_BRANCH" value="false" />
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="QUIET_MODE" value="true" />
|
||||
<option name="ADDITIONAL_OPTIONS" value="" />
|
||||
</Log>
|
||||
<Editors>
|
||||
<option name="NON_RECURSIVE" value="false" />
|
||||
<option name="FORCE_RECURSIVE" value="false" />
|
||||
</Editors>
|
||||
<option name="CLIENT_PATH" value="" />
|
||||
<option name="EXTERNAL_DIFF_PATH" />
|
||||
<option name="USE_EXTERNAL_DIFF" value="false" />
|
||||
<option name="WORKING_FILES_READONLY" value="false" />
|
||||
<option name="COMPRESSION_LEVEL" value="0" />
|
||||
<option name="ADDITIONAL_OPTIONS" value="" />
|
||||
<option name="BINARY_FILES_EXTENSIONS" />
|
||||
<option name="REUSE_LAST_LOG_MESSAGE" value="false" />
|
||||
<option name="PUT_FOCUS_INTO_LOG_MESSAGE" value="false" />
|
||||
<option name="SHOW_UPDATE_OPTIONS" value="true" />
|
||||
<option name="SHOW_COMMIT_OPTIONS" value="true" />
|
||||
<option name="SHOW_DIFF_OPTIONS" value="true" />
|
||||
<option name="SHOW_ADD_OPTIONS" value="true" />
|
||||
<option name="SHOW_STATUS_OPTIONS" value="true" />
|
||||
<option name="SHOW_EDIT_OPTIONS" value="true" />
|
||||
<option name="SHOW_UNEDIT_OPTIONS" value="true" />
|
||||
<option name="SHOW_REMOVE_OPTIONS" value="true" />
|
||||
<option name="SHOW_LOG_OPTIONS" value="true" />
|
||||
<option name="SHOW_EDITORS_OPTIONS" value="true" />
|
||||
<option name="HIDE_UNKNOWN_FILES" value="false" />
|
||||
<option name="HIDE_MISSING_FILES" value="false" />
|
||||
<option name="HIDE_UP_TO_DATE_FILES" value="false" />
|
||||
</component>
|
||||
<component name="CvsVcs">
|
||||
<expanded_paths />
|
||||
</component>
|
||||
<component name="ProjectViewSettings">
|
||||
<navigator currentView="ProjectPane" flattenPackages="false" showMembers="false" showStructure="false" autoscrollToSource="false" splitterProportion="0.5" />
|
||||
<view id="ProjectPane">
|
||||
<expanded_node type="directory" url="file://$PROJECT_DIR$/src" />
|
||||
<expanded_node type="directory" url="file://$PROJECT_DIR$" />
|
||||
</view>
|
||||
<view id="SourcepathPane" />
|
||||
<view id="ClasspathPane" />
|
||||
</component>
|
||||
<component name="RunManager">
|
||||
<option name="SHOW_SETTINGS_BEFORE_RUNNING" value="false" />
|
||||
<option name="COMPILE_BEFORE_RUNNING" value="true" />
|
||||
<activeType name="Application" />
|
||||
<configuration name="<template>" type="Application" default="true" selected="false">
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
</configuration>
|
||||
<configuration name="<template>" type="Applet" default="true" selected="false">
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="HTML_FILE_NAME" />
|
||||
<option name="HTML_USED" value="false" />
|
||||
<option name="WIDTH" value="400" />
|
||||
<option name="HEIGHT" value="300" />
|
||||
<option name="POLICY_FILE" value="$APPLICATION_HOME_DIR$/bin/appletviewer.policy" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
</configuration>
|
||||
<configuration name="<template>" type="JUnit" default="true" selected="false">
|
||||
<option name="PACKAGE_NAME" />
|
||||
<option name="MAIN_CLASS_NAME" />
|
||||
<option name="METHOD_NAME" />
|
||||
<option name="TEST_OBJECT" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
</configuration>
|
||||
<configuration name="<template>" type="Remote" default="true" selected="false">
|
||||
<option name="USE_SOCKET_TRANSPORT" value="true" />
|
||||
<option name="SERVER_MODE" value="false" />
|
||||
<option name="SHMEM_ADDRESS" value="javadebug" />
|
||||
<option name="HOST" value="localhost" />
|
||||
<option name="PORT" value="5005" />
|
||||
</configuration>
|
||||
<configuration name="<template>" type="WebApp" default="true" selected="false">
|
||||
<WebServerIntegration name="" />
|
||||
<Host>localhost</Host>
|
||||
<Port>5050</Port>
|
||||
<LaunchServer>false</LaunchServer>
|
||||
</configuration>
|
||||
<configuration name="Unnamed" type="Application" default="false" selected="true">
|
||||
<option name="MAIN_CLASS_NAME" value="JavaSample" />
|
||||
<option name="VM_PARAMETERS" />
|
||||
<option name="PROGRAM_PARAMETERS" />
|
||||
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$" />
|
||||
</configuration>
|
||||
</component>
|
||||
<component name="BookmarkManager" />
|
||||
<component name="Commander">
|
||||
<leftPanel view="Project" />
|
||||
<rightPanel view="Project" />
|
||||
<splitter proportion="0.5" />
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="MemberChooser.copyJavadoc" value="false" />
|
||||
<property name="GoToClass.includeLibraries" value="false" />
|
||||
<property name="MemberChooser.showClasses" value="true" />
|
||||
<property name="MemberChooser.sorted" value="false" />
|
||||
<property name="GoToFile.includeJavaFiles" value="false" />
|
||||
<property name="GoToClass.toSaveIncludeLibraries" value="false" />
|
||||
</component>
|
||||
<component name="SelectInManager" />
|
||||
<component name="VssConfiguration">
|
||||
<CheckoutOptions>
|
||||
<option name="COMMENT" value="" />
|
||||
<option name="DO_NOT_GET_LATEST_VERSION" value="false" />
|
||||
<option name="REPLACE_WRITABLE" value="false" />
|
||||
<option name="RECURSIVE" value="false" />
|
||||
</CheckoutOptions>
|
||||
<CheckinOptions>
|
||||
<option name="COMMENT" value="" />
|
||||
<option name="KEEP_CHECKED_OUT" value="false" />
|
||||
<option name="RECURSIVE" value="false" />
|
||||
</CheckinOptions>
|
||||
<AddOptions>
|
||||
<option name="COMMENT" value="" />
|
||||
<option name="STORE_ONLY_LATEST_VERSION" value="false" />
|
||||
<option name="CHECK_OUT_IMMEDIATELY" value="false" />
|
||||
<option name="FILE_TYPE" value="0" />
|
||||
</AddOptions>
|
||||
<UndocheckoutOptions>
|
||||
<option name="MAKE_WRITABLE" value="false" />
|
||||
<option name="REPLACE_LOCAL_COPY" value="0" />
|
||||
<option name="RECURSIVE" value="false" />
|
||||
</UndocheckoutOptions>
|
||||
<DiffOptions>
|
||||
<option name="IGNORE_WHITE_SPACE" value="false" />
|
||||
<option name="IGNORE_CASE" value="false" />
|
||||
</DiffOptions>
|
||||
<GetOptions>
|
||||
<option name="REPLACE_WRITABLE" value="0" />
|
||||
<option name="MAKE_WRITABLE" value="false" />
|
||||
<option name="RECURSIVE" value="false" />
|
||||
</GetOptions>
|
||||
<option name="CLIENT_PATH" value="" />
|
||||
<option name="SRCSAFEINI_PATH" value="" />
|
||||
<option name="USER_NAME" value="" />
|
||||
<option name="PWD" value="" />
|
||||
<option name="SHOW_CHECKOUT_OPTIONS" value="true" />
|
||||
<option name="SHOW_CHECKIN_OPTIONS" value="true" />
|
||||
<option name="SHOW_ADD_OPTIONS" value="true" />
|
||||
<option name="SHOW_UNDOCHECKOUT_OPTIONS" value="true" />
|
||||
<option name="SHOW_DIFF_OPTIONS" value="true" />
|
||||
<option name="SHOW_GET_OPTIONS" value="true" />
|
||||
<option name="USE_EXTERNAL_DIFF" value="false" />
|
||||
<option name="EXTERNAL_DIFF_PATH" value="" />
|
||||
<option name="REUSE_LAST_COMMENT" value="false" />
|
||||
<option name="PUT_FOCUS_INTO_COMMENT" value="false" />
|
||||
</component>
|
||||
<component name="HierarchyBrowserManager">
|
||||
<option name="SHOW_PACKAGES" value="false" />
|
||||
<option name="IS_AUTOSCROLL_TO_SOURCE" value="false" />
|
||||
<option name="SORT_ALPHABETICALLY" value="false" />
|
||||
</component>
|
||||
<component name="WebViewSettings">
|
||||
<webview flattenPackages="false" showMembers="false" autoscrollToSource="false" />
|
||||
</component>
|
||||
<component name="EjbViewSettings">
|
||||
<EjbView showMembers="false" autoscrollToSource="false" />
|
||||
</component>
|
||||
<component name="LvcsConfiguration">
|
||||
<option name="LOCAL_VCS_ENABLED" value="true" />
|
||||
<option name="LOCAL_VCS_PURGING_PERIOD" value="259200000" />
|
||||
<option name="ADD_LABEL_ON_PROJECT_OPEN" value="true" />
|
||||
<option name="ADD_LABEL_ON_PROJECT_COMPILATION" value="true" />
|
||||
<option name="ADD_LABEL_ON_FILE_PACKAGE_COMPILATION" value="true" />
|
||||
<option name="ADD_LABEL_ON_PROJECT_MAKE" value="true" />
|
||||
<option name="ADD_LABEL_ON_RUNNING" value="true" />
|
||||
<option name="ADD_LABEL_ON_DEBUGGING" value="true" />
|
||||
<option name="ADD_LABEL_ON_UNIT_TEST" value="true" />
|
||||
<option name="MARK_EXTERNAL_CHANGES_AS_UP_TO_DATE" value="true" />
|
||||
</component>
|
||||
<component name="InspectionManager">
|
||||
<option name="AUTOSCROLL_TO_SOURCE" value="false" />
|
||||
<option name="SPLITTER_PROPORTION" value="0.5" />
|
||||
<inspection_tool class="Unused declaration" enabled="false">
|
||||
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_JUNIT_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_EJB_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
|
||||
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="Declaration access can be weaker" enabled="false">
|
||||
<option name="SUGGEST_PACKAGE_LOCAL_FOR_MEMBERS" value="true" />
|
||||
<option name="SUGGEST_PACKAGE_LOCAL_FOR_TOP_CLASSES" value="true" />
|
||||
<option name="SUGGEST_PRIVATE_FOR_INNERS" value="false" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="Declaration can have static modifier" enabled="false" />
|
||||
<inspection_tool class="Declaration can have final modifier" enabled="false">
|
||||
<option name="REPORT_CLASSES" value="true" />
|
||||
<option name="REPORT_METHODS" value="true" />
|
||||
<option name="REPORT_FIELDS" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="Unused method parameters" enabled="false" />
|
||||
<inspection_tool class="Actual method parameter is the same constant" enabled="false" />
|
||||
<inspection_tool class="Unused method return value" enabled="false" />
|
||||
<inspection_tool class="Method returns the same value" enabled="false" />
|
||||
<inspection_tool class="Empty method" enabled="false" />
|
||||
<inspection_tool class="Redundant throws clause" enabled="false" />
|
||||
<inspection_tool class="Constant conditions & exceptions" enabled="false" />
|
||||
<inspection_tool class="Unused assignment" enabled="false" />
|
||||
<inspection_tool class="Redundant type cast" enabled="false" />
|
||||
<inspection_tool class="Local variable or parameter can be final" enabled="false">
|
||||
<option name="REPORT_VARIABLES" value="true" />
|
||||
<option name="REPORT_PARAMETERS" value="true" />
|
||||
</inspection_tool>
|
||||
<inspection_tool class="Declaration has javadoc problems" enabled="false">
|
||||
<option name="TOP_LEVEL_CLASS_OPTIONS">
|
||||
<value>
|
||||
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="public" />
|
||||
<option name="REQUIRED_TAGS" value="" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="INNER_CLASS_OPTIONS">
|
||||
<value>
|
||||
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="protected" />
|
||||
<option name="REQUIRED_TAGS" value="" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="METHOD_OPTIONS">
|
||||
<value>
|
||||
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="protected" />
|
||||
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
|
||||
</value>
|
||||
</option>
|
||||
<option name="FIELD_OPTIONS">
|
||||
<value>
|
||||
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="protected" />
|
||||
<option name="REQUIRED_TAGS" value="" />
|
||||
</value>
|
||||
</option>
|
||||
</inspection_tool>
|
||||
<inspection_tool class="Deprecated API usage" enabled="false" />
|
||||
<inspection_tool class="equals() and hashCode() not paired" enabled="false" />
|
||||
</component>
|
||||
<component name="TodoView" selected-index="0">
|
||||
<todo-panel id="selected-file">
|
||||
<are-packages-shown value="false" />
|
||||
<flatten-packages value="false" />
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
<todo-panel id="all">
|
||||
<are-packages-shown value="true" />
|
||||
<flatten-packages value="false" />
|
||||
<is-autoscroll-to-source value="true" />
|
||||
</todo-panel>
|
||||
</component>
|
||||
<component name="VcsManagerConfiguration">
|
||||
<option name="ACTIVE_VCS_NAME" value="" />
|
||||
</component>
|
||||
<component name="StarteamConfiguration">
|
||||
<option name="SERVER" value="" />
|
||||
<option name="PORT" value="49201" />
|
||||
<option name="USER" value="" />
|
||||
<option name="PASSWORD" value="" />
|
||||
<option name="PROJECT" value="" />
|
||||
<option name="VIEW" value="" />
|
||||
<option name="ALTERNATIVE_WORKING_PATH" value="" />
|
||||
</component>
|
||||
</project>
|
||||
|
||||
218
c_test/java_sample/src/JavaSample.java
Normal file
218
c_test/java_sample/src/JavaSample.java
Normal file
@@ -0,0 +1,218 @@
|
||||
/**************************************************************************
|
||||
Copyright (c) [2005] Novell, Inc. All Rights Reserved.
|
||||
|
||||
This library is free software; you can redistribute it and/or modify it under
|
||||
the terms of the GNU Lesser General Public License as published by the Free Software Foundation;
|
||||
version 2.1 of the License.
|
||||
|
||||
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
|
||||
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
See the GNU Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with this library; if not, if not, contact Novell, Inc.
|
||||
To contact Novell about this file by physical or electronic mail,
|
||||
you may find current contact information at www.novell.com.
|
||||
**************************************************************************/
|
||||
|
||||
|
||||
import com.novell.casa.MiCasa;
|
||||
import com.novell.casa.MiCasaException;
|
||||
import com.novell.casa.NetCredential;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
|
||||
public class JavaSample {
|
||||
|
||||
static String APPID = "JavaSampleApp";
|
||||
static String USERNAME = "JavaSampl<EFBFBD>User";
|
||||
static String PASSWORD = "JavaSampl<EFBFBD>Password";
|
||||
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
System.out.println("*******************************************************");
|
||||
System.out.println("******** miCASA Sample Program written in Java ******");
|
||||
System.out.println("*******************************************************");
|
||||
ShowMenu();
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
static private void ShowMenu() {
|
||||
while (true) {
|
||||
System.out.println("");
|
||||
System.out.println("********** Menu *********");
|
||||
System.out.println("* 1. Add secret *");
|
||||
System.out.println("* 2. Display secret *");
|
||||
System.out.println("* 3. Remove secret *");
|
||||
System.out.println("* 4. Run automated test *");
|
||||
System.out.println("* 5. Quit *");
|
||||
System.out.println("***************************");
|
||||
|
||||
System.out.println("Select option and Press enter");
|
||||
try {
|
||||
|
||||
byte[] ba = new byte[100];
|
||||
|
||||
int bytesRead;
|
||||
bytesRead = System.in.read(ba);
|
||||
|
||||
if (ba[0] == ('5'))
|
||||
break;
|
||||
if (ba[0] == '1')
|
||||
AddSecret();
|
||||
else if (ba[0] == ('3'))
|
||||
RemoveSecret();
|
||||
else if (ba[0] == ('2'))
|
||||
DisplaySecret();
|
||||
else if (ba[0] == ('4'))
|
||||
RunTest();
|
||||
|
||||
|
||||
} catch (Exception e) {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static String GetInfo(String prompt) {
|
||||
System.out.print("Enter " + prompt);
|
||||
BufferedReader keyb = new BufferedReader(new InputStreamReader(System.in));
|
||||
try {
|
||||
String line = keyb.readLine();
|
||||
return line;
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
static private void AddSecret() {
|
||||
while (true) {
|
||||
|
||||
String sID = GetInfo("SecretID: ");
|
||||
String sUsername = GetInfo("Username: ");
|
||||
String sPassword = GetInfo("Password: ");
|
||||
|
||||
if (sID != null && sUsername != null && sPassword != null) {
|
||||
try {
|
||||
MiCasa.setCredential(0, sID, null, MiCasa.USERNAME_TYPE_OTHER_F, sUsername, sPassword);
|
||||
} catch (MiCasaException e) {
|
||||
System.out.println(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return;
|
||||
} else {
|
||||
System.out.println("Invalid input, try again");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static private void RemoveSecret() {
|
||||
|
||||
String sID = GetInfo("SecretID to remove: ");
|
||||
if (sID != null) {
|
||||
try {
|
||||
MiCasa.removeCredential(0, sID, null);
|
||||
} catch (MiCasaException e) {
|
||||
System.out.println(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static private void DisplaySecret() {
|
||||
|
||||
String sID = GetInfo("SecretID to display: ");
|
||||
if (sID != null) {
|
||||
try {
|
||||
NetCredential nc = MiCasa.getCredential(0, sID, null, MiCasa.USERNAME_TYPE_CN_F);
|
||||
if (nc != null) {
|
||||
System.out.println("Username:" + nc.getUsername());
|
||||
System.out.println("Password:" + nc.getPassword());
|
||||
} else
|
||||
System.out.println(sID + " not found");
|
||||
} catch (MiCasaException e) {
|
||||
System.out.println(e.getMessage());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static private void RunTest() {
|
||||
|
||||
int count = 1;
|
||||
String sCount = GetInfo("times to run: ");
|
||||
|
||||
try {
|
||||
int icount = Integer.parseInt(sCount);
|
||||
count = icount;
|
||||
} catch (Exception e) {
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
System.out.println("Setting Credential .....");
|
||||
try {
|
||||
MiCasa.setCredential(0, APPID, null, 0, USERNAME, PASSWORD);
|
||||
System.out.println("Succeeded");
|
||||
} catch (Exception e) {
|
||||
System.out.println("Failed");
|
||||
System.out.println(e.toString());
|
||||
return;
|
||||
}
|
||||
|
||||
System.out.println("");
|
||||
|
||||
// did we get it the credential back
|
||||
System.out.println("Getting Credential .....");
|
||||
try {
|
||||
NetCredential bc = MiCasa.getCredential(0, APPID, null, 0);
|
||||
|
||||
if (bc != null) {
|
||||
if (bc.getUsername().equals(USERNAME))
|
||||
System.out.println(" Username matched : " + bc.getUsername());
|
||||
if (bc.getPassword().equals(PASSWORD))
|
||||
System.out.println(" Password matched : " + bc.getPassword());
|
||||
} else {
|
||||
System.out.println("Failed");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.toString());
|
||||
}
|
||||
|
||||
try {
|
||||
System.out.println("\r\nRemoving Credential");
|
||||
MiCasa.removeCredential(0, APPID, null);
|
||||
} catch (Exception e) {
|
||||
System.out.println(e.toString());
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
NetCredential bc = MiCasa.getCredential(0, APPID, null, 0);
|
||||
if (bc != null) {
|
||||
System.out.println("\r\nCredential exists and should not - FAILED!");
|
||||
} else
|
||||
System.out.println("\r\nCredential not found as expected - SUCCESS!");
|
||||
} catch (Exception e) {
|
||||
System.out.println("\r\n Credential not found as expected - SUCCESS!");
|
||||
}
|
||||
|
||||
System.out.println("Test completed ");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
19
c_test/sdk_sshtst/Makefile
Normal file
19
c_test/sdk_sshtst/Makefile
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = sshtst
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
BIN_NAME = $(TARGET).exe
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target
|
||||
15
c_test/sdk_sshtst/link.w32
Normal file
15
c_test/sdk_sshtst/link.w32
Normal file
@@ -0,0 +1,15 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/md/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/nsscssdk.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/libc.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Release/sshtst.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Release/sshtst.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);\
|
||||
echo "/VERSION:$(BLD_VER)" >> $(LINKDEF);\
|
||||
echo "/WARN:3" >> $(LINKDEF);
|
||||
15
c_test/sdk_sshtst/link_mdd.w32
Normal file
15
c_test/sdk_sshtst/link_mdd.w32
Normal file
@@ -0,0 +1,15 @@
|
||||
LINK_DEF_BLD = \
|
||||
echo "$(addprefix ,$(ROOT)obj/w32/mdd/$(notdir $(OBJS)))" > $(LINKDEF);\
|
||||
echo "$(ROOT)lib/w32/nsscssdk_mdd.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/kernel32.lib" >> $(LINKDEF);\
|
||||
echo "$(MSC)lib/libc.lib" >> $(LINKDEF);\
|
||||
echo "/LIBPATH:$(MSC)lib" >> $(LINKDEF);\
|
||||
echo "/NODEFAULTLIB:uuid" >> $(LINKDEF);\
|
||||
echo "/NOLOGO" >> $(LINKDEF);\
|
||||
echo "/SUBSYSTEM:CONSOLE" >> $(LINKDEF);\
|
||||
echo "/INCREMENTAL:NO" >> $(LINKDEF);\
|
||||
echo "/PDB:Debug/sshtst.pdb" >> $(LINKDEF);\
|
||||
echo "/OUT:Debug/sshtst.exe" >> $(LINKDEF);\
|
||||
echo "/MACHINE:IX86" >> $(LINKDEF);\
|
||||
echo "/VERSION:$(BLD_VER)" >> $(LINKDEF);\
|
||||
echo "/WARN:3" >> $(LINKDEF);
|
||||
3
c_test/sdk_sshtst/objs.lux
Normal file
3
c_test/sdk_sshtst/objs.lux
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
sshtst.$(O)
|
||||
|
||||
3
c_test/sdk_sshtst/objs.w32
Normal file
3
c_test/sdk_sshtst/objs.w32
Normal file
@@ -0,0 +1,3 @@
|
||||
OBJS=\
|
||||
sshtst.$(O)
|
||||
|
||||
15
c_test/sdk_sshtst/resource.h
Normal file
15
c_test/sdk_sshtst/resource.h
Normal file
@@ -0,0 +1,15 @@
|
||||
//{{NO_DEPENDENCIES}}
|
||||
// Microsoft Developer Studio generated include file.
|
||||
// Used by lsstest.rc
|
||||
//
|
||||
|
||||
// Next default values for new objects
|
||||
//
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NEXT_RESOURCE_VALUE 101
|
||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||
#define _APS_NEXT_CONTROL_VALUE 1000
|
||||
#define _APS_NEXT_SYMED_VALUE 101
|
||||
#endif
|
||||
#endif
|
||||
1757
c_test/sdk_sshtst/sshtst.c
Normal file
1757
c_test/sdk_sshtst/sshtst.c
Normal file
File diff suppressed because it is too large
Load Diff
90
c_test/sdk_sshtst/sshtst.dsp
Normal file
90
c_test/sdk_sshtst/sshtst.dsp
Normal file
@@ -0,0 +1,90 @@
|
||||
# Microsoft Developer Studio Project File - Name="sshtst" - Package Owner=<4>
|
||||
# Microsoft Developer Studio Generated Build File, Format Version 6.00
|
||||
# ** DO NOT EDIT **
|
||||
|
||||
# TARGTYPE "Win32 (x86) Console Application" 0x0103
|
||||
|
||||
CFG=sshtst - Win32 Debug
|
||||
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
|
||||
!MESSAGE use the Export Makefile command and run
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sshtst.mak".
|
||||
!MESSAGE
|
||||
!MESSAGE You can specify a configuration when running NMAKE
|
||||
!MESSAGE by defining the macro CFG on the command line. For example:
|
||||
!MESSAGE
|
||||
!MESSAGE NMAKE /f "sshtst.mak" CFG="sshtst - Win32 Debug"
|
||||
!MESSAGE
|
||||
!MESSAGE Possible choices for configuration are:
|
||||
!MESSAGE
|
||||
!MESSAGE "sshtst - Win32 Release" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE "sshtst - Win32 Debug" (based on "Win32 (x86) Console Application")
|
||||
!MESSAGE
|
||||
|
||||
# Begin Project
|
||||
# PROP AllowPerConfigDependencies 0
|
||||
# PROP Scc_ProjName ""
|
||||
# PROP Scc_LocalPath ""
|
||||
CPP=cl.exe
|
||||
RSC=rc.exe
|
||||
|
||||
!IF "$(CFG)" == "sshtst - Win32 Release"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 0
|
||||
# PROP BASE Output_Dir "Release"
|
||||
# PROP BASE Intermediate_Dir "Release"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 0
|
||||
# PROP Output_Dir "Release"
|
||||
# PROP Intermediate_Dir "Release"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD CPP /nologo /W3 /GX /O2 /I "I:\include" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
|
||||
# ADD BASE RSC /l 0x409 /d "NDEBUG"
|
||||
# ADD RSC /l 0x409 /d "NDEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
|
||||
# ADD LINK32 nsss.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /libpath:"I:\bin\w32\md"
|
||||
|
||||
!ELSEIF "$(CFG)" == "sshtst - Win32 Debug"
|
||||
|
||||
# PROP BASE Use_MFC 0
|
||||
# PROP BASE Use_Debug_Libraries 1
|
||||
# PROP BASE Output_Dir "Debug"
|
||||
# PROP BASE Intermediate_Dir "Debug"
|
||||
# PROP BASE Target_Dir ""
|
||||
# PROP Use_MFC 0
|
||||
# PROP Use_Debug_Libraries 1
|
||||
# PROP Output_Dir "Debug"
|
||||
# PROP Intermediate_Dir "Debug"
|
||||
# PROP Ignore_Export_Lib 0
|
||||
# PROP Target_Dir ""
|
||||
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "I:\include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
|
||||
# ADD BASE RSC /l 0x409 /d "_DEBUG"
|
||||
# ADD RSC /l 0x409 /d "_DEBUG"
|
||||
BSC32=bscmake.exe
|
||||
# ADD BASE BSC32 /nologo
|
||||
# ADD BSC32 /nologo
|
||||
LINK32=link.exe
|
||||
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
|
||||
# ADD LINK32 nsscssdk_mdd.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"I:\bin\w32\mdd"
|
||||
|
||||
!ENDIF
|
||||
|
||||
# Begin Target
|
||||
|
||||
# Name "sshtst - Win32 Release"
|
||||
# Name "sshtst - Win32 Debug"
|
||||
# Begin Source File
|
||||
|
||||
SOURCE=.\sshtst.c
|
||||
# End Source File
|
||||
# End Target
|
||||
# End Project
|
||||
29
c_test/sdk_sshtst/sshtst.dsw
Normal file
29
c_test/sdk_sshtst/sshtst.dsw
Normal file
@@ -0,0 +1,29 @@
|
||||
Microsoft Developer Studio Workspace File, Format Version 6.00
|
||||
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
|
||||
|
||||
###############################################################################
|
||||
|
||||
Project: "sshtst"=.\sshtst.dsp - Package Owner=<4>
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<4>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
Global:
|
||||
|
||||
Package=<5>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
Package=<3>
|
||||
{{{
|
||||
}}}
|
||||
|
||||
###############################################################################
|
||||
|
||||
BIN
c_test/sdk_sshtst/sshtst.ncb
Normal file
BIN
c_test/sdk_sshtst/sshtst.ncb
Normal file
Binary file not shown.
138
c_test/sdk_sshtst/sshtst.rc
Normal file
138
c_test/sdk_sshtst/sshtst.rc
Normal file
@@ -0,0 +1,138 @@
|
||||
/******************************************************************************
|
||||
%name: sshtst.rc %
|
||||
%version: 1 %
|
||||
%date_modified: Mon Dec 06 20:46:04 2004 %
|
||||
*
|
||||
* File Name: sshtst.rc
|
||||
*
|
||||
* Description: This is the sshtst resource file.
|
||||
*
|
||||
* Author(s): Cameron Mashayekhi
|
||||
*
|
||||
* Modifier(s): None.
|
||||
*
|
||||
* Unpublished Copyright (c) (1998-2003) Novell, All Rights Reserved.
|
||||
*
|
||||
* THIS WORK IS SUBJECT TO U.S. AND INTERNATIONAL COPYRIGHT LAWS AND TREATIES.
|
||||
* USE AND REDISTRIBUTION OF THIS WORK IS SUBJECT TO THE LICENSE AGREEMENT
|
||||
* ACCOMPANYING THE SOFTWARE DEVELOPMENT KIT (SDK) THAT CONTAINS THIS WORK.
|
||||
* PURSUANT TO THE SDK LICENSE AGREEMENT, NOVELL HEREBY GRANTS TO DEVELOPER A
|
||||
* ROYALTY-FREE, NON-EXCLUSIVE LICENSE TO INCLUDE NOVELL'S SAMPLE CODE IN ITS
|
||||
* PRODUCT. NOVELL GRANTS DEVELOPER WORLDWIDE DISTRIBUTION RIGHTS TO MARKET,
|
||||
* DISTRIBUTE, OR SELL NOVELL'S SAMPLE CODE AS A COMPONENT OF DEVELOPER'S
|
||||
* PRODUCTS. NOVELL SHALL HAVE NO OBLIGATIONS TO DEVELOPER OR DEVELOPER'S
|
||||
* CUSTOMERS WITH RESPECT TO THIS CODE.
|
||||
*
|
||||
*****************************************************************************/
|
||||
//Microsoft Developer Studio generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 2 resource.
|
||||
//
|
||||
#include "afxres.h"
|
||||
#include "ssbldver.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#undef APSTUDIO_READONLY_SYMBOLS
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
// English (U.S.) resources
|
||||
|
||||
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
|
||||
#ifdef _WIN32
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
#pragma code_page(1252)
|
||||
#endif //_WIN32
|
||||
|
||||
#ifndef _MAC
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Version
|
||||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION WSS_BLD_NO
|
||||
PRODUCTVERSION WSS_BLD_NO
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "FileDescription", SSS_WSSHTEST_PR_STRING
|
||||
VALUE "OriginalFilename", SSS_WSSHTEST_STR
|
||||
VALUE "Comments", SSS_WCLUTIL_STRING
|
||||
VALUE "CompanyName", SSS_COMPANY_STR
|
||||
VALUE "FileVersion", WSS_BLD_STR
|
||||
VALUE "LegalCopyright", SSS_COPYRIGHT_STR
|
||||
VALUE "LegalTrademarks", SSS_PATENT_STR
|
||||
VALUE "ProductName", SSS_PRODUCT_STR
|
||||
VALUE "ProductVersion", GSS_BLD_STR
|
||||
VALUE "SpecialBuild", SSS_DEVBLD_STR
|
||||
#ifdef DEBUG
|
||||
VALUE "PrivateBuild", SSS_DEBUG_VER_STR
|
||||
VALUE "InternalName", SSS_WSSHTEST_STR_DBG
|
||||
#endif
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
||||
#endif // !_MAC
|
||||
|
||||
|
||||
#ifdef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// TEXTINCLUDE
|
||||
//
|
||||
|
||||
1 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"resource.h\0"
|
||||
END
|
||||
|
||||
2 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"#include ""afxres.h""\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
3 TEXTINCLUDE DISCARDABLE
|
||||
BEGIN
|
||||
"\r\n"
|
||||
"\0"
|
||||
END
|
||||
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
||||
#endif // English (U.S.) resources
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
|
||||
#ifndef APSTUDIO_INVOKED
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Generated from the TEXTINCLUDE 3 resource.
|
||||
//
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
#endif // not APSTUDIO_INVOKED
|
||||
|
||||
21
c_test/sdk_sshtst/sshtst.sln
Normal file
21
c_test/sdk_sshtst/sshtst.sln
Normal file
@@ -0,0 +1,21 @@
|
||||
Microsoft Visual Studio Solution File, Format Version 8.00
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sshtst", "sshtst.vcproj", "{48BF7628-6AD4-4FF7-AD10-AA87F541385E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfiguration) = preSolution
|
||||
Debug = Debug
|
||||
Release = Release
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfiguration) = postSolution
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Debug.ActiveCfg = Debug|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Debug.Build.0 = Debug|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Release.ActiveCfg = Release|Win32
|
||||
{48BF7628-6AD4-4FF7-AD10-AA87F541385E}.Release.Build.0 = Release|Win32
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityAddIns) = postSolution
|
||||
EndGlobalSection
|
||||
EndGlobal
|
||||
BIN
c_test/sdk_sshtst/sshtst.suo
Normal file
BIN
c_test/sdk_sshtst/sshtst.suo
Normal file
Binary file not shown.
174
c_test/sdk_sshtst/sshtst.vcproj
Normal file
174
c_test/sdk_sshtst/sshtst.vcproj
Normal file
@@ -0,0 +1,174 @@
|
||||
<?xml version="1.0" encoding="Windows-1252"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="7.10"
|
||||
Name="sshtst"
|
||||
ProjectGUID="{2635AF48-A4B2-42BD-97E2-A9AD9FF79E8C}"
|
||||
SccProjectName=""
|
||||
SccLocalPath="">
|
||||
<Platforms>
|
||||
<Platform
|
||||
Name="Win32"/>
|
||||
</Platforms>
|
||||
<Configurations>
|
||||
<Configuration
|
||||
Name="Debug|Win32"
|
||||
OutputDirectory=".\Debug"
|
||||
IntermediateDirectory=".\Debug"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;_DEBUG;_CONSOLE"
|
||||
BasicRuntimeChecks="3"
|
||||
RuntimeLibrary="5"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderFile=".\Debug/sshtst.pch"
|
||||
AssemblerListingLocation=".\Debug/"
|
||||
ObjectFile=".\Debug/"
|
||||
ProgramDataBaseFileName=".\Debug/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
DebugInformationFormat="4"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa_mdd.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\Debug/sshtst.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\bin\w32\mdd"
|
||||
GenerateDebugInformation="TRUE"
|
||||
ProgramDatabaseFile=".\Debug/sshtst.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Debug/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="_DEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
<Configuration
|
||||
Name="Release|Win32"
|
||||
OutputDirectory=".\Release"
|
||||
IntermediateDirectory=".\Release"
|
||||
ConfigurationType="1"
|
||||
UseOfMFC="0"
|
||||
ATLMinimizesCRunTimeLibraryUsage="FALSE"
|
||||
CharacterSet="2">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
InlineFunctionExpansion="1"
|
||||
AdditionalIncludeDirectories="D:\ccm\SSClient\SecretStoreClient_src\include"
|
||||
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
|
||||
StringPooling="TRUE"
|
||||
RuntimeLibrary="4"
|
||||
EnableFunctionLevelLinking="TRUE"
|
||||
UsePrecompiledHeader="2"
|
||||
PrecompiledHeaderFile=".\Release/sshtst.pch"
|
||||
AssemblerListingLocation=".\Release/"
|
||||
ObjectFile=".\Release/"
|
||||
ProgramDataBaseFileName=".\Release/"
|
||||
WarningLevel="3"
|
||||
SuppressStartupBanner="TRUE"
|
||||
CompileAs="0"/>
|
||||
<Tool
|
||||
Name="VCCustomBuildTool"/>
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="micasa.lib odbc32.lib odbccp32.lib"
|
||||
OutputFile=".\Release/sshtst.exe"
|
||||
LinkIncremental="1"
|
||||
SuppressStartupBanner="TRUE"
|
||||
AdditionalLibraryDirectories="D:\ccm\SSClient\SecretStoreClient_src\lib\w32"
|
||||
ProgramDatabaseFile=".\Release/sshtst.pdb"
|
||||
SubSystem="1"
|
||||
TargetMachine="1"/>
|
||||
<Tool
|
||||
Name="VCMIDLTool"
|
||||
TypeLibraryName=".\Release/sshtst.tlb"
|
||||
HeaderFileName=""/>
|
||||
<Tool
|
||||
Name="VCPostBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreBuildEventTool"/>
|
||||
<Tool
|
||||
Name="VCPreLinkEventTool"/>
|
||||
<Tool
|
||||
Name="VCResourceCompilerTool"
|
||||
PreprocessorDefinitions="NDEBUG"
|
||||
Culture="1033"/>
|
||||
<Tool
|
||||
Name="VCWebServiceProxyGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCXMLDataGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCWebDeploymentTool"/>
|
||||
<Tool
|
||||
Name="VCManagedWrapperGeneratorTool"/>
|
||||
<Tool
|
||||
Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
|
||||
</Configuration>
|
||||
</Configurations>
|
||||
<References>
|
||||
</References>
|
||||
<Files>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\micasa_mgmd.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\include\sscs_ipc.h">
|
||||
</File>
|
||||
<File
|
||||
RelativePath="sshtst.c">
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""
|
||||
BasicRuntimeChecks="3"/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32">
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="2"
|
||||
AdditionalIncludeDirectories=""
|
||||
PreprocessorDefinitions=""/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
</Files>
|
||||
<Globals>
|
||||
</Globals>
|
||||
</VisualStudioProject>
|
||||
26
c_test/sdk_sshtst/target
Normal file
26
c_test/sdk_sshtst/target
Normal file
@@ -0,0 +1,26 @@
|
||||
include link$(xtra).$(PLAT)
|
||||
|
||||
all : $(BIN_NAME)
|
||||
|
||||
$(BIN_NAME) : $(OBJS)
|
||||
@echo Linking $@ ...
|
||||
@$(LINK_DEF_BLD)
|
||||
$(LINK)
|
||||
$(RM) $(LINKDEF)
|
||||
$(TSTPACK)
|
||||
@echo
|
||||
|
||||
install :
|
||||
@echo client Installing $< ...
|
||||
|
||||
## The binaries
|
||||
ifeq ($(PLAT),w32)
|
||||
$(CP) Release/$(BIN_NAME) $(INSTALLDIR)tools/w32
|
||||
else
|
||||
$(CP) $(BINDIR)$(basename $(BIN_NAME)).$(BIN) $(INSTALLDIR)tools/lux
|
||||
endif
|
||||
|
||||
clean :
|
||||
@echo Cleaning ...
|
||||
$(RM) *.err *.bak *.i *.res $(OBJDIR)*.$(O) $(OBJDIR)*.res Release/*.*
|
||||
|
||||
20
c_test/unx_cachetst/Makefile
Normal file
20
c_test/unx_cachetst/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = testcache
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
BIN_NAME = $(TARGET)$(xtra).$(BIN)
|
||||
LIB_NAME = $(TARGET)$(xtra).$(LIB)
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target
|
||||
5
c_test/unx_cachetst/link.lux
Normal file
5
c_test/unx_cachetst/link.lux
Normal file
@@ -0,0 +1,5 @@
|
||||
LINK = $(CXX) \
|
||||
-o $(BINDIR)$(TARGET) \
|
||||
$(OBJDIR)/*.$(O) \
|
||||
-L$(LIBDIR)$(XTRA) -lmicasacache \
|
||||
-L/usr/lib -lpthread -lc -lnsl
|
||||
2
c_test/unx_cachetst/objs.lux
Normal file
2
c_test/unx_cachetst/objs.lux
Normal file
@@ -0,0 +1,2 @@
|
||||
OBJS=\
|
||||
|
||||
213
c_test/unx_cachetst/sscs_unxcachetst.c
Normal file
213
c_test/unx_cachetst/sscs_unxcachetst.c
Normal file
@@ -0,0 +1,213 @@
|
||||
#include "sscs_cache.h"
|
||||
#include <wchar.h>
|
||||
#include <assert.h>
|
||||
|
||||
#define MAX_ID_LIST_BUF 4*1024
|
||||
#define MAX_SECRET_VAL_LEN 1024
|
||||
#define MAX_RETURNED_IDS 10
|
||||
|
||||
void enumerateIDs(SSCS_SECRETSTORE_HANDLE_T *ssHandle,int type,
|
||||
SSCS_KEYCHAIN_ID_T *keychainID)
|
||||
{
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_ID_LIST_T secretIDList;
|
||||
uint32_t ssFlags = 0;
|
||||
int retVal,i=0;
|
||||
|
||||
if(type == 0) //keychains
|
||||
{
|
||||
printf("Enumerate keychains\n----------------------\n");
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle, ssFlags,NULL, &kcIDList,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
}
|
||||
else //secrets
|
||||
{
|
||||
printf("Enumerate secrets\n-----------------\n");
|
||||
secretIDList.secIDList = (SSCS_SECRET_ID_T*)malloc(
|
||||
sizeof(SSCS_SECRET_ID_T)* MAX_RETURNED_IDS);
|
||||
assert(secretIDList.secIDList);
|
||||
|
||||
secretIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateSecretIDs(ssHandle, ssFlags, keychainID, NULL, &secretIDList, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateSecretIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
for( i = 0 ; i < secretIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",secretIDList.secIDList[i].id);
|
||||
}
|
||||
|
||||
free(secretIDList.secIDList);
|
||||
|
||||
}
|
||||
printf("---------------------------------\n");
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int n = 0,z=0;
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
uint32_t bytesRequired;
|
||||
wchar_t *testssName;
|
||||
unsigned char testssNameUTF[1024];
|
||||
wchar_t *testkcId;
|
||||
unsigned char testkcIdUTF[1024];
|
||||
wchar_t *testsecretId;
|
||||
unsigned char testsecretIdUTF[1024];
|
||||
wchar_t **wptr = NULL;
|
||||
|
||||
uint32_t ssFlags = 0;
|
||||
int retVal = 0;
|
||||
int i;
|
||||
SSCS_SECRET_T mySecret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
SSCS_SECRET_ID_T mySecretID;
|
||||
SSCS_KEYCHAIN_ID_T mykeychainID;
|
||||
SSCS_KEYCHAIN_ID_T newkeychainID;
|
||||
|
||||
memset(&mykeychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
testkcId = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testkcId);
|
||||
|
||||
//All this required when we have some real wchars :-)
|
||||
wcscpy(testkcId,L"SSCS_SESSION_KEY_CHAIN_ID");
|
||||
wptr = &testkcId;
|
||||
mykeychainID.len = wcsrtombs(testkcIdUTF,wptr,1024,NULL);
|
||||
mykeychainID.len+=1;
|
||||
memcpy(mykeychainID.keychainID,testkcIdUTF,mykeychainID.len);
|
||||
|
||||
memset(&mySecretID,0,sizeof(mySecretID));
|
||||
testsecretId = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testsecretId);
|
||||
wcscpy(testsecretId,L"MySecret");
|
||||
|
||||
wptr = &testsecretId;
|
||||
mySecretID.len = wcsrtombs(testsecretIdUTF,wptr,1024,NULL);
|
||||
mySecretID.len +=1;
|
||||
memcpy(mySecretID.id,testsecretIdUTF,mySecretID.len);
|
||||
|
||||
mySecret.len = MAX_SECRET_VAL_LEN;
|
||||
mySecret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(mySecret.data);
|
||||
|
||||
secID.version = 0x00040000;
|
||||
testssName = (wchar_t*)malloc(1024*sizeof(wchar_t));
|
||||
assert(testssName);
|
||||
wcscpy(testssName,L"SecretStoreName");
|
||||
wptr = &testssName;
|
||||
n = wcsrtombs(testssNameUTF,wptr,1024,NULL);
|
||||
memcpy(secID.ssName,testssNameUTF,n);
|
||||
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheOpenSecretStore succesful\n");
|
||||
|
||||
ssFlags |= SSCS_SESSION_KEY_CHAIN_F;
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&mykeychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheAddKeychain succesfully added - %s\n",mykeychainID.keychainID);
|
||||
|
||||
enumerateIDs(ssHandle,0,NULL);
|
||||
//Add Secret
|
||||
mySecret.len = 4;
|
||||
memcpy(mySecret.data,"Test",4);
|
||||
|
||||
retVal = sscs_CacheWriteSecret(ssHandle, ssFlags, &mykeychainID,
|
||||
&mySecretID, &mySecret,&epPassword ,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheWriteSecret added to ID - %s\n", mySecretID.id);
|
||||
|
||||
mySecret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(mySecret.data,0,MAX_SECRET_VAL_LEN);
|
||||
|
||||
retVal = sscs_CacheReadSecret(ssHandle, ssFlags, &mykeychainID,&mySecretID, &mySecret, &epPassword, &bytesRequired, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheReadSecret- read ID - %s\n",mySecretID.id);
|
||||
printf("SecretVal is %s\n",mySecret.data);
|
||||
}
|
||||
// free(mySecret.data);
|
||||
|
||||
|
||||
enumerateIDs(ssHandle, 1,&mykeychainID);
|
||||
printf("Removing Secret...\n");
|
||||
retVal = sscs_CacheRemoveSecret(ssHandle,ssFlags, &mykeychainID,
|
||||
&mySecretID,
|
||||
&epPassword, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheRemoveSecret removed id - %S\n",mySecretID.id)
|
||||
;
|
||||
|
||||
enumerateIDs(ssHandle, 1,&mykeychainID);
|
||||
|
||||
//remove keychain
|
||||
|
||||
printf("Removing Keychain...\n");
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &mykeychainID, NULL)
|
||||
;
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheRemoveKeychain removed keychain - %s\n",mykeychainID.keychainID);
|
||||
|
||||
enumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle,ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
printf("sscs_CacheCloseSecretStore success: %d\n",retVal);
|
||||
|
||||
free(testkcId);
|
||||
free(testsecretId);
|
||||
free(mySecret.data);
|
||||
free(testssName);
|
||||
|
||||
printf("Completed testing\n");
|
||||
return 0;
|
||||
}
|
||||
17
c_test/unx_cachetst/target
Normal file
17
c_test/unx_cachetst/target
Normal file
@@ -0,0 +1,17 @@
|
||||
include link$(xtra).$(PLAT)
|
||||
|
||||
all : $(BIN_NAME)
|
||||
|
||||
|
||||
|
||||
$(BIN_NAME) : $(OBJS)
|
||||
|
||||
@echo Linking $@ ...
|
||||
|
||||
$(LINK)
|
||||
|
||||
@echo
|
||||
|
||||
|
||||
|
||||
#install : all
|
||||
20
c_test/unx_testcases/Makefile
Normal file
20
c_test/unx_testcases/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
#
|
||||
# configure environment
|
||||
#
|
||||
TARGET = testcases
|
||||
include global.mak
|
||||
include defaults.$(PLAT)
|
||||
include rules.mak
|
||||
|
||||
BIN_NAME = $(TARGET)$(xtra).$(BIN)
|
||||
LIB_NAME = $(TARGET)$(xtra).$(LIB)
|
||||
|
||||
#
|
||||
# target object and source files
|
||||
#
|
||||
include objs.$(PLAT)
|
||||
|
||||
#
|
||||
# targets
|
||||
#
|
||||
include target
|
||||
762
c_test/unx_testcases/cache_keychain_fns.c
Normal file
762
c_test/unx_testcases/cache_keychain_fns.c
Normal file
@@ -0,0 +1,762 @@
|
||||
/* This file contains all the keychain related test cases.
|
||||
*/
|
||||
#include "testcases.h"
|
||||
|
||||
void EnumerateIDs(SSCS_SECRETSTORE_HANDLE_T *ssHandle,int type,
|
||||
SSCS_KEYCHAIN_ID_T *keychainID)
|
||||
{
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_ID_LIST_T secretIDList;
|
||||
|
||||
uint32_t ssFlags = 0;
|
||||
unsigned int bytesRequired = 0;
|
||||
int i = 0;
|
||||
|
||||
int retVal = 0;
|
||||
if(type == 0) //keychains
|
||||
{
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
//kcIDList.bufferSizeRequired = sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS;
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle, ssFlags,NULL, &kcIDList,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("KEYCHAINLIST : \n");
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
}
|
||||
else //secrets
|
||||
{
|
||||
secretIDList.secIDList = (SSCS_SECRET_ID_T*)malloc(
|
||||
sizeof(SSCS_SECRET_ID_T)* MAX_RETURNED_IDS);
|
||||
assert(secretIDList.secIDList);
|
||||
|
||||
// secretIDList.bufferSizeRequired = sizeof(SSCS_SECRET_ID_T)* MAX_RETURNED_IDS;
|
||||
secretIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateSecretIDs(ssHandle, ssFlags, keychainID, NULL, &secretIDList, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateSecretIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("SECRETIDLIST:\n");
|
||||
for( i = 0 ; i < secretIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",secretIDList.secIDList[i].id);
|
||||
}
|
||||
|
||||
free(secretIDList.secIDList);
|
||||
}
|
||||
}
|
||||
|
||||
void TestCacheAddKeyChain_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain") +1 ;
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding keychain - %s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheAddKeyChain_LongKeychainId(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),LONG_WSTRING);
|
||||
keychainID.len = strlen(LONG_WSTRING) + 1;
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
PRINT_ERR;
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheAddKeyChain_ExistingKeychain(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
unsigned int bytesRequired = 0;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain") + 1;
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
printf("Adding keychain %s\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
printf("Re-adding keychain %S\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
#define NSSCS_MAX_KEYCHAINS 10
|
||||
|
||||
void TestCacheAddKeyChain_MaxKeychains(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
int i = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
// wchar_t *keychainID = L"MyKeychain";
|
||||
char keychainID[256] = "";
|
||||
char ch = 'a';
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainIDStruct;
|
||||
memset(&keychainIDStruct,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
for( i = 0 ; i < NSSCS_MAX_KEYCHAINS + 1 ; i++ )
|
||||
{
|
||||
sprintf(keychainID,"key%c",ch+i);
|
||||
|
||||
printf("Adding %s\n",keychainIDStruct.keychainID);
|
||||
|
||||
strcpy((char*)(keychainIDStruct.keychainID),keychainID);
|
||||
keychainIDStruct.len = strlen(keychainID)+1;
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainIDStruct,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
}
|
||||
|
||||
memset(keychainID,0,sizeof(keychainID));
|
||||
for( i = 0 ; i < NSSCS_MAX_KEYCHAINS + 1 ; i++ )
|
||||
{
|
||||
sprintf(keychainID,"key%c",ch+i);
|
||||
|
||||
printf("Removing %s\n",keychainIDStruct.keychainID);
|
||||
strcpy((char*)(keychainIDStruct.keychainID),keychainID);
|
||||
keychainIDStruct.len = strlen(keychainID)+1;
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &keychainIDStruct,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheEnumerateKeyChainIds_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
int i = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
// kcIDList.bufferSizeRequired = sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS;
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
|
||||
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle,ssFlags, NULL,&kcIDList,
|
||||
NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("KEYCHAINLIST\n");
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
|
||||
void TestCacheEnumerateKeyChainIds_WithoutOpen(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T cookedUpSSHandle;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int socketFd = FAKE_SOCK_FD;
|
||||
int retVal = 0;
|
||||
int i = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE
|
||||
|
||||
/* Passing a cookedup SSHandle */
|
||||
printf("INPUT: Cookedup SSHandle\n");
|
||||
cookedUpSSHandle.platformID = 1;
|
||||
cookedUpSSHandle.platHandle = (int*)&socketFd;
|
||||
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
// kcIDList.bufferSizeRequired = sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS;
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(&cookedUpSSHandle,ssFlags, NULL, &kcIDList,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("KEYCHAINLIST\n");
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheEnumerateKeyChainIds_LessBufferLen(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
uint32_t ssFlags = 0;
|
||||
int retVal = 0;
|
||||
int i = 0;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain1");
|
||||
keychainID.len = strlen("MyKeychain1")+1;
|
||||
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
printf("Adding keychain..%s\n",keychainID.keychainID);
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain2");
|
||||
keychainID.len = strlen("MyKeychain2")+1;
|
||||
|
||||
printf("Adding keychain..%s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
// kcIDList.bufferSizeRequired = sizeof(SSCS_KEYCHAIN_ID_T) * 1;
|
||||
kcIDList.returnedIDs = 1;
|
||||
|
||||
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle, ssFlags, NULL, &kcIDList,
|
||||
NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("KEYCHAINLIST\n");
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
|
||||
free(kcIDList.keyChainIDList);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &keychainID, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain1");
|
||||
keychainID.len = strlen("MyKeychain1")+1;
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &keychainID, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheEnumerateKeyChainIds_WithNoKeychains(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
int i = 0;
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
kcIDList.keyChainIDList = (SSCS_KEYCHAIN_ID_T *)malloc(
|
||||
sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS );
|
||||
assert(kcIDList.keyChainIDList);
|
||||
|
||||
// kcIDList.bufferSizeRequired = sizeof(SSCS_KEYCHAIN_ID_T) * MAX_RETURNED_IDS;
|
||||
kcIDList.returnedIDs = MAX_RETURNED_IDS;
|
||||
retVal = sscs_CacheEnumerateKeychainIDs(ssHandle, ssFlags,NULL, &kcIDList,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheEnumerateKeychainIDs failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("KEYCHAINLIST\n");
|
||||
for( i = 0 ; i < kcIDList.returnedIDs; i++ )
|
||||
{
|
||||
printf("%s\n",kcIDList.keyChainIDList[i].keychainID);
|
||||
}
|
||||
}
|
||||
free(kcIDList.keyChainIDList);
|
||||
kcIDList.keyChainIDList = NULL;
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
|
||||
void TestCacheRemoveKeyChain_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
printf("Adding %s \n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
printf("Removing %s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
EnumerateIDs(ssHandle,0,&keychainID);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheRemoveKeyChain_NonExistentKeychain(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"Non-existent");
|
||||
keychainID.len = strlen("Non-existent")+1;
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
printf("Removing %s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
EnumerateIDs(ssHandle,0,&keychainID);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheRemoveKeyChain_OverlappingNames(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
int retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"Keychain1");
|
||||
keychainID.len = strlen("Keychain1")+1;
|
||||
|
||||
/* sscs_CacheOpenSecretStore */
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding %s \n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
strcpy(keychainID.keychainID,"Keychain1");
|
||||
keychainID.len = strlen("Keychain1")+1;
|
||||
printf("Adding %s \n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
strcpy(keychainID.keychainID,"Keychain");
|
||||
keychainID.len = strlen("Keychain")+1;
|
||||
|
||||
printf("Removing %s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags, &keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
EnumerateIDs(ssHandle,0,&keychainID);
|
||||
|
||||
strcpy(keychainID.keychainID,"Keychain1");
|
||||
keychainID.len = strlen("Keychain1")+1;
|
||||
printf("Removing %s\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,&keychainID);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
598
c_test/unx_testcases/cache_secret_fns.c
Normal file
598
c_test/unx_testcases/cache_secret_fns.c
Normal file
@@ -0,0 +1,598 @@
|
||||
/* This file contains all the keychain related test cases.
|
||||
*/
|
||||
#include "testcases.h"
|
||||
#include <assert.h>
|
||||
|
||||
extern void EnumerateIDs(SSCS_SECRETSTORE_HANDLE_T *ssHandle,int type,
|
||||
SSCS_KEYCHAIN_ID_T *keychainID);
|
||||
|
||||
|
||||
void TestCacheRWRmSecret_ValidAddSecret(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_T secret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
|
||||
unsigned int bytesRequired = 0;
|
||||
unsigned long ssFlags = 0;
|
||||
int retVal = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
SSCS_SECRET_ID_T secretID;
|
||||
memset(&secretID,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID.id),"secret1");
|
||||
secretID.len = strlen("secret1")+1;
|
||||
|
||||
int i = 0;
|
||||
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
printf("Adding %s\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
memset(&secret,0,sizeof(secret));
|
||||
secret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(secret.data);
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
secret.len = 6;
|
||||
memcpy(secret.data,"value1",secret.len);
|
||||
|
||||
printf("Adding secret %S with value %s\n",secretID.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
printf("Verifying the written secret's value...\n");
|
||||
|
||||
secret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
retVal = sscs_CacheReadSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret, &epPassword,&bytesRequired, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
printf("secret len is %d\n",secret.len);
|
||||
printf("Value is ");
|
||||
for(i = 0;i < secret.len; i++ )
|
||||
{
|
||||
printf("%c",secret.data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
printf("Removing %S\n",secretID.id);
|
||||
retVal = sscs_CacheRemoveSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveSecret failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,1,&keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
// EnumerateIDs(ssHandle,1,&keychainID);
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheRWRmSecret_LongSecretID(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_T secret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
|
||||
unsigned int bytesRequired = 0;
|
||||
int retVal = 0;
|
||||
unsigned long ssFlags = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
SSCS_SECRET_ID_T secretID;
|
||||
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
memset(&secretID,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID.id),"secret1");
|
||||
secretID.len = strlen("secret1")+1;
|
||||
|
||||
int i = 0;
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
|
||||
printf("Adding %s\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
memset(&secret,0,sizeof(secret));
|
||||
secret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(secret.data);
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
secret.len = 6;
|
||||
memcpy(secret.data,"value1",secret.len);
|
||||
|
||||
printf("Adding secret %s with value %s\n",secretID.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
printf("Removing %s\n",secretID.id);
|
||||
retVal = sscs_CacheRemoveSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveSecret failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,1,&keychainID);
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
// EnumerateIDs(ssHandle,1,&keychainID);
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
|
||||
void TestCacheRWSecret_ValidUpdateSecret(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_T secret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
|
||||
unsigned int bytesRequired = 0;
|
||||
int retVal = 0;
|
||||
unsigned long ssFlags = 0;
|
||||
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
SSCS_SECRET_ID_T secretID;
|
||||
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
memset(&secretID,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID.id),"secret1");
|
||||
secretID.len = strlen("secret1")+1;
|
||||
|
||||
int i = 0;
|
||||
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags,NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding %s\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
memset(&secret,0,sizeof(secret));
|
||||
secret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(secret.data);
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
secret.len = 6;
|
||||
|
||||
memcpy(secret.data,"value1",secret.len);
|
||||
|
||||
printf("Adding secret %s with value %s\n",secretID.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
secret.len = 9;
|
||||
memcpy(secret.data,"newvalue1",secret.len);
|
||||
printf("Updating secret %s with value %s\n",secretID.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
|
||||
printf("Verifying the written secret's value...\n");
|
||||
|
||||
secret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
retVal = sscs_CacheReadSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,&bytesRequired,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
printf("secret len is %d\n",secret.len);
|
||||
printf("Value is ");
|
||||
for(i = 0;i < secret.len; i++ )
|
||||
{
|
||||
printf("%c",secret.data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
printf("Removing a keychain with secret..\n");
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
// EnumerateIDs(ssHandle,1,&keychainID);
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheRWRmSecret_NonExistentKeychain(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_T secret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
|
||||
unsigned int bytesRequired = 0;
|
||||
int retVal = 0;
|
||||
unsigned long ssFlags = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
SSCS_SECRET_ID_T secretID;
|
||||
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
memset(&secretID,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID.id),"secret1");
|
||||
secretID.len = strlen("secret1")+1;
|
||||
|
||||
int i = 0;
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
#if 0
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding %S\n",keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
#endif
|
||||
|
||||
memset(&secret,0,sizeof(secret));
|
||||
secret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(secret.data);
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
secret.len = 6;
|
||||
memcpy(secret.data,"value1",secret.len);
|
||||
|
||||
printf("Adding secret %s with value %s\n",secretID.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
printf("Verifying the written secret's value...\n");
|
||||
|
||||
secret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
retVal = sscs_CacheReadSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&secret, &epPassword,&bytesRequired,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("secret len is %d\n",secret.len);
|
||||
printf("Value is ");
|
||||
for(i = 0;i < secret.len; i++ )
|
||||
{
|
||||
printf("%c",secret.data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
retVal = sscs_CacheRemoveSecret(ssHandle,ssFlags,&keychainID,&secretID,
|
||||
&epPassword, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveSecret failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
// EnumerateIDs(ssHandle,1,&keychainID);
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheRWRmSecret_OverlappingNames(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_ID_LIST_T kcIDList;
|
||||
SSCS_SECRET_T secret;
|
||||
SSCS_PASSWORD_T epPassword = {0,0,""};
|
||||
|
||||
unsigned int bytesRequired = 0;
|
||||
int retVal = 0;
|
||||
unsigned int ssFlags = 0;
|
||||
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
SSCS_SECRET_ID_T secretID1;
|
||||
SSCS_SECRET_ID_T secretID2;
|
||||
|
||||
memset(&keychainID,0,sizeof(SSCS_KEYCHAIN_ID_T));
|
||||
strcpy((char*)(keychainID.keychainID),"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain")+1;
|
||||
|
||||
memset(&secretID1,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID1.id),"secret1");
|
||||
secretID1.len = strlen("secret1")+1;
|
||||
|
||||
memset(&secretID2,0,sizeof(SSCS_SECRET_ID_T));
|
||||
strcpy((char*)(secretID2.id),"secret2");
|
||||
secretID2.len = strlen("secret2")+1;
|
||||
|
||||
int i = 0;
|
||||
|
||||
DECORATE
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding %s\n",keychainID.keychainID);
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
EnumerateIDs(ssHandle,0,NULL);
|
||||
|
||||
memset(&secret,0,sizeof(secret));
|
||||
secret.data = (char *)malloc(MAX_SECRET_VAL_LEN);
|
||||
assert(secret.data);
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
secret.len = 6;
|
||||
memcpy(secret.data,"value1",secret.len);
|
||||
|
||||
printf("Adding secret %S with value %s\n",secretID1.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID1,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
memcpy(secret.data,"value2",secret.len);
|
||||
printf("Adding secret %s with value %s\n",secretID2.id,secret.data);
|
||||
retVal = sscs_CacheWriteSecret(ssHandle,ssFlags,&keychainID,&secretID2,
|
||||
&secret,&epPassword,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheWriteSecret failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
printf("Verifying the written secrets' value...\n");
|
||||
|
||||
EnumerateIDs(ssHandle,1,&keychainID);
|
||||
|
||||
secret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
retVal = sscs_CacheReadSecret(ssHandle,ssFlags,&keychainID,&secretID1,
|
||||
&secret,&epPassword,&bytesRequired,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("secret len is %d\n",secret.len);
|
||||
printf("Value is ");
|
||||
for(i = 0;i < secret.len; i++ )
|
||||
{
|
||||
printf("%c",secret.data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
secret.len = MAX_SECRET_VAL_LEN;
|
||||
memset(secret.data,0,MAX_SECRET_VAL_LEN);
|
||||
retVal = sscs_CacheReadSecret(ssHandle,ssFlags, &keychainID,&secretID2,
|
||||
&secret,&epPassword,&bytesRequired,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheReadSecret failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("secret len is %d\n",secret.len);
|
||||
printf("Value is ");
|
||||
for(i = 0;i < secret.len; i++ )
|
||||
{
|
||||
printf("%c",secret.data[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
printf("Removing %s\n",secretID1.id);
|
||||
retVal = sscs_CacheRemoveSecret(ssHandle,ssFlags,&keychainID,&secretID1,
|
||||
&epPassword, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveSecret failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
EnumerateIDs(ssHandle,1,&keychainID);
|
||||
retVal = sscs_CacheRemoveKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheRemoveKeychain failed: %d\n",retVal);
|
||||
}
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
// EnumerateIDs(ssHandle,1,&keychainID);
|
||||
free(secret.data);
|
||||
secret.data = NULL;
|
||||
|
||||
DECORATE
|
||||
}
|
||||
391
c_test/unx_testcases/cache_ss_fns.c
Normal file
391
c_test/unx_testcases/cache_ss_fns.c
Normal file
@@ -0,0 +1,391 @@
|
||||
/* This file contains all the test cases for all the generic
|
||||
* Cachelib functions.
|
||||
*/
|
||||
#include "testcases.h"
|
||||
|
||||
|
||||
/* Callback for testing CacheOpenSecretStore.
|
||||
*/
|
||||
|
||||
void TestCacheOpenSecretStore_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
uint32_t ssFlags = 0;
|
||||
int32_t retVal = 0;
|
||||
/* sscs_CacheOpenSecretStore_Valid */
|
||||
|
||||
DECORATE
|
||||
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
/* sscs_CacheOpenSecretStore_Valid */
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestCacheOpenSecretStore_Invalid_Input(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
/* sscs_CacheOpenSecretStore_Invalid */
|
||||
|
||||
DECORATE
|
||||
|
||||
printf("INPUT: {0x00000000, A}\n");
|
||||
secID.version = 0x00000000;
|
||||
strcpy((char *)secID.ssName,"A");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle,ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestCacheCloseSecretStore_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE
|
||||
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
printf("INPUT: Valid SSHandle\n");
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle,ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore succeeded.\n");
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestCacheCloseSecretStore_CloseAfterClose(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE
|
||||
printf("INPUT: {0x00040000, SecretStore}\n");
|
||||
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
printf("INPUT: Valid SSHandle\n");
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
/* Closing SecretStore after a valid close.
|
||||
* Cachelib must return an appropriate error and must
|
||||
* not write the request to SSCS.
|
||||
*/
|
||||
printf("INPUT: Valid SSHandle\n");
|
||||
printf("Closing SecretStore after a valid close.\n");
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle,ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
DECORATE
|
||||
}
|
||||
|
||||
void TestCacheCloseSecretStore_Invalid_Handle(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE
|
||||
|
||||
/* Passing a NULL SSHandle */
|
||||
printf("INPUT: Invalid SSHandle\n");
|
||||
|
||||
ssHandle = NULL;
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestCacheCloseSecretStore_WithoutOpen(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_HANDLE_T ssHandle;
|
||||
int32_t retVal = 0;
|
||||
int socketFd = FAKE_SOCK_FD;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE
|
||||
|
||||
/* Passing a cookedup SSHandle */
|
||||
printf("INPUT: Cookedup SSHandle\n");
|
||||
ssHandle.platformID = 1;
|
||||
ssHandle.platHandle = (int*)&socketFd;
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(&ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void TestCacheGetSecretStoreInfo_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_SECRETSTORE_INFO_T ssInfo;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
|
||||
DECORATE;
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
retVal = sscs_CacheGetSecretStoreInfo( ssHandle, ssFlags, &ssInfo, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheGetSecretStoreInfo failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("ssInfo.numKeychains :%d\n",ssInfo.numKeyChains);
|
||||
printf("ssInfo.enumBufsize :%d\n",ssInfo.enumBufsize);
|
||||
}
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestCacheGetKeychainInfo_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
SSCS_KEYCHAIN_INFO_T kcInfo;
|
||||
SSCS_KEYCHAIN_ID_T keychainID;
|
||||
memset(&keychainID,0,sizeof(keychainID));
|
||||
strcpy(keychainID.keychainID,"MyKeychain");
|
||||
keychainID.len = strlen("MyKeychain") + 1;
|
||||
uint32_t ssFlags = 0;
|
||||
int32_t retVal = 0;
|
||||
DECORATE;
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
ssFlags |= SSCS_LOCAL_KEY_CHAIN_F;
|
||||
printf("Adding %S\n",keychainID.keychainID);
|
||||
|
||||
retVal = sscs_CacheAddKeychain(ssHandle,ssFlags,&keychainID,NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheAddKeychain failed: %d\n",retVal);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheGetKeychainInfo(ssHandle, ssFlags, &keychainID, &kcInfo, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheGetKeychainInfo failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("kcInfo.numSecrets:%d\n",kcInfo.numSecrets);
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestLockCache_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
DECORATE;
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID, ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
retVal = sscs_LockCache(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_LockCache failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("LockCache Successful\n");
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
|
||||
void TestUnlockCache_Valid(void)
|
||||
{
|
||||
SSCS_SECRETSTORE_T secID;
|
||||
SSCS_SECRETSTORE_HANDLE_T *ssHandle = NULL;
|
||||
int32_t retVal = 0;
|
||||
uint32_t ssFlags = 0;
|
||||
DECORATE;
|
||||
secID.version = 0x00040000;
|
||||
strcpy((char *)secID.ssName,"SecretStore");
|
||||
|
||||
ssHandle = sscs_CacheOpenSecretStore(&secID,ssFlags, NULL);
|
||||
if(!ssHandle)
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore failed\n");
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_CacheOpenSecretStore succeeded\n");
|
||||
}
|
||||
printf("Platform ID is %d; socketID is %d\n",ssHandle->platformID,
|
||||
*(int*)ssHandle->platHandle);
|
||||
|
||||
retVal = sscs_UnlockCache(ssHandle,ssFlags, NULL, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_UnlockCache failed: %d\n",retVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
printf("sscs_UnlockCache Successful\n");
|
||||
}
|
||||
|
||||
retVal = sscs_CacheCloseSecretStore(ssHandle, ssFlags, NULL);
|
||||
if(retVal != 0)
|
||||
{
|
||||
printf("sscs_CacheCloseSecretStore failed: %d\n",retVal);
|
||||
}
|
||||
DECORATE;
|
||||
}
|
||||
6
c_test/unx_testcases/link.lux
Normal file
6
c_test/unx_testcases/link.lux
Normal file
@@ -0,0 +1,6 @@
|
||||
LINK = $(CXX) \
|
||||
-o $(BINDIR)$(TARGET) \
|
||||
$(OBJDIR)/*.$(O) \
|
||||
-L$(LIBDIR)$(XTRA) -lmicasacache \
|
||||
-L/usr/lib -lpthread -lc -lnsl \
|
||||
-L. -lcunit
|
||||
5
c_test/unx_testcases/objs.lux
Normal file
5
c_test/unx_testcases/objs.lux
Normal file
@@ -0,0 +1,5 @@
|
||||
OBJS=\
|
||||
testcases.$(O)\
|
||||
cache_ss_fns.$(O)\
|
||||
cache_keychain_fns.$(O)\
|
||||
cache_secret_fns.$(O)
|
||||
17
c_test/unx_testcases/target
Normal file
17
c_test/unx_testcases/target
Normal file
@@ -0,0 +1,17 @@
|
||||
include link$(xtra).$(PLAT)
|
||||
|
||||
all : $(BIN_NAME)
|
||||
|
||||
|
||||
|
||||
$(BIN_NAME) : $(OBJS)
|
||||
|
||||
@echo Linking $@ ...
|
||||
|
||||
$(LINK)
|
||||
|
||||
@echo
|
||||
|
||||
|
||||
|
||||
#install : all
|
||||
150
c_test/unx_testcases/testcases.c
Normal file
150
c_test/unx_testcases/testcases.c
Normal file
@@ -0,0 +1,150 @@
|
||||
#include "testcases.h"
|
||||
|
||||
void TestCacheOpenSecretStore_Valid(void);
|
||||
void TestCacheOpenSecretStore_Invalid_Input(void);
|
||||
|
||||
void TestCacheCloseSecretStore_Valid(void);
|
||||
void TestCacheCloseSecretStore_CloseAfterClose(void);
|
||||
void TestCacheCloseSecretStore_Invalid_Handle(void);
|
||||
void TestCacheCloseSecretStore_WithoutOpen(void);
|
||||
|
||||
void TestCacheAddKeyChain_Valid(void);
|
||||
void TestCacheAddKeyChain_LongKeychainId(void);
|
||||
void TestCacheAddKeyChain_ExistingKeychain(void);
|
||||
void TestCacheAddKeyChain_MaxKeychains(void);
|
||||
void TestCacheEnumerateKeyChainIds_Valid(void);
|
||||
void TestCacheEnumerateKeyChainIds_WithoutOpen(void);
|
||||
void TestCacheEnumerateKeyChainIds_LessBufferLen(void);
|
||||
void TestCacheEnumerateKeyChainIds_WithNoKeychains(void);
|
||||
void TestCacheRemoveKeyChain_Valid(void);
|
||||
void TestCacheRemoveKeyChain_NonExistentKeychain(void);
|
||||
void TestCacheRemoveKeyChain_OverlappingNames(void);
|
||||
|
||||
void TestCacheRWRmSecret_ValidAddSecret(void);
|
||||
void TestCacheRWRmSecret_LongSecretID(void);
|
||||
void TestCacheRWSecret_ValidUpdateSecret(void);
|
||||
void TestCacheRWRmSecret_NonExistentKeychain(void);
|
||||
void TestCacheRWRmSecret_OverlappingNames(void);
|
||||
|
||||
void TestCacheGetSecretStoreInfo_Valid(void);
|
||||
void TestCacheGetKeychainInfo_Valid(void);
|
||||
void TestLockCache_Valid(void);
|
||||
void TestUnlockCache_Valid(void);
|
||||
|
||||
/*
|
||||
*/
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
CU_pSuite pGenericSSGroup = NULL;
|
||||
CU_pSuite pKeyChainGroup = NULL;
|
||||
CU_pSuite pSecretGroup = NULL;
|
||||
CU_pTest pTest = NULL;
|
||||
|
||||
if (CU_initialize_registry())
|
||||
return 1;
|
||||
|
||||
pGenericSSGroup = CU_add_suite("TestCacheOpenSecretStore",NULL,NULL);
|
||||
if (!pGenericSSGroup)
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return -1;
|
||||
}
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestCacheOpenSecretStore_Valid",TestCacheOpenSecretStore_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestCacheOpenSecretStore_Invalid_Input",TestCacheOpenSecretStore_Invalid_Input);
|
||||
TEST_PTEST
|
||||
|
||||
pGenericSSGroup = CU_add_suite("TestCacheCloseSecretStore",NULL,NULL);
|
||||
if(!pGenericSSGroup)
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return -1;
|
||||
}
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestCacheCloseSecretStore_Valid",TestCacheCloseSecretStore_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
// pTest = CU_add_test(pGenericSSGroup, "TestCacheCloseSecretStore_WithoutOpen",TestCacheCloseSecretStore_WithoutOpen);
|
||||
TEST_PTEST
|
||||
|
||||
pKeyChainGroup = CU_add_suite("TestCacheEnumerateKeyChainIds",NULL,NULL);
|
||||
if(!pKeyChainGroup)
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return -1;
|
||||
}
|
||||
|
||||
pTest = CU_add_test(pKeyChainGroup,"TestCacheAddKeyChain_Valid",TestCacheAddKeyChain_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheAddKeyChain_LongKeychainId",TestCacheAddKeyChain_LongKeychainId);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheAddKeyChain_ExistingKeychain",TestCacheAddKeyChain_ExistingKeychain);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheAddKeyChain_MaxKeychains",TestCacheAddKeyChain_MaxKeychains);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheEnumerateKeyChainIds_Valid",TestCacheEnumerateKeyChainIds_Valid);
|
||||
TEST_PTEST
|
||||
// pTest = CU_add_test(pKeyChainGroup, "TestCacheEnumerateKeyChainIds_WithoutOpen",TestCacheEnumerateKeyChainIds_WithoutOpen);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheEnumerateKeyChainIds_WithNoKeychains",TestCacheEnumerateKeyChainIds_WithNoKeychains);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheRemoveKeyChain_Valid",TestCacheRemoveKeyChain_Valid);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheRemoveKeyChain_NonExistentKeychain",TestCacheRemoveKeyChain_NonExistentKeychain);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pKeyChainGroup, "TestCacheRemoveKeyChain_OverlappingNames",TestCacheRemoveKeyChain_OverlappingNames);
|
||||
TEST_PTEST
|
||||
|
||||
pSecretGroup = CU_add_suite("TestCacheSecretAPIs",NULL,NULL);
|
||||
if(!pGenericSSGroup)
|
||||
{
|
||||
CU_cleanup_registry();
|
||||
return -1;
|
||||
}
|
||||
pTest = CU_add_test(pSecretGroup, "TestCacheRWRmSecret_ValidAddSecret",TestCacheRWRmSecret_ValidAddSecret);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pSecretGroup, "TestCacheRWSecret_ValidUpdateSecret",TestCacheRWSecret_ValidUpdateSecret);
|
||||
TEST_PTEST
|
||||
pTest = CU_add_test(pSecretGroup, "TestCacheRWRmSecret_NonExistentKeychain",TestCacheRWRmSecret_NonExistentKeychain);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pSecretGroup, "TestCacheRWRmSecret_OverlappingNames",TestCacheRWRmSecret_OverlappingNames);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pSecretGroup, "TestCacheRWRmSecret_LongSecretID",TestCacheRWRmSecret_LongSecretID);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestCacheGetSecretStoreInfo_Valid",TestCacheGetSecretStoreInfo_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestCacheGetKeychainInfo_Valid",TestCacheGetKeychainInfo_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestLockCache_Valid",TestLockCache_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
pTest = CU_add_test(pGenericSSGroup, "TestUnlockCache_Valid",TestUnlockCache_Valid);
|
||||
TEST_PTEST
|
||||
|
||||
/*DANGER - Test with latest cachelib*/
|
||||
// pTest = CU_add_test(pKeyChainGroup, "TestCacheEnumerateKeyChainIds_LessBufferLen",TestCacheEnumerateKeyChainIds_LessBufferLen);
|
||||
TEST_PTEST
|
||||
// pTest = CU_add_test(pGenericSSGroup, "TestCacheCloseSecretStore_CloseAfterClose",TestCacheCloseSecretStore_CloseAfterClose);
|
||||
TEST_PTEST
|
||||
|
||||
// pTest = CU_add_test(pGenericSSGroup, "TestCacheCloseSecretStore_Invalid_Handle",TestCacheCloseSecretStore_Invalid_Handle);
|
||||
|
||||
TEST_PTEST
|
||||
/* Run the tests. */
|
||||
// CU_curses_run_tests();
|
||||
CU_console_run_tests();
|
||||
CU_cleanup_registry();
|
||||
return 0;
|
||||
}
|
||||
25
c_test/unx_testcases/testcases.h
Normal file
25
c_test/unx_testcases/testcases.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef _TESTCASES_H_
|
||||
#define _TESTCASES_H_
|
||||
|
||||
#include <CUnit/Console.h>
|
||||
#include <CUnit/CUnit.h>
|
||||
|
||||
#include "sscs_cache.h"
|
||||
#include "micasa_types.h"
|
||||
#include <assert.h>
|
||||
|
||||
#define MAX_ID_LIST_BUF 4*1024
|
||||
#define MAX_SECRET_VAL_LEN 1024
|
||||
#define FAKE_SOCK_FD 10
|
||||
#define TEST_LESS_BUFFER_LEN 4
|
||||
#define LONG_WSTRING "LongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongStringLongString"
|
||||
#define MAX_RETURNED_IDS 10
|
||||
|
||||
#define TEST_PTEST if(!pTest) { CU_cleanup_registry(); return -1; }
|
||||
#define DECORATE printf("\n****************************************************\n");
|
||||
#define PRINT_ERR printf("SUCCESS when it MUST HAVE FAILED!!!!\n");
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user