CKM: Remove GarbageCollector
[platform/core/test/security-tests.git] / src / ckm / system-db.cpp
index 768abd4..e9cf43a 100644 (file)
@@ -42,9 +42,10 @@ const uid_t GROUP_APP           = 5050;
 const char* APP_PASS            = "user-pass";
 
 const char* TEST_ALIAS          = "test-alias";
-const char* SYSTEM_LABEL        = "/";
-const char* TEST_SYSTEM_ALIAS   = "/ test-alias";
-const char* TEST_SYSTEM_ALIAS_2 = "/ test-alias-2";
+const char* SYSTEM_LABEL        = ckmc_owner_id_system;
+const char* INVALID_LABEL       = "coco-jumbo";
+std::string TEST_SYSTEM_ALIAS   = aliasWithLabel(SYSTEM_LABEL, TEST_ALIAS);
+std::string TEST_SYSTEM_ALIAS_2 = aliasWithLabel(SYSTEM_LABEL, "test-alias-2");
 const char* TEST_LABEL          = "test-label";
 const char* TEST_LABEL_2        = "test-label-2";
 
@@ -61,6 +62,8 @@ RUNNER_TEST_GROUP_INIT(T50_SYSTEM_DB);
 
 RUNNER_TEST(T5010_CLIENT_APP_LOCKED_PRIVATE_DB)
 {
+    RUNNER_IGNORED_MSG("This test is turn off because fix "
+        "from tizen 2.4 that unlock db with empty password");
     // [prepare]
     // start as system service
     // add resource to the system DB
@@ -70,9 +73,9 @@ RUNNER_TEST(T5010_CLIENT_APP_LOCKED_PRIVATE_DB)
     // try to access system DB item - expect success
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
-    allow_access(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_READ);
+    remove_user_data(USER_APP);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
+    allow_access(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_READ);
 
     // [test]
     {
@@ -94,17 +97,36 @@ RUNNER_TEST(T5020_CLIENT_APP_ADD_TO_PRIVATE_DB)
 
     // [test]
     {
+        remove_user_data(USER_APP);
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         ScopedSaveData ssd(TEST_ALIAS, TEST_DATA);
         check_read(TEST_ALIAS, TEST_LABEL, TEST_DATA);
     }
 }
 
-RUNNER_TEST(T5031_CLIENT_APP_ACCESS_WITH_PERMISSION)
+RUNNER_TEST(T5030_CLIENT_APP_TRY_ADDING_SYSTEM_ITEM, RemoveDataEnv<0, USER_APP>)
+{
+    // [test]
+    // switch to user app, unlock DB
+    // try to add item to system DB  - expect fail
+
+    // [test]
+    {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
+        ScopedAccessProvider ap(TEST_LABEL);
+        ap.allowAPI("key-manager::api-storage", "rw");
+        ap.applyAndSwithToUser(USER_APP, GROUP_APP);
+
+        save_data(aliasWithLabel(SYSTEM_LABEL, TEST_ALIAS).c_str(), TEST_DATA, CKMC_ERROR_PERMISSION_DENIED);
+        check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA, CKMC_ERROR_DB_ALIAS_UNKNOWN);
+    }
+}
+
+RUNNER_TEST(T5031_CLIENT_APP_ACCESS_WITH_PERMISSION, RemoveDataEnv<0, USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -114,23 +136,21 @@ RUNNER_TEST(T5031_CLIENT_APP_ACCESS_WITH_PERMISSION)
     // switch to user app, unlock DB
     // try to access the system item - expect success
 
-    // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
-    allow_access(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_READ);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
+    allow_access(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_READ);
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA);
     }
 }
 
-RUNNER_TEST(T5032_CLIENT_APP_ACCESS_NO_PERMISSION)
+RUNNER_TEST(T5032_CLIENT_APP_ACCESS_NO_PERMISSION, RemoveDataEnv<0, USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -140,21 +160,20 @@ RUNNER_TEST(T5032_CLIENT_APP_ACCESS_NO_PERMISSION)
     // try to access the system item - expect fail
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA, CKMC_ERROR_DB_ALIAS_UNKNOWN);
     }
 }
 
