Refactor AccessProvider and ScopedAccessProvider
[platform/core/test/security-tests.git] / src / ckm / privileged / capi-access_control.cpp
index 2b58371..351c0b2 100644 (file)
@@ -6,7 +6,7 @@
 
 #include <tests_common.h>
 #include <ckm-common.h>
-#include <access_provider2.h>
+#include <scoped-app-context.h>
 
 #include <ckmc/ckmc-manager.h>
 #include <ckmc/ckmc-control.h>
@@ -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)
 {
@@ -86,7 +96,7 @@ RUNNER_TEST(T3000_init)
 // invalid arguments check
 RUNNER_TEST(T3001_manager_allow_access_invalid)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     RUNNER_ASSERT(
             CKMC_ERROR_INVALID_PARAMETER == ckmc_set_permission(NULL, "accessor", CKMC_PERMISSION_READ));
@@ -97,7 +107,7 @@ RUNNER_TEST(T3001_manager_allow_access_invalid)
 // invalid arguments check
 RUNNER_TEST(T3002_manager_deny_access_invalid)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     RUNNER_ASSERT(CKMC_ERROR_INVALID_PARAMETER == ckmc_set_permission(NULL, "accessor", CKMC_PERMISSION_NONE));
     RUNNER_ASSERT(CKMC_ERROR_INVALID_PARAMETER == ckmc_set_permission("alias", NULL, CKMC_PERMISSION_NONE));
@@ -106,7 +116,7 @@ RUNNER_TEST(T3002_manager_deny_access_invalid)
 // tries to allow access for non existing alias
 RUNNER_CHILD_TEST(T3003_manager_allow_access_non_existing)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     int ret = ckmc_set_permission(NO_ALIAS, "label", CKMC_PERMISSION_READ);
     RUNNER_ASSERT_MSG(CKMC_ERROR_DB_ALIAS_UNKNOWN == ret,
@@ -116,7 +126,7 @@ RUNNER_CHILD_TEST(T3003_manager_allow_access_non_existing)
 // tries to deny access for non existing alias
 RUNNER_CHILD_TEST(T3004_manager_deny_access_non_existing)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     int ret = ckmc_set_permission(NO_ALIAS, "label", CKMC_PERMISSION_NONE);
     RUNNER_ASSERT_MSG(CKMC_ERROR_DB_ALIAS_UNKNOWN == ret,
@@ -126,20 +136,20 @@ RUNNER_CHILD_TEST(T3004_manager_deny_access_non_existing)
 // tries to deny access that does not exist in database
 RUNNER_CHILD_TEST(T3005_manager_deny_access_non_existing_access)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     ScopedSaveData ssd(TEST_ALIAS, TEST_DATA);
 
     // deny non existing access to existing alias
     int ret = ckmc_set_permission(TEST_ALIAS, "label", CKMC_PERMISSION_NONE);
-    RUNNER_ASSERT_MSG(CKMC_ERROR_INVALID_PARAMETER == ret,
+    RUNNER_ASSERT_MSG(CKMC_ERROR_NONE == ret,
                          "Denying non existing access returned: " << CKMCErrorToString(ret));
 }
 
 // tries to allow access to application own data
 RUNNER_CHILD_TEST(T3006_manager_allow_access_to_myself)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     ScopedSaveData ssd(TEST_ALIAS, TEST_DATA);
 
@@ -152,7 +162,7 @@ RUNNER_CHILD_TEST(T3006_manager_allow_access_to_myself)
 // verifies that alias can not contain forbidden characters
 RUNNER_CHILD_TEST(T3007_manager_check_alias_valid)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     ScopedSaveData ssd(TEST_ALIAS, TEST_DATA);
 
@@ -167,7 +177,7 @@ RUNNER_CHILD_TEST(T3007_manager_check_alias_valid)
 // verifies that label can not contain forbidden characters
 RUNNER_CHILD_TEST(T3008_manager_check_label_valid)
 {
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
     ScopedSaveData ssd(TEST_ALIAS, TEST_DATA);
 
@@ -200,13 +210,13 @@ RUNNER_TEST(T3020_manager_access_not_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
         check_read_not_visible(TEST_ALIAS_adr.c_str());
@@ -219,14 +229,14 @@ RUNNER_TEST(T3021_manager_access_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
 }
@@ -236,14 +246,14 @@ RUNNER_TEST(T3022_manager_access_allowed_with_remove, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
 }
@@ -253,14 +263,14 @@ RUNNER_TEST(T3023_manager_access_allowed_remove_denied, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
         std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
         check_remove_denied(TEST_ALIAS_adr.c_str());
         check_read_allowed(TEST_ALIAS_adr.c_str(), TEST_DATA);
@@ -272,14 +282,14 @@ RUNNER_TEST(T3025_manager_remove_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
         check_remove_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str());
     }
 }
@@ -290,7 +300,7 @@ RUNNER_TEST(T3026_manager_double_allow, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         // access should be overwritten
@@ -300,7 +310,7 @@ RUNNER_TEST(T3026_manager_double_allow, RemoveDataEnv<APP_1>)
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
         check_remove_denied(TEST_ALIAS_adr.c_str());
@@ -314,7 +324,7 @@ RUNNER_TEST(T3027_manager_allow_deny, RemoveDataEnv<APP_1>)
     // prepare: add data
     std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
@@ -322,7 +332,7 @@ RUNNER_TEST(T3027_manager_allow_deny, RemoveDataEnv<APP_1>)
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_denied(TEST_ALIAS_adr.c_str());
         check_read_allowed(TEST_ALIAS_adr.c_str(), TEST_DATA);
@@ -330,14 +340,14 @@ RUNNER_TEST(T3027_manager_allow_deny, RemoveDataEnv<APP_1>)
 
     // remove permission
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
         deny_access(TEST_ALIAS, APP_LABEL_2);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_not_visible(TEST_ALIAS_adr.c_str());
         check_read_not_visible(TEST_ALIAS_adr.c_str());
@@ -349,7 +359,7 @@ RUNNER_TEST(T3028_manager_access_by_label, RemoveDataEnv<APP_1>)
     // prepare: add data
     const char *additional_data = "label-2-data";
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access(TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
@@ -357,7 +367,7 @@ RUNNER_TEST(T3028_manager_access_by_label, RemoveDataEnv<APP_1>)
 
     // add data as app 2
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
         save_data(TEST_ALIAS, additional_data);
 
         allow_access(TEST_ALIAS, APP_LABEL_1, CKMC_PERMISSION_READ);
@@ -368,7 +378,7 @@ RUNNER_TEST(T3028_manager_access_by_label, RemoveDataEnv<APP_1>)
 
     // test accessibility to app 2 from app 1
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
 
         // test if can access label2 alias from label1 domain - should succeed
         check_read_allowed(aliasWithLabel(APP_LABEL_2, TEST_ALIAS).c_str(), additional_data);
@@ -380,7 +390,7 @@ RUNNER_TEST(T3029_manager_access_modification_by_foreign_label, RemoveDataEnv<AP
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access(TEST_ALIAS, APP_LABEL_3, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
@@ -388,7 +398,7 @@ RUNNER_TEST(T3029_manager_access_modification_by_foreign_label, RemoveDataEnv<AP
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         allow_access_negative(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), APP_LABEL_4, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE, CKMC_ERROR_PERMISSION_DENIED);
         deny_access_negative (aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), APP_LABEL_4, CKMC_ERROR_PERMISSION_DENIED);
@@ -401,7 +411,7 @@ RUNNER_TEST(T3030_manager_get_all_aliases, RemoveDataEnv<APP_1>)
     // prepare: add data
     size_t count;
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         save_data(TEST_ALIAS2, TEST_DATA);
 
@@ -411,7 +421,7 @@ RUNNER_TEST(T3030_manager_get_all_aliases, RemoveDataEnv<APP_1>)
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         // check that app can access other aliases when it has permission
         check_alias_count(count - 1);
@@ -424,13 +434,13 @@ RUNNER_TEST(T3030_manager_get_all_aliases, RemoveDataEnv<APP_1>)
 
     // remove permission
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         deny_access(TEST_ALIAS, APP_LABEL_2);
     }
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         // check that app can't access other aliases for which permission has been revoked
         check_alias_count(count - 2);
@@ -442,7 +452,7 @@ RUNNER_TEST(T3031_manager_deprecated_access_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access_deprecated(TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ);
@@ -450,7 +460,7 @@ RUNNER_TEST(T3031_manager_deprecated_access_allowed, RemoveDataEnv<APP_1>)
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -461,7 +471,7 @@ RUNNER_TEST(T3032_manager_deprecated_access_allowed_with_remove, RemoveDataEnv<A
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access_deprecated(TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ_REMOVE);
@@ -469,7 +479,7 @@ RUNNER_TEST(T3032_manager_deprecated_access_allowed_with_remove, RemoveDataEnv<A
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -480,7 +490,7 @@ RUNNER_TEST(T3033_manager_deprecated_access_allowed_remove_denied, RemoveDataEnv
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access_deprecated(TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ);
@@ -488,7 +498,7 @@ RUNNER_TEST(T3033_manager_deprecated_access_allowed_remove_denied, RemoveDataEnv
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
         check_remove_denied(TEST_ALIAS_adr.c_str());
@@ -501,7 +511,7 @@ RUNNER_TEST(T3034_manager_deprecated_remove_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
 
         allow_access_deprecated(TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ_REMOVE);
@@ -509,7 +519,7 @@ RUNNER_TEST(T3034_manager_deprecated_remove_allowed, RemoveDataEnv<APP_1>)
 
     // test accessibility from another label
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str());
     }
@@ -531,7 +541,7 @@ RUNNER_TEST(T3101_control_allow_access_invalid, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
@@ -552,7 +562,7 @@ RUNNER_TEST(T3102_control_deny_access_invalid, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
@@ -586,16 +596,16 @@ RUNNER_TEST(T3104_control_deny_access_non_existing)
 }
 
 // tries to deny non existing access
-RUNNER_TEST(T3105_control_deny_access_non_existing_access, RemoveDataEnv<APP_1>)
+RUNNER_TEST(T3105_control_remove_non_existing_access, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     int ret = ckmc_set_permission_by_adm(APP_1, aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), APP_LABEL_2, CKMC_PERMISSION_NONE);
-    RUNNER_ASSERT_MSG(CKMC_ERROR_INVALID_PARAMETER == ret,
+    RUNNER_ASSERT_MSG(CKMC_ERROR_NONE == ret,
                       "Denying non existing access returned: " << CKMCErrorToString(ret));
 }
 
@@ -603,7 +613,7 @@ RUNNER_TEST(T3105_control_deny_access_non_existing_access, RemoveDataEnv<APP_1>)
 RUNNER_TEST(T3106_control_allow_access_to_myself, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
     save_data(TEST_ALIAS, TEST_DATA);
 
     // test
@@ -618,7 +628,7 @@ RUNNER_CHILD_TEST(T3110_control_allow_access_as_user, RemoveDataEnv<APP_1>)
     RUNNER_IGNORED_MSG("Disabled until labeled sockets not available");
 
     // prepare: add data
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
     save_data(TEST_ALIAS, TEST_DATA);
 
     // test
@@ -633,7 +643,7 @@ RUNNER_CHILD_TEST(T3111_control_deny_access_as_user, RemoveDataEnv<APP_1>)
     RUNNER_IGNORED_MSG("Disabled until labeled sockets not available");
 
     // prepare: add data
-    ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+    ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
     save_data(TEST_ALIAS, TEST_DATA);
 
     // test
@@ -647,13 +657,13 @@ RUNNER_TEST(T3121_control_access_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -664,13 +674,13 @@ RUNNER_TEST(T3122_control_access_allowed_with_remove, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -681,13 +691,13 @@ RUNNER_TEST(T3122_control_access_allowed_remove_denied, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_denied(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str());
     }
@@ -698,13 +708,13 @@ RUNNER_TEST(T3125_control_remove_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str());
     }
@@ -716,7 +726,7 @@ RUNNER_TEST(T3126_control_double_allow, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
@@ -724,7 +734,7 @@ RUNNER_TEST(T3126_control_double_allow, RemoveDataEnv<APP_1>)
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ | CKMC_PERMISSION_REMOVE);
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
         check_remove_denied(TEST_ALIAS_adr.c_str());
@@ -737,14 +747,14 @@ RUNNER_TEST(T3127_control_allow_deny, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     std::string TEST_ALIAS_adr = aliasWithLabel(APP_LABEL_1, TEST_ALIAS);
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_denied(TEST_ALIAS_adr.c_str());
         check_read_allowed(TEST_ALIAS_adr.c_str(), TEST_DATA);
@@ -752,7 +762,7 @@ RUNNER_TEST(T3127_control_allow_deny, RemoveDataEnv<APP_1>)
 
     deny_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_not_visible(TEST_ALIAS_adr.c_str());
         check_read_not_visible(TEST_ALIAS_adr.c_str());
@@ -765,7 +775,7 @@ RUNNER_TEST(T3130_control_get_all_aliases, RemoveDataEnv<APP_1>)
     // prepare: add data
     size_t count;
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
         save_data(TEST_ALIAS2, TEST_DATA);
 
@@ -774,7 +784,7 @@ RUNNER_TEST(T3130_control_get_all_aliases, RemoveDataEnv<APP_1>)
 
     allow_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_PERMISSION_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         // check that app can access other aliases when it has permission
         check_alias_count(count - 1);
@@ -787,7 +797,7 @@ RUNNER_TEST(T3130_control_get_all_aliases, RemoveDataEnv<APP_1>)
 
     deny_access_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         // check that app can't access other aliases for which permission has been revoked
         check_alias_count(count - 2);
@@ -799,7 +809,7 @@ RUNNER_TEST(T3140_control_allow_invalid_user, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
@@ -813,7 +823,7 @@ RUNNER_TEST(T3141_control_deny_invalid_user, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
@@ -827,13 +837,13 @@ RUNNER_TEST(T3142_control_deprecated_access_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_deprecated_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -844,13 +854,13 @@ RUNNER_TEST(T3143_control_deprecated_access_allowed_with_remove, RemoveDataEnv<A
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_deprecated_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ_REMOVE);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_read_allowed(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str(), TEST_DATA);
     }
@@ -861,13 +871,13 @@ RUNNER_TEST(T3144_control_deprecated_access_allowed_remove_denied, RemoveDataEnv
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_deprecated_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         check_remove_denied(aliasWithLabel(APP_LABEL_1, TEST_ALIAS).c_str());
     }
@@ -878,14 +888,167 @@ RUNNER_TEST(T3145_control_deprecated_remove_allowed, RemoveDataEnv<APP_1>)
 {
     // prepare: add data
     {
-        ScopedAccessProvider ap(APP_LABEL_1, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_1, APP_1, GROUP_1);
         save_data(TEST_ALIAS, TEST_DATA);
     }
 
     allow_access_deprecated_by_adm(APP_1, APP_LABEL_1, TEST_ALIAS, APP_LABEL_2, CKMC_AR_READ_REMOVE);
     {
-        ScopedAccessProvider ap(APP_LABEL_2, APP_1, GROUP_1);
+        ScopedAppContext ctx(APP_LABEL_2, APP_1, GROUP_1);
 
         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<APP_1>)
+{
+    ScopedAppContext ctx(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, &current_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, &current_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);
+}