Add Write\ReadBinaryKey to sample
This commit is contained in:
		| @@ -198,6 +198,80 @@ void ReadKey() | |||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | void ReadBinaryKey() | ||||||
|  | {		 | ||||||
|  | 	int rcode = 0; | ||||||
|  | 	char inputID[20]; | ||||||
|  | 	char inputKey[20]; | ||||||
|  | 	char inputValue[128] = {0}; | ||||||
|  | 	uint32_t valueLen = 128; | ||||||
|  | 	uint32_t bytesRequired = 0; | ||||||
|  | 	 | ||||||
|  | 	SSCS_SECRETSTORE_T 		store = {0}; | ||||||
|  | 	SSCS_SECRET_ID_T		appSecretId = {0}; | ||||||
|  | 	SSCS_SECRET_ID_T		sharedSecretId = {0}; | ||||||
|  | 	void					*context; | ||||||
|  | 	SSCS_KEYCHAIN_ID_T 		kc = {0}; | ||||||
|  | 	 | ||||||
|  | 	SSCS_EXT_T ext = {0}; | ||||||
|  | 	 | ||||||
|  | 	printf("Enter secretID: ");		 | ||||||
|  | 	gets(inputID); | ||||||
|  |  | ||||||
|  | 	printf("Enter Key: ");		 | ||||||
|  | 	gets(inputKey);		 | ||||||
|  |  | ||||||
|  | 	if ((sscs_Utf8Strlen(inputID) > 0) && | ||||||
|  | 		(sscs_Utf8Strlen(inputKey) > 0)) | ||||||
|  | 		 | ||||||
|  | 	{ | ||||||
|  | 		appSecretId.len = sscs_Utf8Strlen(inputID) + 1; | ||||||
|  | 		sscs_Utf8Strcpy(appSecretId.id, inputID); | ||||||
|  |  | ||||||
|  | 		printf("SAMPLE: Calling miCASAReadKey\r\n"); | ||||||
|  |  | ||||||
|  | 		// open secretStore | ||||||
|  | 		sscs_Utf8Strcpy(store.ssName, SSCS_DEFAULT_SECRETSTORE_ID); | ||||||
|  | 		store.version = 1; | ||||||
|  | 		context = miCASAOpenSecretStoreCache(&store, 0, NULL); | ||||||
|  |  | ||||||
|  | 		if (context == NULL) | ||||||
|  | 		{ | ||||||
|  | 			return; // NSSCS_E_SYSTEM_FAILURE; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		sscs_Utf8Strcpy(kc.keychainID, SSCS_SESSION_KEY_CHAIN_ID); | ||||||
|  | 		kc.len = SSCS_S_KC_ID_CHARS; | ||||||
|  |  | ||||||
|  | 		rcode = miCASAReadBinaryKey(context,  | ||||||
|  | 			0,  | ||||||
|  | 			&kc,  | ||||||
|  | 			&appSecretId,  | ||||||
|  | 			inputKey,  | ||||||
|  | 			strlen(inputKey)+1,  | ||||||
|  | 			inputValue,  | ||||||
|  | 			&valueLen,  | ||||||
|  | 			NULL,  | ||||||
|  | 			&bytesRequired, | ||||||
|  | 			&ext); | ||||||
|  |  | ||||||
|  | 		miCASACloseSecretStoreCache(context, 0, NULL); | ||||||
|  |  | ||||||
|  | 		if (rcode) | ||||||
|  | 		{ | ||||||
|  | 			printf("miCASAReadKey returned %d\r\n", rcode); | ||||||
|  | 			Pause(); | ||||||
|  | 		} | ||||||
|  | 		else | ||||||
|  | 		{ | ||||||
|  | 			//set null			 | ||||||
|  | 			//memcpy(inputValue[valueLen + 1], | ||||||
|  | 			printf("KeyValue is %s\r\n", inputValue); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
|  |  | ||||||
| void WriteKey() | void WriteKey() | ||||||
| {		 | {		 | ||||||
| 	int rcode = 0; | 	int rcode = 0; | ||||||
| @@ -265,6 +339,76 @@ void WriteKey() | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void WriteBinaryKey() | ||||||
|  | {		 | ||||||
|  | 	int rcode = 0; | ||||||
|  | 	char inputID[20]; | ||||||
|  | 	char inputKey[20]; | ||||||
|  | 	char inputValue[20]; | ||||||
|  | 	uint32_t  valueLen = 0; | ||||||
|  | 	 | ||||||
|  | 	SSCS_SECRETSTORE_T 		store = {0}; | ||||||
|  | 	SSCS_SECRET_ID_T		appSecretId = {0}; | ||||||
|  | 	SSCS_SECRET_ID_T		sharedSecretId = {0}; | ||||||
|  | 	void					*context; | ||||||
|  | 	SSCS_KEYCHAIN_ID_T 		kc = {0}; | ||||||
|  | 	 | ||||||
|  | 	SSCS_EXT_T ext = {0}; | ||||||
|  | 	 | ||||||
|  | 	printf("Enter secretID: ");		 | ||||||
|  | 	gets(inputID); | ||||||
|  |  | ||||||
|  | 	printf("Enter Key: ");		 | ||||||
|  | 	gets(inputKey); | ||||||
|  |  | ||||||
|  | 	printf("Enter Value: "); | ||||||
|  | 	gets(inputValue); | ||||||
|  | 	 | ||||||
|  | 	if ((sscs_Utf8Strlen(inputID) > 0) && | ||||||
|  | 		(sscs_Utf8Strlen(inputKey) > 0) && | ||||||
|  | 		(sscs_Utf8Strlen(inputValue) > 0)) | ||||||
|  | 	{ | ||||||
|  | 		appSecretId.len = sscs_Utf8Strlen(inputID) + 1; | ||||||
|  | 		sscs_Utf8Strcpy(appSecretId.id, inputID); | ||||||
|  |  | ||||||
|  | 		printf("SAMPLE: Calling miCASAWriteKey\r\n"); | ||||||
|  |  | ||||||
|  | 		// open secretStore | ||||||
|  | 		sscs_Utf8Strcpy(store.ssName, SSCS_DEFAULT_SECRETSTORE_ID); | ||||||
|  | 		store.version = 1; | ||||||
|  | 		context = miCASAOpenSecretStoreCache(&store, 0, NULL); | ||||||
|  |  | ||||||
|  | 		if (context == NULL) | ||||||
|  | 		{ | ||||||
|  | 			return; // NSSCS_E_SYSTEM_FAILURE; | ||||||
|  | 		} | ||||||
|  |  | ||||||
|  | 		sscs_Utf8Strcpy(kc.keychainID, SSCS_SESSION_KEY_CHAIN_ID); | ||||||
|  | 		kc.len = SSCS_S_KC_ID_CHARS; | ||||||
|  |  | ||||||
|  | 		valueLen = sscs_strlen(inputValue) + 1; | ||||||
|  |  | ||||||
|  | 		miCASAWriteBinaryKey(context, | ||||||
|  | 			0, | ||||||
|  | 			&kc, | ||||||
|  | 			&appSecretId, | ||||||
|  | 			inputKey, | ||||||
|  | 			strlen(inputKey)+1, | ||||||
|  | 			inputValue, | ||||||
|  | 			&valueLen, | ||||||
|  | 			NULL, | ||||||
|  | 			&ext); | ||||||
|  |  | ||||||
|  | 		miCASACloseSecretStoreCache(context, 0, NULL); | ||||||
|  |  | ||||||
|  | 		if (rcode) | ||||||
|  | 		{ | ||||||
|  | 			printf("miCASAWriteKey returned %d\r\n", rcode); | ||||||
|  | 			Pause(); | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  |  | ||||||
| void AddSecret() | void AddSecret() | ||||||
| {		 | {		 | ||||||
| 	int rcode = 0; | 	int rcode = 0; | ||||||
| @@ -614,7 +758,9 @@ void displayMenu() | |||||||
| 		printf("*  5. WriteKey           *\r\n"); | 		printf("*  5. WriteKey           *\r\n"); | ||||||
| 		printf("*  6. ReadKey            *\r\n"); | 		printf("*  6. ReadKey            *\r\n"); | ||||||
| 		printf("*  7. RemoveKey          *\r\n"); | 		printf("*  7. RemoveKey          *\r\n"); | ||||||
| 		printf("*  8. Quit               *\r\n"); | 		printf("*  8. WriteBinaryKey     *\r\n"); | ||||||
|  | 		printf("*  9. ReadBinaryKey      *\r\n"); | ||||||
|  | 		printf("*  Q. Quit               *\r\n"); | ||||||
| 		printf("**************************\r\n"); | 		printf("**************************\r\n"); | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -624,7 +770,7 @@ void displayMenu() | |||||||
| 		// get return | 		// get return | ||||||
| 		getchar(); | 		getchar(); | ||||||
|  |  | ||||||
| 		if (c == '8') | 		if ((c == 'Q') || (c == 'q')) | ||||||
| 			return; | 			return; | ||||||
| 		else if (c == '1') | 		else if (c == '1') | ||||||
| 			AddSecret();			 | 			AddSecret();			 | ||||||
| @@ -640,6 +786,10 @@ void displayMenu() | |||||||
| 			ReadKey(); | 			ReadKey(); | ||||||
| 		else if (c == '7') | 		else if (c == '7') | ||||||
| 			RemoveKey(); | 			RemoveKey(); | ||||||
|  | 		else if (c == '8') | ||||||
|  | 			WriteBinaryKey(); | ||||||
|  | 		else if (c == '9') | ||||||
|  | 			ReadBinaryKey(); | ||||||
|  |  | ||||||
|  |  | ||||||
| 	} | 	} | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user