Add unit test case fo delete certificate 59/314559/6
authorPhan Xuan Tan <xuan.tan@samsung.com>
Mon, 15 Jul 2024 08:22:12 +0000 (15:22 +0700)
committerDariusz Michaluk <d.michaluk@samsung.com>
Tue, 16 Jul 2024 06:37:44 +0000 (06:37 +0000)
+ vcore/certsvc_pkcs12_delete_certificate_from_store
+ vcore/vcore_client_delete_certificate_from_store
+ server/deleteCertificateFromStore

Change-Id: Idcfe8192abe0ef1ee5f69b83aadf1a37748a3d8f

unit-tests/test_cert_server_logic.cpp
unit-tests/test_vcore_api_pkcs12.cpp
unit-tests/test_vcore_client.cpp

index 69ce6b2a6bf3a3f5a46ab4319a3ba319dbf524a9..d20c0e98d612665aaeb744acfae30b94f8cf8b4a 100644 (file)
@@ -30,7 +30,7 @@ extern "C"
        #include "cert-server-logic.h"
 }
 
-static const std::string gNamePrexif = "gname_sever_";
+static const std::string gNamePrefix = "gname_sever_";
 static const std::string commonNamePrefix = "TEST_sever_";
 static const std::string systemGname = "002c0b4f.0";
 static const std::string largeString = createLargeString(VCORE_MAX_RECV_DATA_SIZE + 100);
