Add test for listing aliases with password protection 92/185892/18
authorErnest Borowski <e.borowski@partner.samsung.com>
Thu, 2 Aug 2018 10:19:31 +0000 (12:19 +0200)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Fri, 22 Feb 2019 11:43:38 +0000 (12:43 +0100)
statuses on old database schema

Change-Id: I2e9e409a385744a0ed694023872cbd4b37cce523

tests/encryption-scheme/scheme-test.cpp
tests/encryption-scheme/scheme-test.h
tests/test_encryption-scheme.cpp

index d851f42..04319a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2015 - 2018 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2015 - 2019 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -576,6 +576,70 @@ void SchemeTest::FillDb()
        }
 }
 
+void SchemeTest::CheckAliasInfo()
+{
+       SwitchToUser();
+       for (const auto &g : GROUPS) {
+               for (const auto &i : g.items) {
+                       int ret;
+                       bool encStatus = false;
+                       Password pass = i.policy.password;
+
+                       if (pass.empty())
+                               pass = TEST_PASS;
+                       else
+                               pass = Password();
+
+                       switch (i.type) {
+                       case DataType::BINARY_DATA: {
+                               ret = m_mgr->getDataEncryptionStatus(i.alias, encStatus);
+                               BOOST_REQUIRE_MESSAGE(ret == CKM_API_SUCCESS,
+                                                                         "can not get data encryption status, ret: " +
+                                                                         std::to_string(ret));
+                               break;
+                       }
+
+                       case DataType::KEY_AES:
+                       case DataType::KEY_RSA_PRIVATE:
+                       case DataType::KEY_RSA_PUBLIC: {
+                               ret = m_mgr->getKeyEncryptionStatus(i.alias, encStatus);
+                               BOOST_REQUIRE_MESSAGE(ret == CKM_API_SUCCESS,
+                                                                         "can not get key encryption status, ret: " +
+                                                                         std::to_string(ret));
+                               break;
+                       }
+
+                       case DataType::CERTIFICATE: {
+                               ret = m_mgr->getCertificateEncryptionStatus(i.alias, encStatus);
+                               BOOST_REQUIRE_MESSAGE(ret == CKM_API_SUCCESS,
+                                                                         "can not get certificate encryption status, ret: " +
+                                                                         std::to_string(ret));
+                               break;
+                       }
+
+                       case DataType::CHAIN_CERT_0: {
+                               ret = m_mgr->getCertificateEncryptionStatus(i.alias, encStatus);
+                               BOOST_REQUIRE_MESSAGE(ret == CKM_API_SUCCESS,
+                                                                         "can not get certificate encryption status, ret: " +
+                                                                         std::to_string(ret));
+                               ret = m_mgr->getKeyEncryptionStatus(i.alias, encStatus);
+                               BOOST_REQUIRE_MESSAGE(ret == CKM_API_SUCCESS,
+                                                                         "can not get key encryption status, ret: " +
+                                                                         std::to_string(ret));
+                               break;
+                       }
+
+                       default:
+                               BOOST_FAIL("Unsupported data type " << i.type);
+                       }
+               BOOST_REQUIRE_MESSAGE(encStatus == !i.policy.password.empty(), "item: " <<
+                                                         i.alias << " has wrong encryption status: " << encStatus);
+
+               }
+       }
+}
+
+
 void SchemeTest::ReadAll(bool useWrongPass)
 {
        SwitchToUser();
index d988084..cd4f1a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2015 -2019 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -105,6 +105,7 @@ public:
        SchemeTest();
        ~SchemeTest();
 
+       void CheckAliasInfo();
        void RemoveUserData();
        void FillDb();
        void ReadAll(bool useWrongPass = false);
index ac552f5..e77c38b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- *  Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *  Copyright (c) 2015 -2019 Samsung Electronics Co., Ltd All Rights Reserved
  *
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -73,6 +73,18 @@ BOOST_AUTO_TEST_CASE(T010_Check_old_scheme)
        test.CheckSchemeVersion(filter, OLD_ENC_SCHEME);
 }
 
+BOOST_AUTO_TEST_CASE(T1111_Alias_Info_old_scheme)
+{
+       SchemeTest test;
+       test.RestoreDb();
+
+       ItemFilter filter;
+       test.CheckSchemeVersion(filter, OLD_ENC_SCHEME);
+       test.CheckAliasInfo();
+       test.ReadAll();
+       test.CheckAliasInfo();
+}
+
 // Newly written data should use the new scheme
 BOOST_AUTO_TEST_CASE(T020_Check_new_scheme)
 {