-RUNNER_TEST(T5033_CLIENT_APP_PERMISSION_REMOVAL)
+RUNNER_TEST(T5033_CLIENT_APP_PERMISSION_REMOVAL, RemoveDataEnv<0, USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -171,35 +190,34 @@ RUNNER_TEST(T5033_CLIENT_APP_PERMISSION_REMOVAL)
     // try to access the system item - expect fail
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
-    allow_access(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_READ);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
+    allow_access(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_READ);
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA);
     }
 
     // [prepare2]
-    check_remove_allowed(TEST_SYSTEM_ALIAS);
+    check_remove_allowed(TEST_SYSTEM_ALIAS.c_str());
 
     // [test2]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA, CKMC_ERROR_DB_ALIAS_UNKNOWN);
     }
 }
 
-RUNNER_TEST(T5034_CLIENT_APP_SET_READ_ACCESS)
+RUNNER_TEST(T5034_CLIENT_APP_SET_READ_ACCESS, RemoveDataEnv<0, USER_APP>)
 {
     // [test]
     // switch to user app, unlock DB
@@ -208,18 +226,18 @@ RUNNER_TEST(T5034_CLIENT_APP_SET_READ_ACCESS)
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         ScopedSaveData ssdsystem_user(TEST_ALIAS, TEST_DATA);
-        ScopedSaveData ssdsystem_system(TEST_SYSTEM_ALIAS, TEST_DATA, CKMC_ERROR_PERMISSION_DENIED);
+        ScopedSaveData ssdsystem_system(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA, CKMC_ERROR_PERMISSION_DENIED);
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA, CKMC_ERROR_DB_ALIAS_UNKNOWN);
     }
 }
 
-RUNNER_TEST(T5035_CLIENT_APP_TRY_REMOVING_SYSTEM_ITEM)
+RUNNER_TEST(T5035_CLIENT_APP_TRY_REMOVING_SYSTEM_ITEM, RemoveDataEnv<0, USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -230,22 +248,21 @@ RUNNER_TEST(T5035_CLIENT_APP_TRY_REMOVING_SYSTEM_ITEM)
     // try to remove item from system DB  - expect fail
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
-    allow_access(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_READ);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
+    allow_access(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_READ);
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
-        check_remove_denied(TEST_SYSTEM_ALIAS);
+        check_remove_denied(TEST_SYSTEM_ALIAS.c_str());
     }
 }
 
-RUNNER_TEST(T5036_CLIENT_LIST_ACCESSIBLE_ITEMS)
+RUNNER_TEST(T5036_CLIENT_LIST_ACCESSIBLE_ITEMS, RemoveDataEnv<0, USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -260,28 +277,27 @@ RUNNER_TEST(T5036_CLIENT_LIST_ACCESSIBLE_ITEMS)
     // user lists items - expect system item A and private item
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
-    gc.save(TEST_SYSTEM_ALIAS_2, TEST_DATA);
-    allow_access(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_READ);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS_2.c_str(), TEST_DATA);
+    allow_access(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_READ);
 
     // [test]
-    check_alias_list({TEST_SYSTEM_ALIAS, TEST_SYSTEM_ALIAS_2});
+    check_alias_list({TEST_SYSTEM_ALIAS.c_str(), TEST_SYSTEM_ALIAS_2.c_str()});
 
     // [test2]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedSaveData user_data(TEST_ALIAS, TEST_DATA);
 
-        check_alias_list({TEST_SYSTEM_ALIAS,
+        check_alias_list({TEST_SYSTEM_ALIAS.c_str(),
                           aliasWithLabel(TEST_LABEL, TEST_ALIAS)});
     }
 }
 
-RUNNER_TEST(T5037_CLIENT_APP_TRY_GENERATE_KEY_IN_SYSTEM_DB)
+RUNNER_TEST(T5037_CLIENT_APP_TRY_GENERATE_KEY_IN_SYSTEM_DB, RemoveDataEnv<USER_APP>)
 {
     // [test]
     // switch to user app, unlock DB
@@ -289,13 +305,13 @@ RUNNER_TEST(T5037_CLIENT_APP_TRY_GENERATE_KEY_IN_SYSTEM_DB)
 
     // [test]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
-        const char *private_key_alias = "/ sys-db-priv";
-        const char *public_key_alias = "/ sys-db-pub";
+        std::string private_key_alias = aliasWithLabel(SYSTEM_LABEL, "sys-db-priv");
+        std::string public_key_alias = aliasWithLabel(SYSTEM_LABEL, "sys-db-pub");
         ckmc_policy_s policy_private_key;
         ckmc_policy_s policy_public_key;
         policy_private_key.password = NULL;
@@ -306,15 +322,15 @@ RUNNER_TEST(T5037_CLIENT_APP_TRY_GENERATE_KEY_IN_SYSTEM_DB)
         RUNNER_ASSERT_MSG(
                  CKMC_ERROR_PERMISSION_DENIED ==
                         (temp = ckmc_create_key_pair_rsa(1024,
-                                                         private_key_alias,
-                                                         public_key_alias,
+                                                         private_key_alias.c_str(),
+                                                         public_key_alias.c_str(),
                                                          policy_private_key,
                                                          policy_public_key)),
                  CKMCReadableError(temp));
     }
 }
 
-RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
+RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB, RemoveDataEnv<0,USER_APP>)
 {
     // [prepare]
     // start as system service
@@ -326,11 +342,8 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
     // try to create signature in system DB  - expect fail
 
     // [prepare]
-    GarbageCollector gc;
-    const char *private_key_alias = "/ sys-db-priv";
-    const char *public_key_alias = "/ sys-db-pub";
-    gc.add(private_key_alias);
-    gc.add(public_key_alias);
+    std::string private_key_alias = aliasWithLabel(SYSTEM_LABEL, "sys-db-priv");
+    std::string public_key_alias = aliasWithLabel(SYSTEM_LABEL, "sys-db-pub");
     ckmc_policy_s policy_private_key;
     ckmc_policy_s policy_public_key;
     policy_private_key.password = NULL;
@@ -341,8 +354,8 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
     RUNNER_ASSERT_MSG(
             CKMC_ERROR_NONE ==
                     (temp = ckmc_create_key_pair_rsa(1024,
-                                                     private_key_alias,
-                                                     public_key_alias,
+                                                     private_key_alias.c_str(),
+                                                     public_key_alias.c_str(),
                                                      policy_private_key,
                                                      policy_public_key)),
              CKMCReadableError(temp));
@@ -356,7 +369,7 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
 
         RUNNER_ASSERT_MSG(
                 CKMC_ERROR_NONE == (temp = ckmc_create_signature(
-                        private_key_alias,
+                        private_key_alias.c_str(),
                         NULL,
                         msg_buff,
                         hash_algo,
@@ -366,7 +379,7 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
 
         RUNNER_ASSERT_MSG(
                 CKMC_ERROR_NONE == (temp = ckmc_verify_signature(
-                        public_key_alias,
+                        public_key_alias.c_str(),
                         NULL,
                         msg_buff,
                         *signature,
@@ -377,10 +390,10 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
 
     // [test2]
     {
+        ScopedDBUnlock unlock(USER_APP, APP_PASS);
         ScopedAccessProvider ap(TEST_LABEL);
         ap.allowAPI("key-manager::api-storage", "rw");
         ap.applyAndSwithToUser(USER_APP, GROUP_APP);
-        ScopedDBUnlock unlock(USER_APP, APP_PASS);
 
         ckmc_hash_algo_e hash_algo = CKMC_HASH_SHA256;
         ckmc_rsa_padding_algo_e pad_algo = CKMC_PKCS1_PADDING;
@@ -389,7 +402,7 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
 
         RUNNER_ASSERT_MSG(
                 CKMC_ERROR_DB_ALIAS_UNKNOWN == (temp = ckmc_create_signature(
-                        private_key_alias,
+                        private_key_alias.c_str(),
                         NULL,
                         msg_buff,
                         hash_algo,
@@ -399,7 +412,7 @@ RUNNER_TEST(T5038_CLIENT_SERVER_CREATE_VERIFY_SYSTEM_DB)
     }
 }
 
-RUNNER_TEST(T5039_SYSTEM_APP_SET_REMOVE_ACCESS)
+RUNNER_TEST(T5039_SYSTEM_APP_SET_REMOVE_ACCESS, RemoveDataEnv<0>)
 {
     // [prepare]
     // start as system service
@@ -408,14 +421,13 @@ RUNNER_TEST(T5039_SYSTEM_APP_SET_REMOVE_ACCESS)
     // add remove permission to a user app - expect fail
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
-    allow_access_negative(TEST_SYSTEM_ALIAS, TEST_LABEL, CKMC_PERMISSION_REMOVE, CKMC_ERROR_INVALID_PARAMETER);
+    allow_access_negative(TEST_SYSTEM_ALIAS.c_str(), TEST_LABEL, CKMC_PERMISSION_REMOVE, CKMC_ERROR_INVALID_PARAMETER);
 }
 
-RUNNER_TEST(T5040_SYSTEM_SVC_ACCESS_DB)
+RUNNER_TEST(T5040_SYSTEM_SVC_ACCESS_DB, RemoveDataEnv<0>)
 {
     // [prepare]
     // start as system service
@@ -424,14 +436,13 @@ RUNNER_TEST(T5040_SYSTEM_SVC_ACCESS_DB)
     // try to access the item - expect success
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
     check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA);
 }
 
-RUNNER_TEST(T5041_SYSTEM_SVC_1234_ACCESS_DB)
+RUNNER_TEST(T5041_SYSTEM_SVC_1234_ACCESS_DB, RemoveDataEnv<0>)
 {
     // [prepare]
     // start as system service
@@ -441,8 +452,7 @@ RUNNER_TEST(T5041_SYSTEM_SVC_1234_ACCESS_DB)
     // try to access the item - expect success
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
     {
@@ -470,12 +480,12 @@ RUNNER_TEST(T5042_SYSTEM_SVC_1234_ADD_ITEM_TO_DB)
         ap.applyAndSwithToUser(USER_SERVICE_2, GROUP_SERVICE_2);
 
         // [test]
-        ScopedSaveData ssd(TEST_SYSTEM_ALIAS, TEST_DATA);
+        ScopedSaveData ssd(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA);
     }
 }
 
-RUNNER_TEST(T5043_SYSTEM_SVC_4999_ACCESS_DB)
+RUNNER_TEST(T5043_SYSTEM_SVC_4999_ACCESS_DB, RemoveDataEnv<0>)
 {
     // [prepare]
     // start as system service
@@ -485,8 +495,7 @@ RUNNER_TEST(T5043_SYSTEM_SVC_4999_ACCESS_DB)
     // try to access the item - expect success
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
     {
@@ -498,8 +507,10 @@ RUNNER_TEST(T5043_SYSTEM_SVC_4999_ACCESS_DB)
     }
 }
 
-RUNNER_TEST(T5044_SYSTEM_SVC_5000_ACCESS_DB)
+RUNNER_TEST(T5044_SYSTEM_SVC_5000_ACCESS_DB, RemoveDataEnv<0>)
 {
+    RUNNER_IGNORED_MSG("This test is turn off because fix "
+        "from tizen 2.4 that unlock db with empty password");
     // [prepare]
     // start as system service
     // add resource to the system DB
@@ -508,8 +519,7 @@ RUNNER_TEST(T5044_SYSTEM_SVC_5000_ACCESS_DB)
     // try to access the item - expect fail (no system service)
 
     // [prepare]
-    GarbageCollector gc;
-    gc.save(TEST_SYSTEM_ALIAS, TEST_DATA);
+    save_data(TEST_SYSTEM_ALIAS.c_str(), TEST_DATA);
 
     // [test]
     {
@@ -520,3 +530,19 @@ RUNNER_TEST(T5044_SYSTEM_SVC_5000_ACCESS_DB)
         check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA, CKMC_ERROR_DB_LOCKED);
     }
 }
+
+RUNNER_TEST(T5045_SYSTEM_DB_ADD_WITH_INVALID_LABEL, RemoveDataEnv<0>)
+{
+    // [prepare]
+    // start as system service
+    // [test]
+    // try to add item to system DB using wrong label - expect fail
+    // try to add item using explicit system label - expect success
+
+    // [test]
+    save_data(aliasWithLabel(INVALID_LABEL, TEST_ALIAS).c_str(), TEST_DATA, CKMC_ERROR_INVALID_PARAMETER);
+    check_read(TEST_ALIAS, INVALID_LABEL, TEST_DATA, CKMC_ERROR_DB_ALIAS_UNKNOWN);
+
+    save_data(aliasWithLabel(SYSTEM_LABEL, TEST_ALIAS).c_str(), TEST_DATA);
+    check_read(TEST_ALIAS, SYSTEM_LABEL, TEST_DATA);
+}