@@ -112,7 +112,7 @@ POSITIVE_TEST_CASE(T_install_certificate_to_store)
 
        for(auto storeType: storeTypeMap)
        {
-               gName = gNamePrexif + storeType.first + std::to_string(PEM_CRT);
+               gName = gNamePrefix + storeType.first + std::to_string(PEM_CRT);
                commonName = commonNamePrefix + storeType.first + std::to_string(PEM_CRT);
                result = installCertificateToStore(
                        storeType.second,
@@ -124,7 +124,7 @@ POSITIVE_TEST_CASE(T_install_certificate_to_store)
                        PEM_CRT);
                BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
 
-               gNamePKey = gNamePrexif + storeType.first + std::to_string(P12_PKEY);
+               gNamePKey = gNamePrefix + storeType.first + std::to_string(P12_PKEY);
                commonNamePKey = commonNamePrefix + storeType.first + std::to_string(P12_PKEY);
                result = installCertificateToStore(
                        storeType.second,
@@ -136,7 +136,7 @@ POSITIVE_TEST_CASE(T_install_certificate_to_store)
                        P12_PKEY);
                BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
 
-               gName = gNamePrexif + storeType.first + std::to_string(P12_END_USER);
+               gName = gNamePrefix + storeType.first + std::to_string(P12_END_USER);
                commonName = commonNamePrefix + storeType.first + std::to_string(P12_END_USER);
                result = installCertificateToStore(
                        storeType.second,
@@ -148,7 +148,7 @@ POSITIVE_TEST_CASE(T_install_certificate_to_store)
                        P12_END_USER);
                BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
 
-               gName = gNamePrexif + storeType.first + std::to_string(P12_INTERMEDIATE);
+               gName = gNamePrefix + storeType.first + std::to_string(P12_INTERMEDIATE);
                commonName = commonNamePrefix + storeType.first + std::to_string(P12_INTERMEDIATE);
                result = installCertificateToStore(
                        storeType.second,
@@ -175,7 +175,7 @@ NEGATIVE_TEST_CASE(T_install_certificate_to_store)
 
        for(auto storeType: storeTypeMap)
        {
-               gName = gNamePrexif + storeType.first + std::to_string(PEM_CRT);
+               gName = gNamePrefix + storeType.first + std::to_string(PEM_CRT);
                commonName = commonNamePrefix + storeType.first + std::to_string(PEM_CRT);
 
                result = installCertificateToStore(
@@ -190,7 +190,7 @@ NEGATIVE_TEST_CASE(T_install_certificate_to_store)
 
                result = installCertificateToStore(
                        storeType.second,
-                       gNamePrexif.c_str(),
+                       gNamePrefix.c_str(),
                        commonNamePrefix.c_str(),
                        NULL,
                        NULL,
@@ -231,7 +231,7 @@ NEGATIVE_TEST_CASE(T_install_certificate_to_store)
 
        result = installCertificateToStore(
                SYSTEM_STORE,
-               gNamePrexif.c_str(),
+               gNamePrefix.c_str(),
                commonNamePrefix.c_str(),
                NULL,
                NULL,
@@ -241,7 +241,7 @@ NEGATIVE_TEST_CASE(T_install_certificate_to_store)
 
        result = installCertificateToStore(
                NONE_STORE,
-               gNamePrexif.c_str(),
+               gNamePrefix.c_str(),
                commonNamePrefix.c_str(),
                NULL,
                NULL,
@@ -324,7 +324,7 @@ POSITIVE_TEST_CASE(T_load_certificate_from_store)
        for (auto storeType: storeTypeMap)
        {
                const std::string gnameEndUser =
-                       gNamePrexif + storeType.first + std::to_string(P12_END_USER);
+                       gNamePrefix + storeType.first + std::to_string(P12_END_USER);
 
                loadCertFromStores(storeType.second, gnameEndUser, CERTSVC_SUCCESS);
        }
@@ -339,9 +339,9 @@ NEGATIVE_TEST_CASE(T_negative_load_certificate_from_store)
        result = initialize_db();
        BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
 
-       loadCertFromStores(NONE_STORE, gNamePrexif, CERTSVC_FAIL);
+       loadCertFromStores(NONE_STORE, gNamePrefix, CERTSVC_FAIL);
        loadCertFromStores(WIFI_STORE, std::string(), CERTSVC_FAIL);
-       loadCertFromStores(WIFI_STORE, gNamePrexif, CERTSVC_FAIL);
+       loadCertFromStores(WIFI_STORE, gNamePrefix, CERTSVC_FAIL);
        loadCertFromStores(SYSTEM_STORE, systemGname, CERTSVC_FAIL);
 
        deinitialize_db();
@@ -386,4 +386,88 @@ NEGATIVE_TEST_CASE(T_negative_load_certificate_from_store_large_group_name)
        deinitialize_db();
 }
 
+POSITIVE_TEST_CASE(T_delete_certificate_from_store)
+{
+       int result;
+
+       result = initialize_db();
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+       std::string gnamePem, gnameEndUser, gnameIntermediate;
+
+       for(auto storeType: storeTypeMap)
+       {
+               gnamePem = gNamePrefix + storeType.first + std::to_string(PEM_CRT);
+               gnameEndUser = gNamePrefix + storeType.first + std::to_string(P12_END_USER);
+               gnameIntermediate = gNamePrefix + storeType.first + std::to_string(P12_INTERMEDIATE);
+
+               result = deleteCertificateFromStore(storeType.second, gnamePem.c_str());
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+               result = deleteCertificateFromStore(storeType.second, gnameEndUser.c_str());
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+               result = deleteCertificateFromStore(storeType.second, gnameIntermediate.c_str());
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+       }
+
+       deinitialize_db();
+}
+
+POSITIVE_TEST_CASE(T_delete_certificate_same_gname_from_stores)
+{
+       int result;
+
+       result = initialize_db();
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+       for(auto storeType: storeTypeMap)
+       {
+               result = installCertificateToStore(
+                       storeType.second,
+                       gNamePrefix.c_str(),
+                       commonNamePrefix.c_str(),
+                       NULL,
+                       NULL,
+                       PemCertInfo::CertPEM.c_str(),
+                       PEM_CRT);
+
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+       }
+
+       for(auto storeType: storeTypeMap)
+       {
+               result = deleteCertificateFromStore(storeType.second, gNamePrefix.c_str());
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+       }
+
+       deinitialize_db();
+
+}
+
+NEGATIVE_TEST_CASE(T_delete_certificate_from_store_error)
+{
+       int result;
+
+       result = initialize_db();
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+       result = deleteCertificateFromStore(WIFI_STORE, NULL);
+       BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
+
+       result = deleteCertificateFromStore(SYSTEM_STORE, systemGname.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_INVALID_STORE_TYPE);
+
+       result = deleteCertificateFromStore(WIFI_STORE, systemGname.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_FAIL);
+
+       result = deleteCertificateFromStore(NONE_STORE, systemGname.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_FAIL);
+
+       deinitialize_db();
+
+       result = deleteCertificateFromStore(WIFI_STORE, systemGname.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_FAIL);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
index 7c8553e16763d591ab6ebdbbadbc68a6a03bd530..777f9247aa2b2c7f0ee84a7e016a7686aede5a81 100644 (file)
@@ -581,4 +581,91 @@ NEGATIVE_TEST_CASE(T_certsvc_pkcs12_free_certificate_list_loaded_from_store_wron
        certsvc_instance_free(instance);
 }
 
+POSITIVE_TEST_CASE(T_certsvc_pkcs12_delete_certificate_from_store)
+{
+       int result;
+
+       BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
+
+       for (auto storeType: storeTypeMap)
+       {
+               CertSvcStoreCertList *certList = NULL;
+               size_t length = 0;
+
+               result = certsvc_pkcs12_get_certificate_list_from_store(
+                       instance,
+                       storeType.second,
+                       DISABLED,
+                       &certList,
+                       &length);
+
+               BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+               BOOST_CHECK(certList);
+
+               while (certList)
+               {
+                       CertSvcString gNameStr = wrapperCertsvcStringNew(certList->gname, &result);
+                       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+                       result = certsvc_pkcs12_delete_certificate_from_store(
+                               instance,
+                               storeType.second,
+                               gNameStr);
+
+                       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+                       certsvc_string_free(gNameStr);
+
+                       certList = certList->next;
+               }
+       }
+
+       certsvc_instance_free(instance);
+}
+
+NEGATIVE_TEST_CASE(T_certsvc_pkcs12_delete_certificate_from_invalid_store)
+{
+       int result;
+
+       BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
+
+       CertSvcString gNameStr = wrapperCertsvcStringNew(GroupNameTest.c_str(), &result);
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+       result = certsvc_pkcs12_delete_certificate_from_store(instance, NONE_STORE, gNameStr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_INVALID_STORE_TYPE);
+
+       result = certsvc_pkcs12_delete_certificate_from_store(instance, SYSTEM_STORE, gNameStr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_INVALID_STORE_TYPE);
+
+       certsvc_string_free(gNameStr);
+       certsvc_instance_free(instance);
+}
+
+NEGATIVE_TEST_CASE(T_certsvc_pkcs12_delete_certificate_from_store_wrong_argument)
+{
+       int result;
+
+       BOOST_REQUIRE_EQUAL(certsvc_instance_new(&instance), CERTSVC_SUCCESS);
+
+       CertSvcString gNameStr = wrapperCertsvcStringNew(std::string(), &result);
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+
+       result = certsvc_pkcs12_delete_certificate_from_store(instance, VPN_STORE, gNameStr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
+
+       gNameStr = wrapperCertsvcStringNew(GroupNameTest.c_str(), &result);
+
+       result = certsvc_pkcs12_delete_certificate_from_store(instance, VPN_STORE, gNameStr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_FAIL);
+
+       const CertStoreType individualStoreType = (CertStoreType)(WIFI_STORE | VPN_STORE | EMAIL_STORE);
+
+       result = certsvc_pkcs12_delete_certificate_from_store(instance, individualStoreType, gNameStr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_FAIL);
+
+       certsvc_string_free(gNameStr);
+       certsvc_instance_free(instance);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file
index 0e0a4681994be4bb7e732cca0919787572c4dd33..a0c949130ab4d0bfbe69283c7e0e9d66fa1a4c57 100644 (file)
@@ -159,4 +159,23 @@ NEGATIVE_TEST_CASE(T_vcore_client_install_certificate_to_store_wrong_argument)
        BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
 }
 
+POSITIVE_TEST_CASE(T_vcore_client_delete_certificate_from_store)
+{
+       int result;
+
+       result = vcore_client_delete_certificate_from_store(VPN_STORE, ValidGname.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_SUCCESS);
+}
+
+NEGATIVE_TEST_CASE(T_vcore_client_delete_certificate_from_store)
+{
+       int result;
+
+       result = vcore_client_delete_certificate_from_store(VPN_STORE, nullptr);
+       BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
+
+       result = vcore_client_delete_certificate_from_store(VPN_STORE, LargeString.c_str());
+       BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT);
+}
+
 BOOST_AUTO_TEST_SUITE_END()
\ No newline at end of file