From: Tomasz Swierczek Date: Tue, 4 Jun 2019 07:09:38 +0000 (+0200) Subject: Add UTC test cases to security-tests for alias listing APIs X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4d5af2f4489ec50b82b08bce5abdd530c68302ba;p=platform%2Fcore%2Ftest%2Fsecurity-tests.git Add UTC test cases to security-tests for alias listing APIs These tests are needed to cover the ckmc layer for new APIs. Change-Id: I816a02e0f54ed70982facfe125fd4264e615c673 --- diff --git a/src/ckm/privileged/capi-access_control.cpp b/src/ckm/privileged/capi-access_control.cpp index f0328ed..db28b1c 100644 --- a/src/ckm/privileged/capi-access_control.cpp +++ b/src/ckm/privileged/capi-access_control.cpp @@ -37,6 +37,16 @@ const char* TEST_ALIAS2 = "test-alias2"; const char* TEST_ALIAS3 = "test-alias3"; const char* TEST_DATA = "dsflsdkghkslhglrtghierhgilrehgidsafasdffsgfdgdgfdgfdgfdgfdggf"; +const char* RSA_PUB_KEY_PEM = + "-----BEGIN PUBLIC KEY-----\n" + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2b1bXDa+S8/MGWnMkru4\n" + "T4tUddtZNi0NVjQn9RFH1NMa220GsRhRO56F77FlSVFKfSfVZKIiWg6C+DVCkcLf\n" + "zXJ/Z0pvwOQYBAqVMFjV6efQGN0JzJ1Unu7pPRiZl7RKGEI+cyzzrcDyrLLrQ2W7\n" + "0ZySkNEOv6Frx9JgC5NExuYY4lk2fQQa38JXiZkfyzif2em0px7mXbyf5LjccsKq\n" + "v1e+XLtMsL0ZefRcqsP++NzQAI8fKX7WBT+qK0HJDLiHrKOTWYzx6CwJ66LD/vvf\n" + "j55xtsKDLVDbsotvf8/m6VLMab+vqKk11TP4tq6yo0mwyTADvgl1zowQEO9I1W6o\n" + "zQIDAQAB\n" + "-----END PUBLIC KEY-----"; void allow_access_deprecated(const char* alias, const char* accessor, ckmc_access_right_e accessRights) { @@ -889,3 +899,156 @@ RUNNER_TEST(T3145_control_deprecated_remove_allowed, RemoveDataEnv) check_remove_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str()); } } + +RUNNER_TEST(utc_ckmc_get_key_alias_info_list_p) +{ + ckmc_alias_info_list_s* ppalias_list = NULL; + + int ret = ckmc_get_key_alias_info_list(&ppalias_list); + ckmc_alias_info_list_all_free(ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_DB_ALIAS_UNKNOWN, "Expected CKMC_ERROR_DB_ALIAS_UNKNOWN, returned: " << CKMCErrorToString(ret)); +} + +RUNNER_TEST(utc_ckmc_get_key_alias_info_list_n) +{ + int ret = ckmc_get_key_alias_info_list(NULL); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_INVALID_PARAMETER, "Expected invalid parameter error, returned: " << CKMCErrorToString(ret)); +} + +RUNNER_TEST(utc_ckmc_get_cert_alias_info_list_p) +{ + ckmc_alias_info_list_s* ppalias_list = NULL; + + int ret = ckmc_get_cert_alias_info_list(&ppalias_list); + ckmc_alias_info_list_all_free(ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_DB_ALIAS_UNKNOWN, "Expected CKMC_ERROR_DB_ALIAS_UNKNOWN, returned: " << CKMCErrorToString(ret)); +} + +RUNNER_TEST(utc_ckmc_get_cert_alias_info_list_n) +{ + int ret = ckmc_get_cert_alias_info_list(NULL); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_INVALID_PARAMETER, "Expected invalid parameter error, returned: " << CKMCErrorToString(ret)); +} + + +RUNNER_TEST(utc_ckmc_get_data_alias_info_list_p1) +{ + ckmc_alias_info_list_s* ppalias_list = NULL; + + int ret = ckmc_get_data_alias_info_list(&ppalias_list); + ckmc_alias_info_list_all_free(ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_DB_ALIAS_UNKNOWN, "Expected CKMC_ERROR_DB_ALIAS_UNKNOWN, returned: " << CKMCErrorToString(ret)); +} + + +RUNNER_TEST(utc_ckmc_get_data_alias_info_list_p2, RemoveDataEnv) +{ + ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1); + save_data(TEST_ALIAS, TEST_DATA); + + ckmc_alias_info_list_s* ppalias_list = NULL; + + int ret = ckmc_get_data_alias_info_list(&ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, returned: " << CKMCErrorToString(ret)); + + char* alias = NULL; + ret = ckmc_alias_info_get_alias(ppalias_list->info, &alias); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Failed to get alias, returned: " << CKMCErrorToString(ret)); + RUNNER_ASSERT_MSG(ppalias_list->next == NULL, "More elements returned"); + std::string aliasOrig = std::string(APP_LABEL_1) + " " + std::string(TEST_ALIAS); + RUNNER_ASSERT_MSG(strcmp(alias, aliasOrig.c_str()) == 0, "Invalid aliast returned : " << alias); + + ckmc_alias_info_list_all_free(ppalias_list); + +} + + +RUNNER_TEST(utc_ckmc_get_data_alias_info_list_n) +{ + int ret = ckmc_get_data_alias_info_list(NULL); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_INVALID_PARAMETER, "Expected invalid parameter error, returned: " << CKMCErrorToString(ret)); +} + +RUNNER_TEST(utc_ckmc_alias_info_get_alias_p) +{ + ckmc_alias_info_list_s *ppalias_list, *tmp; + ckmc_key_s test_key; + ckmc_policy_s test_policy; + int ret; + char* current_alias; + const char* alias = "utc_ckmc_alias_info_get_alias_p_test_alias"; + bool foundAlias = false; + + test_key.raw_key = (unsigned char *)RSA_PUB_KEY_PEM; + test_key.key_size = strlen(RSA_PUB_KEY_PEM); + test_key.key_type = CKMC_KEY_RSA_PUBLIC; + test_key.password = NULL; + + test_policy.password = NULL; + test_policy.extractable = true; + + ret = ckmc_save_key(alias, test_key, test_policy); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + + ret = ckmc_get_key_alias_info_list(&ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + + tmp = ppalias_list; + + while (tmp) { + ret = ckmc_alias_info_get_alias(tmp->info, ¤t_alias); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + if (strstr(current_alias, alias)) { + foundAlias = true; + break; + } + tmp = tmp->next; + } + ckmc_alias_info_list_all_free(ppalias_list); + ckmc_remove_key(alias); + RUNNER_ASSERT_MSG(foundAlias == true, "Expected to find alias, but alias not found"); +} + +RUNNER_TEST(utc_ckmc_alias_info_is_password_protected_p) +{ + ckmc_alias_info_list_s *ppalias_list, *tmp; + ckmc_key_s test_key; + ckmc_policy_s test_policy; + int ret; + char* current_alias; + const char* alias = "utc_ckmc_alias_info_get_alias_p_test_alias"; + bool foundAlias = false; + + test_key.raw_key = (unsigned char *)RSA_PUB_KEY_PEM; + test_key.key_size = strlen(RSA_PUB_KEY_PEM); + test_key.key_type = CKMC_KEY_RSA_PUBLIC; + test_key.password = NULL; + + test_policy.password = NULL; + test_policy.extractable = true; + + ret = ckmc_save_key(alias, test_key, test_policy); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + + ret = ckmc_get_key_alias_info_list(&ppalias_list); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + + tmp = ppalias_list; + + while (tmp) { + ret = ckmc_alias_info_get_alias(tmp->info, ¤t_alias); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + if (strstr(current_alias, alias)) { + foundAlias = true; + bool is_password_protected; + ret = ckmc_alias_info_is_password_protected(tmp->info, &is_password_protected); + RUNNER_ASSERT_MSG(ret == CKMC_ERROR_NONE, "Expected no error, got " << CKMCErrorToString(ret)); + RUNNER_ASSERT(is_password_protected == false); + break; + } + tmp = tmp->next; + } + ckmc_alias_info_list_all_free(ppalias_list); + ckmc_remove_key(alias); + RUNNER_ASSERT(foundAlias == true); +}