154aa6d63Sopenharmony_ci/* 254aa6d63Sopenharmony_ci * Copyright (c) 2024-2024 Huawei Device Co., Ltd. 354aa6d63Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 454aa6d63Sopenharmony_ci * you may not use this file except in compliance with the License. 554aa6d63Sopenharmony_ci * You may obtain a copy of the License at 654aa6d63Sopenharmony_ci * 754aa6d63Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 854aa6d63Sopenharmony_ci * 954aa6d63Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1054aa6d63Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1154aa6d63Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1254aa6d63Sopenharmony_ci * See the License for the specific language governing permissions and 1354aa6d63Sopenharmony_ci * limitations under the License. 1454aa6d63Sopenharmony_ci */ 1554aa6d63Sopenharmony_ci#include <chrono> 1654aa6d63Sopenharmony_ci#include <thread> 1754aa6d63Sopenharmony_ci#include <string> 1854aa6d63Sopenharmony_ci#include <filesystem> 1954aa6d63Sopenharmony_ci 2054aa6d63Sopenharmony_ci#include "gtest/gtest.h" 2154aa6d63Sopenharmony_ci#include "options.h" 2254aa6d63Sopenharmony_ci#include "sign_tool_service_impl.h" 2354aa6d63Sopenharmony_ci#include "nlohmann/json.hpp" 2454aa6d63Sopenharmony_ci#include "signer_factory.h" 2554aa6d63Sopenharmony_ci#include "profile_sign_tool.h" 2654aa6d63Sopenharmony_ci#include "params_run_tool.h" 2754aa6d63Sopenharmony_ci#include "pkcs7_data.h" 2854aa6d63Sopenharmony_ci#include "signer_config.h" 2954aa6d63Sopenharmony_ci#include "local_signer.h" 3054aa6d63Sopenharmony_ci#include "bc_pkcs7_generator.h" 3154aa6d63Sopenharmony_ci#include "bc_signeddata_generator.h" 3254aa6d63Sopenharmony_ci#include "profile_verify.h" 3354aa6d63Sopenharmony_ci#include "constant.h" 3454aa6d63Sopenharmony_ci#include "cms_utils.h" 3554aa6d63Sopenharmony_ci 3654aa6d63Sopenharmony_ciusing nlohmann::json; 3754aa6d63Sopenharmony_ci 3854aa6d63Sopenharmony_cinamespace OHOS { 3954aa6d63Sopenharmony_cinamespace SignatureTools { 4054aa6d63Sopenharmony_ci 4154aa6d63Sopenharmony_ci// sign profile使用的全局参数 4254aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_MODE = "localSign"; 4354aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_KEY_ALIAS = "oh-profile1-key-v1"; 4454aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_PROFILE_CERT_FILE = "./signProfile/profile-release1.pem"; 4554aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_SIGN_ALG = "SHA384withECDSA"; 4654aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_KEY_STORE_FILE = "./signProfile/ohtest.p12"; 4754aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_OUT_FILE = "./signProfile/signed-profile.p7b"; 4854aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_IN_FILE = "./signProfile/profile.json"; 4954aa6d63Sopenharmony_ci 5054aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_CERT_PEM = "./signProfile/profile-release1-cert.pem"; 5154aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_REVERSE_PEM = "./signProfile/profile-release1-reverse.pem"; 5254aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_DOUBLE_CERT_PEM = "./signProfile/profile-release1-invalid_cert_chain.pem"; 5354aa6d63Sopenharmony_ci 5454aa6d63Sopenharmony_ci// verify profile 使用的全局参数 5554aa6d63Sopenharmony_cistatic const std::string VERIFY_PROFILE_IN_FILE = "./signProfile/app1-profile1.p7b"; 5654aa6d63Sopenharmony_cistatic const std::string VERIFY_PROFILE_OUT_FILE = "./signProfile/VerifyResult.json"; 5754aa6d63Sopenharmony_ci// sign app 使用全局参数 5854aa6d63Sopenharmony_cistatic const std::string SIGN_APP_MODE = "localSign"; 5954aa6d63Sopenharmony_cistatic const std::string SIGN_APP_KEY_ALIAS = "oh-app1-key-v1"; 6054aa6d63Sopenharmony_cistatic const std::string SIGN_APP_APP_CERT_FILE = "./signProfile/app-release1.pem"; 6154aa6d63Sopenharmony_cistatic const std::string SIGN_APP_PROFILE_FILE = "./signProfile/app1-profile1.p7b"; 6254aa6d63Sopenharmony_cistatic const std::string SIGN_APP_IN_FILE = "./signProfile/unsigned.hap"; 6354aa6d63Sopenharmony_cistatic const std::string SIGN_APP_IN_FILE_TXT = "./signProfile/unsigned.txt"; 6454aa6d63Sopenharmony_cistatic const std::string SIGN_APP_SIGN_ALG = "SHA256withECDSA"; 6554aa6d63Sopenharmony_cistatic const std::string SIGN_APP_KEY_STORE_FILE = "./signProfile/ohtest.p12"; 6654aa6d63Sopenharmony_cistatic const std::string SIGN_APP_OUT_FILE = "./signProfile/signed.hap"; 6754aa6d63Sopenharmony_ci 6854aa6d63Sopenharmony_ciclass ProvisionTest : public testing::Test { 6954aa6d63Sopenharmony_cipublic: 7054aa6d63Sopenharmony_ci static void SetUpTestCase(void); 7154aa6d63Sopenharmony_ci static void TearDownTestCase(void); 7254aa6d63Sopenharmony_ci void SetUp()override; 7354aa6d63Sopenharmony_ci void TearDown()override; 7454aa6d63Sopenharmony_ci}; 7554aa6d63Sopenharmony_civoid ProvisionTest::SetUpTestCase(void) 7654aa6d63Sopenharmony_ci{ 7754aa6d63Sopenharmony_ci std::filesystem::copy(SIGN_APP_IN_FILE_TXT, SIGN_APP_IN_FILE); 7854aa6d63Sopenharmony_ci} 7954aa6d63Sopenharmony_ci 8054aa6d63Sopenharmony_civoid ProvisionTest::TearDownTestCase(void) 8154aa6d63Sopenharmony_ci{ 8254aa6d63Sopenharmony_ci std::filesystem::remove(SIGN_APP_IN_FILE); 8354aa6d63Sopenharmony_ci} 8454aa6d63Sopenharmony_ci 8554aa6d63Sopenharmony_civoid ProvisionTest::SetUp() 8654aa6d63Sopenharmony_ci{ 8754aa6d63Sopenharmony_ci} 8854aa6d63Sopenharmony_ci 8954aa6d63Sopenharmony_civoid ProvisionTest::TearDown() 9054aa6d63Sopenharmony_ci{ 9154aa6d63Sopenharmony_ci} 9254aa6d63Sopenharmony_ci 9354aa6d63Sopenharmony_ci/** 9454aa6d63Sopenharmony_ci * @tc.name: provision_test001 9554aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner::GetCrls() interface get NULL crls. 9654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 9754aa6d63Sopenharmony_ci * @tc.type: FUNC 9854aa6d63Sopenharmony_ci * @tc.level Level 1 9954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 10054aa6d63Sopenharmony_ci */ 10154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test001, testing::ext::TestSize.Level1) 10254aa6d63Sopenharmony_ci{ 10354aa6d63Sopenharmony_ci EVP_PKEY* pkey = NULL; 10454aa6d63Sopenharmony_ci STACK_OF(X509)* certs = NULL; 10554aa6d63Sopenharmony_ci std::shared_ptr<LocalSigner> signer = std::make_shared<LocalSigner>(pkey, certs); 10654aa6d63Sopenharmony_ci STACK_OF(X509_CRL)* crls = signer->GetCrls(); 10754aa6d63Sopenharmony_ci EXPECT_TRUE(crls == NULL); 10854aa6d63Sopenharmony_ci} 10954aa6d63Sopenharmony_ci 11054aa6d63Sopenharmony_ci/** 11154aa6d63Sopenharmony_ci * @tc.name: provision_test002 11254aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner::GetSignature() interface diffrent sign algorithm 11354aa6d63Sopenharmony_ci * for success only support SHA256/384withECDSA. 11454aa6d63Sopenharmony_ci * @tc.size: MEDIUM 11554aa6d63Sopenharmony_ci * @tc.type: FUNC 11654aa6d63Sopenharmony_ci * @tc.level Level 1 11754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 11854aa6d63Sopenharmony_ci */ 11954aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test002, testing::ext::TestSize.Level1) 12054aa6d63Sopenharmony_ci{ 12154aa6d63Sopenharmony_ci std::string content = "signed content data"; 12254aa6d63Sopenharmony_ci Options options; 12354aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 12454aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 12554aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 12654aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 12754aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 12854aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 12954aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 13054aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 13154aa6d63Sopenharmony_ci char keypwd[] = "123456"; 13254aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 13354aa6d63Sopenharmony_ci options[Options::MODE] = mode; 13454aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 13554aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 13654aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 13754aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 13854aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 13954aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 14054aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 14154aa6d63Sopenharmony_ci 14254aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 14354aa6d63Sopenharmony_ci SignerFactory factory; 14454aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = factory.GetSigner(adapter); 14554aa6d63Sopenharmony_ci std::string signature1 = signer->GetSignature(content, "SHA384withECDSA"); 14654aa6d63Sopenharmony_ci EXPECT_TRUE(signature1.size()); 14754aa6d63Sopenharmony_ci std::string signature2 = signer->GetSignature(content, "SHA256withECDSA"); 14854aa6d63Sopenharmony_ci EXPECT_TRUE(signature2.size()); 14954aa6d63Sopenharmony_ci std::string signature3 = signer->GetSignature(content, "SHA999withECDSA"); 15054aa6d63Sopenharmony_ci EXPECT_TRUE(signature3.empty()); 15154aa6d63Sopenharmony_ci std::string signature4 = signer->GetSignature("", "SHA384withECDSA"); 15254aa6d63Sopenharmony_ci EXPECT_FALSE(signature4.empty()); 15354aa6d63Sopenharmony_ci} 15454aa6d63Sopenharmony_ci 15554aa6d63Sopenharmony_ci/** 15654aa6d63Sopenharmony_ci * @tc.name: provision_test003 15754aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for not debug/release provision. 15854aa6d63Sopenharmony_ci * @tc.size: MEDIUM 15954aa6d63Sopenharmony_ci * @tc.type: FUNC 16054aa6d63Sopenharmony_ci * @tc.level Level 1 16154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 16254aa6d63Sopenharmony_ci */ 16354aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test003, testing::ext::TestSize.Level1) 16454aa6d63Sopenharmony_ci{ 16554aa6d63Sopenharmony_ci std::string provision = "{\"acls\":{\"allowed-acls\":[\"ac1\",\"ac2\"]},\"bundle-info\":{\"app-feature\":" 16654aa6d63Sopenharmony_ci "\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer-id\":\"OpenHarmony\"," 16754aa6d63Sopenharmony_ci "\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 16854aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 16954aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 17054aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 17154aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 17254aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 17354aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 17454aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 17554aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 17654aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 17754aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 17854aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 17954aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 18054aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 18154aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 18254aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD53029605" 18354aa6d63Sopenharmony_ci "4159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F958732865\"]}," 18454aa6d63Sopenharmony_ci "\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":\"invalid de" 18554aa6d63Sopenharmony_ci "bug\",\"uuid\"" 18654aa6d63Sopenharmony_ci ":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610519532}" 18754aa6d63Sopenharmony_ci ",\"version-code\":1,\"version-name\":\"1.0.0\",\"baseapp-info\":{\"package-name\":\"package_name\",\"packag" 18854aa6d63Sopenharmony_ci "e-cert\":\"package_cert\"}}"; 18954aa6d63Sopenharmony_ci ProfileInfo info; 19054aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 19154aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 19254aa6d63Sopenharmony_ci} 19354aa6d63Sopenharmony_ci 19454aa6d63Sopenharmony_ci/** 19554aa6d63Sopenharmony_ci * @tc.name: provision_test004 19654aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() interface for SUCCESS. 19754aa6d63Sopenharmony_ci * @tc.size: MEDIUM 19854aa6d63Sopenharmony_ci * @tc.type: FUNC 19954aa6d63Sopenharmony_ci * @tc.level Level 1 20054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 20154aa6d63Sopenharmony_ci */ 20254aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test004, testing::ext::TestSize.Level1) 20354aa6d63Sopenharmony_ci{ 20454aa6d63Sopenharmony_ci std::string provision = "{\"acls\":{\"allowed-acls\":[\"ac1\",\"ac2\"]},\"bundle-info\":{\"app-feature\":" 20554aa6d63Sopenharmony_ci "\"hos_system_" 20654aa6d63Sopenharmony_ci "app\",\"bundle-name\":\".*\",\"developer-id\":\"OpenHarmony\",\"development-certificate\":" 20754aa6d63Sopenharmony_ci "\"-----BEGIN CERTIFICATE-----\\n" 20854aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 20954aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 21054aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 21154aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 21254aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 21354aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 21454aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 21554aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 21654aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 21754aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 21854aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 21954aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 22054aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 22154aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 22254aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD530296" 22354aa6d63Sopenharmony_ci "054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F958732865\"]},\"" 22454aa6d63Sopenharmony_ci "issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":\"debug\",\"uuid" 22554aa6d63Sopenharmony_ci "\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":161051" 22654aa6d63Sopenharmony_ci "9532},\"version-code\":1,\"version-name\":\"1.0.0\",\"baseapp-info\":{\"package-name\":\"package_name\"," 22754aa6d63Sopenharmony_ci "\"package-cert\":\"package_cert\"}}"; 22854aa6d63Sopenharmony_ci ProfileInfo info2; 22954aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info2); 23054aa6d63Sopenharmony_ci EXPECT_TRUE(result == PROVISION_OK); 23154aa6d63Sopenharmony_ci} 23254aa6d63Sopenharmony_ci/** 23354aa6d63Sopenharmony_ci * @tc.name: provision_test005 23454aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for not struct json. 23554aa6d63Sopenharmony_ci * @tc.size: MEDIUM 23654aa6d63Sopenharmony_ci * @tc.type: FUNC 23754aa6d63Sopenharmony_ci * @tc.level Level 1 23854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 23954aa6d63Sopenharmony_ci */ 24054aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test005, testing::ext::TestSize.Level1) 24154aa6d63Sopenharmony_ci{ 24254aa6d63Sopenharmony_ci ProfileInfo info; 24354aa6d63Sopenharmony_ci std::string provision = "55.2"; 24454aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 24554aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 24654aa6d63Sopenharmony_ci} 24754aa6d63Sopenharmony_ci 24854aa6d63Sopenharmony_ci/** 24954aa6d63Sopenharmony_ci * @tc.name: provision_test006 25054aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for discarded json. 25154aa6d63Sopenharmony_ci * @tc.size: MEDIUM 25254aa6d63Sopenharmony_ci * @tc.type: FUNC 25354aa6d63Sopenharmony_ci * @tc.level Level 1 25454aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 25554aa6d63Sopenharmony_ci */ 25654aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test006, testing::ext::TestSize.Level1) 25754aa6d63Sopenharmony_ci{ 25854aa6d63Sopenharmony_ci ProfileInfo info; 25954aa6d63Sopenharmony_ci std::string provision = "{\"name\": \"feixing\",\"age\": 18}+"; 26054aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 26154aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 26254aa6d63Sopenharmony_ci} 26354aa6d63Sopenharmony_ci 26454aa6d63Sopenharmony_ci/** 26554aa6d63Sopenharmony_cin * @tc.name: provision_test009 26654aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProfile() interface for SUCCESS. 26754aa6d63Sopenharmony_ci * @tc.size: MEDIUM 26854aa6d63Sopenharmony_ci * @tc.type: FUNC 26954aa6d63Sopenharmony_ci * @tc.level Level 1 27054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 27154aa6d63Sopenharmony_ci */ 27254aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test009, testing::ext::TestSize.Level1) 27354aa6d63Sopenharmony_ci{ 27454aa6d63Sopenharmony_ci ProfileInfo info; 27554aa6d63Sopenharmony_ci std::string provision = "[88,99,42,11,22]"; 27654aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProfile(provision, info); 27754aa6d63Sopenharmony_ci EXPECT_TRUE(result == PROVISION_OK); 27854aa6d63Sopenharmony_ci} 27954aa6d63Sopenharmony_ci 28054aa6d63Sopenharmony_ci/** 28154aa6d63Sopenharmony_ci * @tc.name: provision_test010 28254aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() interface for SUCCESS. 28354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 28454aa6d63Sopenharmony_ci * @tc.type: FUNC 28554aa6d63Sopenharmony_ci * @tc.level Level 1 28654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 28754aa6d63Sopenharmony_ci */ 28854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test010, testing::ext::TestSize.Level1) 28954aa6d63Sopenharmony_ci{ 29054aa6d63Sopenharmony_ci ProfileInfo info; 29154aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"app-feature\"" 29254aa6d63Sopenharmony_ci ":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer-id\":\"OpenHarm" 29354aa6d63Sopenharmony_ci "ony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 29454aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 29554aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 29654aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 29754aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 29854aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 29954aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 30054aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 30154aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 30254aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 30354aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 30454aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 30554aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 30654aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 30754aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 30854aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD" 30954aa6d63Sopenharmony_ci "530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F95873" 31054aa6d63Sopenharmony_ci "2865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":" 31154aa6d63Sopenharmony_ci "\"debug\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532" 31254aa6d63Sopenharmony_ci ",\"not-before\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 31354aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 31454aa6d63Sopenharmony_ci EXPECT_TRUE(result == PROVISION_OK); 31554aa6d63Sopenharmony_ci} 31654aa6d63Sopenharmony_ci 31754aa6d63Sopenharmony_ci/** 31854aa6d63Sopenharmony_ci * @tc.name: provision_test014 31954aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() interface for SUCCESS. 32054aa6d63Sopenharmony_ci * @tc.size: MEDIUM 32154aa6d63Sopenharmony_ci * @tc.type: FUNC 32254aa6d63Sopenharmony_ci * @tc.level Level 1 32354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 32454aa6d63Sopenharmony_ci */ 32554aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test014, testing::ext::TestSize.Level1) 32654aa6d63Sopenharmony_ci{ 32754aa6d63Sopenharmony_ci ProfileInfo info; 32854aa6d63Sopenharmony_ci std::string provision = "{\"app-privilege-capabilities\": [99,\"88\"],\"bundle-info\":{\"app" 32954aa6d63Sopenharmony_ci "-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer" 33054aa6d63Sopenharmony_ci "-id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 33154aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 33254aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 33354aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 33454aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 33554aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 33654aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 33754aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 33854aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 33954aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 34054aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 34154aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 34254aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 34354aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 34454aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 34554aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB" 34654aa6d63Sopenharmony_ci "44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7" 34754aa6d63Sopenharmony_ci "679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\"" 34854aa6d63Sopenharmony_ci ":[\"\"]},\"type\":\"debug\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":" 34954aa6d63Sopenharmony_ci "{\"not-after\":1705127532,\"not-before\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 35054aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 35154aa6d63Sopenharmony_ci EXPECT_TRUE(result == PROVISION_OK); 35254aa6d63Sopenharmony_ci} 35354aa6d63Sopenharmony_ci/** 35454aa6d63Sopenharmony_ci * @tc.name: provision_test019 35554aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for development-certificate is empty. 35654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 35754aa6d63Sopenharmony_ci * @tc.type: FUNC 35854aa6d63Sopenharmony_ci * @tc.level Level 1 35954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 36054aa6d63Sopenharmony_ci */ 36154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test019, testing::ext::TestSize.Level1) 36254aa6d63Sopenharmony_ci{ 36354aa6d63Sopenharmony_ci ProfileInfo info; 36454aa6d63Sopenharmony_ci std::string provision = "{\"bundle-info\":{\"app-feature\":\"hos_system_app\",\"bundle-name\":\"com" 36554aa6d63Sopenharmony_ci ".example.nativetemplatedemo\",\"developer-id\":\"OpenHarmony\",\"development-certificate\":\"\"},\"" 36654aa6d63Sopenharmony_ci "d""ebug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD53029" 36754aa6d63Sopenharmony_ci "6054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F95873286" 36854aa6d63Sopenharmony_ci "5\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":\"de" 36954aa6d63Sopenharmony_ci "bug\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"no" 37054aa6d63Sopenharmony_ci "t-before\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 37154aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 37254aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 37354aa6d63Sopenharmony_ci} 37454aa6d63Sopenharmony_ci 37554aa6d63Sopenharmony_ci/** 37654aa6d63Sopenharmony_ci * @tc.name: provision_test021 37754aa6d63Sopenharmony_ci * @tc.desc: Test function of Provision operator==() interface stability. 37854aa6d63Sopenharmony_ci * @tc.size: MEDIUM 37954aa6d63Sopenharmony_ci * @tc.type: FUNC 38054aa6d63Sopenharmony_ci * @tc.level Level 1 38154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 38254aa6d63Sopenharmony_ci */ 38354aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test021, testing::ext::TestSize.Level1) 38454aa6d63Sopenharmony_ci{ 38554aa6d63Sopenharmony_ci ProfileInfo info; 38654aa6d63Sopenharmony_ci ProfileInfo info2; 38754aa6d63Sopenharmony_ci info2.profileBlockLength = 0; 38854aa6d63Sopenharmony_ci info = info2; 38954aa6d63Sopenharmony_ci EXPECT_EQ(info.profileBlockLength, info2.profileBlockLength); 39054aa6d63Sopenharmony_ci} 39154aa6d63Sopenharmony_ci 39254aa6d63Sopenharmony_ci/** 39354aa6d63Sopenharmony_ci * @tc.name: provision_test023 39454aa6d63Sopenharmony_ci * @tc.desc: Test function of Provision operator==() interface stability. 39554aa6d63Sopenharmony_ci * @tc.size: MEDIUM 39654aa6d63Sopenharmony_ci * @tc.type: FUNC 39754aa6d63Sopenharmony_ci * @tc.level Level 1 39854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 39954aa6d63Sopenharmony_ci */ 40054aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test023, testing::ext::TestSize.Level1) 40154aa6d63Sopenharmony_ci{ 40254aa6d63Sopenharmony_ci ProfileInfo info; 40354aa6d63Sopenharmony_ci ProfileInfo info2; 40454aa6d63Sopenharmony_ci info2.profileBlockLength = 5; 40554aa6d63Sopenharmony_ci info2.profileBlock = NULL; 40654aa6d63Sopenharmony_ci info = info2; 40754aa6d63Sopenharmony_ci EXPECT_EQ(info.profileBlockLength, info2.profileBlockLength); 40854aa6d63Sopenharmony_ci} 40954aa6d63Sopenharmony_ci 41054aa6d63Sopenharmony_ci/** 41154aa6d63Sopenharmony_ci * @tc.name: provision_test025 41254aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::GenerateP7b() failed for invalid keyStorePassword. 41354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 41454aa6d63Sopenharmony_ci * @tc.type: FUNC 41554aa6d63Sopenharmony_ci * @tc.level Level 1 41654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 41754aa6d63Sopenharmony_ci */ 41854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test025, testing::ext::TestSize.Level1) 41954aa6d63Sopenharmony_ci{ 42054aa6d63Sopenharmony_ci Options options; 42154aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 42254aa6d63Sopenharmony_ci char invalidKeyPwd[] = "12345"; 42354aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 42454aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 42554aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE; 42654aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG; 42754aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 42854aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 42954aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 43054aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = invalidKeyPwd; 43154aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 43254aa6d63Sopenharmony_ci 43354aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 43454aa6d63Sopenharmony_ci std::string content = "json content"; 43554aa6d63Sopenharmony_ci std::string ret; 43654aa6d63Sopenharmony_ci int result = ProfileSignTool::GenerateP7b(adapter, content, ret); 43754aa6d63Sopenharmony_ci EXPECT_FALSE(result == 0); 43854aa6d63Sopenharmony_ci} 43954aa6d63Sopenharmony_ci 44054aa6d63Sopenharmony_ci/** 44154aa6d63Sopenharmony_ci * @tc.name: provision_test026 44254aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::GenerateP7b() failed for invalid sign algorithm. 44354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 44454aa6d63Sopenharmony_ci * @tc.type: FUNC 44554aa6d63Sopenharmony_ci * @tc.level Level 1 44654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 44754aa6d63Sopenharmony_ci */ 44854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test026, testing::ext::TestSize.Level1) 44954aa6d63Sopenharmony_ci{ 45054aa6d63Sopenharmony_ci Options options; 45154aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 45254aa6d63Sopenharmony_ci char keypwd[] = "123456"; 45354aa6d63Sopenharmony_ci std::string invalid_sigAlg = "SHA385withECDSA"; 45454aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 45554aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 45654aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE; 45754aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = invalid_sigAlg; 45854aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 45954aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 46054aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 46154aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 46254aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 46354aa6d63Sopenharmony_ci 46454aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 46554aa6d63Sopenharmony_ci std::string content = "json content"; 46654aa6d63Sopenharmony_ci std::string ret; 46754aa6d63Sopenharmony_ci int result = ProfileSignTool::GenerateP7b(adapter, content, ret); 46854aa6d63Sopenharmony_ci EXPECT_FALSE(result == 0); 46954aa6d63Sopenharmony_ci} 47054aa6d63Sopenharmony_ci 47154aa6d63Sopenharmony_ci/** 47254aa6d63Sopenharmony_ci * @tc.name: provision_test027 47354aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::GenerateP7b() interface for SUCCESS. 47454aa6d63Sopenharmony_ci * @tc.size: MEDIUM 47554aa6d63Sopenharmony_ci * @tc.type: FUNC 47654aa6d63Sopenharmony_ci * @tc.level Level 1 47754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 47854aa6d63Sopenharmony_ci */ 47954aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test027, testing::ext::TestSize.Level1) 48054aa6d63Sopenharmony_ci{ 48154aa6d63Sopenharmony_ci Options options; 48254aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 48354aa6d63Sopenharmony_ci char keypwd[] = "123456"; 48454aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 48554aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 48654aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE; 48754aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG; 48854aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 48954aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 49054aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 49154aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 49254aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 49354aa6d63Sopenharmony_ci 49454aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 49554aa6d63Sopenharmony_ci std::string content = "json content"; 49654aa6d63Sopenharmony_ci std::string ret; 49754aa6d63Sopenharmony_ci int result = ProfileSignTool::GenerateP7b(adapter, content, ret); 49854aa6d63Sopenharmony_ci EXPECT_TRUE(result == 0); 49954aa6d63Sopenharmony_ci} 50054aa6d63Sopenharmony_ci 50154aa6d63Sopenharmony_ci/** 50254aa6d63Sopenharmony_ci * @tc.name: provision_test028 50354aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::SignProfile() interface for SUCCESS. 50454aa6d63Sopenharmony_ci * @tc.size: MEDIUM 50554aa6d63Sopenharmony_ci * @tc.type: FUNC 50654aa6d63Sopenharmony_ci * @tc.level Level 1 50754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 50854aa6d63Sopenharmony_ci */ 50954aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test028, testing::ext::TestSize.Level1) 51054aa6d63Sopenharmony_ci{ 51154aa6d63Sopenharmony_ci Options options; 51254aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 51354aa6d63Sopenharmony_ci char keypwd[] = "123456"; 51454aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 51554aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 51654aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE; 51754aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG; 51854aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 51954aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 52054aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 52154aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 52254aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 52354aa6d63Sopenharmony_ci 52454aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 52554aa6d63Sopenharmony_ci SignerFactory factory; 52654aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = factory.GetSigner(adapter); 52754aa6d63Sopenharmony_ci std::string content = "json content"; 52854aa6d63Sopenharmony_ci std::string ret; 52954aa6d63Sopenharmony_ci int result = ProfileSignTool::SignProfile(content, signer, SIGN_PROFILE_SIGN_ALG, ret); 53054aa6d63Sopenharmony_ci EXPECT_TRUE(result == 0); 53154aa6d63Sopenharmony_ci} 53254aa6d63Sopenharmony_ci 53354aa6d63Sopenharmony_ci/** 53454aa6d63Sopenharmony_ci * @tc.name: provision_test029 53554aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::GenerateP7b() failed for invalid certchain. 53654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 53754aa6d63Sopenharmony_ci * @tc.type: FUNC 53854aa6d63Sopenharmony_ci * @tc.level Level 1 53954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 54054aa6d63Sopenharmony_ci */ 54154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test029, testing::ext::TestSize.Level1) 54254aa6d63Sopenharmony_ci{ 54354aa6d63Sopenharmony_ci Options options; 54454aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 54554aa6d63Sopenharmony_ci char keypwd[] = "123456"; 54654aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 54754aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 54854aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_CERT_PEM; 54954aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG; 55054aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 55154aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 55254aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 55354aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 55454aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 55554aa6d63Sopenharmony_ci 55654aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 55754aa6d63Sopenharmony_ci std::string content = "json content"; 55854aa6d63Sopenharmony_ci std::string ret; 55954aa6d63Sopenharmony_ci int result = ProfileSignTool::GenerateP7b(adapter, content, ret); 56054aa6d63Sopenharmony_ci EXPECT_FALSE(result == 0); 56154aa6d63Sopenharmony_ci} 56254aa6d63Sopenharmony_ci 56354aa6d63Sopenharmony_ci/** 56454aa6d63Sopenharmony_ci * @tc.name: provision_test030 56554aa6d63Sopenharmony_ci * @tc.desc: Test function of ProfileSignTool::GenerateP7b() failed for invalid certichain. 56654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 56754aa6d63Sopenharmony_ci * @tc.type: FUNC 56854aa6d63Sopenharmony_ci * @tc.level Level 1 56954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 57054aa6d63Sopenharmony_ci */ 57154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test030, testing::ext::TestSize.Level1) 57254aa6d63Sopenharmony_ci{ 57354aa6d63Sopenharmony_ci Options options; 57454aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 57554aa6d63Sopenharmony_ci char keypwd[] = "123456"; 57654aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS; 57754aa6d63Sopenharmony_ci options[Options::MODE] = SIGN_PROFILE_MODE; 57854aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_DOUBLE_CERT_PEM; 57954aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG; 58054aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE; 58154aa6d63Sopenharmony_ci options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE; 58254aa6d63Sopenharmony_ci options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE; 58354aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 58454aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 58554aa6d63Sopenharmony_ci 58654aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 58754aa6d63Sopenharmony_ci std::string content = "json content"; 58854aa6d63Sopenharmony_ci std::string ret; 58954aa6d63Sopenharmony_ci int result = ProfileSignTool::GenerateP7b(adapter, content, ret); 59054aa6d63Sopenharmony_ci EXPECT_FALSE(result == 0); 59154aa6d63Sopenharmony_ci} 59254aa6d63Sopenharmony_ci 59354aa6d63Sopenharmony_ci/** 59454aa6d63Sopenharmony_ci * @tc.name: provision_test031 59554aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner::GetCrls() interface get NULL crls. 59654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 59754aa6d63Sopenharmony_ci * @tc.type: FUNC 59854aa6d63Sopenharmony_ci * @tc.level Level 1 59954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 60054aa6d63Sopenharmony_ci */ 60154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test031, testing::ext::TestSize.Level1) 60254aa6d63Sopenharmony_ci{ 60354aa6d63Sopenharmony_ci Options options; 60454aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 60554aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 60654aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 60754aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 60854aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 60954aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 61054aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 61154aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 61254aa6d63Sopenharmony_ci char keypwd[] = "123456"; 61354aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 61454aa6d63Sopenharmony_ci options[Options::MODE] = mode; 61554aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 61654aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 61754aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 61854aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 61954aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 62054aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 62154aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 62254aa6d63Sopenharmony_ci 62354aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 62454aa6d63Sopenharmony_ci SignerFactory factory; 62554aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = factory.GetSigner(adapter); 62654aa6d63Sopenharmony_ci STACK_OF(X509_CRL)* crls = signer->GetCrls(); 62754aa6d63Sopenharmony_ci EXPECT_TRUE(crls == NULL); 62854aa6d63Sopenharmony_ci} 62954aa6d63Sopenharmony_ci 63054aa6d63Sopenharmony_ci/** 63154aa6d63Sopenharmony_ci * @tc.name: provision_test032 63254aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner() constructor. 63354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 63454aa6d63Sopenharmony_ci * @tc.type: FUNC 63554aa6d63Sopenharmony_ci * @tc.level Level 1 63654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 63754aa6d63Sopenharmony_ci */ 63854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test032, testing::ext::TestSize.Level1) 63954aa6d63Sopenharmony_ci{ 64054aa6d63Sopenharmony_ci Options options; 64154aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 64254aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 64354aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 64454aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 64554aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 64654aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 64754aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 64854aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 64954aa6d63Sopenharmony_ci char keypwd[] = "123456"; 65054aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 65154aa6d63Sopenharmony_ci options[Options::MODE] = mode; 65254aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 65354aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 65454aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 65554aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 65654aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 65754aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 65854aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 65954aa6d63Sopenharmony_ci 66054aa6d63Sopenharmony_ci EVP_PKEY* pkey = NULL; 66154aa6d63Sopenharmony_ci STACK_OF(X509)* certs = NULL; 66254aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = NULL; 66354aa6d63Sopenharmony_ci signer = std::make_shared<LocalSigner>(pkey, certs); 66454aa6d63Sopenharmony_ci EXPECT_NE(signer, nullptr); 66554aa6d63Sopenharmony_ci} 66654aa6d63Sopenharmony_ci 66754aa6d63Sopenharmony_ci/** 66854aa6d63Sopenharmony_ci * @tc.name: provision_test033 66954aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner() interface constructor. 67054aa6d63Sopenharmony_ci * @tc.size: MEDIUM 67154aa6d63Sopenharmony_ci * @tc.type: FUNC 67254aa6d63Sopenharmony_ci * @tc.level Level 1 67354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 67454aa6d63Sopenharmony_ci */ 67554aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test033, testing::ext::TestSize.Level1) 67654aa6d63Sopenharmony_ci{ 67754aa6d63Sopenharmony_ci Options options; 67854aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 67954aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 68054aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 68154aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 68254aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 68354aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 68454aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 68554aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 68654aa6d63Sopenharmony_ci char keypwd[] = "123456"; 68754aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 68854aa6d63Sopenharmony_ci options[Options::MODE] = mode; 68954aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 69054aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 69154aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 69254aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 69354aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 69454aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 69554aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 69654aa6d63Sopenharmony_ci 69754aa6d63Sopenharmony_ci EVP_PKEY* pkey = NULL; 69854aa6d63Sopenharmony_ci STACK_OF(X509)* certs = NULL; 69954aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 70054aa6d63Sopenharmony_ci pkey = adapter.GetAliasKey(false); 70154aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = std::make_shared<LocalSigner>(pkey, certs); 70254aa6d63Sopenharmony_ci EXPECT_NE(signer, nullptr); 70354aa6d63Sopenharmony_ci} 70454aa6d63Sopenharmony_ci 70554aa6d63Sopenharmony_ci/** 70654aa6d63Sopenharmony_ci * @tc.name: provision_test034 70754aa6d63Sopenharmony_ci * @tc.desc: Test function of LocalSigner() interface constructor. 70854aa6d63Sopenharmony_ci * @tc.size: MEDIUM 70954aa6d63Sopenharmony_ci * @tc.type: FUNC 71054aa6d63Sopenharmony_ci * @tc.level Level 1 71154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 71254aa6d63Sopenharmony_ci */ 71354aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test034, testing::ext::TestSize.Level1) 71454aa6d63Sopenharmony_ci{ 71554aa6d63Sopenharmony_ci Options options; 71654aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 71754aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 71854aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 71954aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 72054aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 72154aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 72254aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 72354aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 72454aa6d63Sopenharmony_ci char keypwd[] = "123456"; 72554aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 72654aa6d63Sopenharmony_ci options[Options::MODE] = mode; 72754aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 72854aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 72954aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 73054aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 73154aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 73254aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 73354aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 73454aa6d63Sopenharmony_ci 73554aa6d63Sopenharmony_ci EVP_PKEY* pkey = NULL; 73654aa6d63Sopenharmony_ci STACK_OF(X509)* certs = sk_X509_new(NULL); 73754aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 73854aa6d63Sopenharmony_ci pkey = adapter.GetAliasKey(false); 73954aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = std::make_shared<LocalSigner>(pkey, certs); 74054aa6d63Sopenharmony_ci EXPECT_NE(signer, nullptr); 74154aa6d63Sopenharmony_ci} 74254aa6d63Sopenharmony_ci 74354aa6d63Sopenharmony_ci/** 74454aa6d63Sopenharmony_ci * @tc.name: provision_test035 74554aa6d63Sopenharmony_ci * @tc.desc: Test function of GetSignature::GetSignature() interface for SUCCESS. 74654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 74754aa6d63Sopenharmony_ci * @tc.type: FUNC 74854aa6d63Sopenharmony_ci * @tc.level Level 1 74954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 75054aa6d63Sopenharmony_ci */ 75154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test035, testing::ext::TestSize.Level1) 75254aa6d63Sopenharmony_ci{ 75354aa6d63Sopenharmony_ci Options options; 75454aa6d63Sopenharmony_ci std::string mode = SIGN_PROFILE_MODE; 75554aa6d63Sopenharmony_ci std::string keyAlias = SIGN_PROFILE_KEY_ALIAS; 75654aa6d63Sopenharmony_ci std::string profileCertFile = SIGN_PROFILE_PROFILE_CERT_FILE; 75754aa6d63Sopenharmony_ci std::string signAlg = SIGN_PROFILE_SIGN_ALG; 75854aa6d63Sopenharmony_ci std::string keystoreFile = SIGN_PROFILE_KEY_STORE_FILE; 75954aa6d63Sopenharmony_ci std::string outFile = SIGN_PROFILE_OUT_FILE; 76054aa6d63Sopenharmony_ci std::string inFile = SIGN_PROFILE_IN_FILE; 76154aa6d63Sopenharmony_ci char keyStorePwd[] = "123456"; 76254aa6d63Sopenharmony_ci char keypwd[] = "123456"; 76354aa6d63Sopenharmony_ci options[Options::KEY_ALIAS] = keyAlias; 76454aa6d63Sopenharmony_ci options[Options::MODE] = mode; 76554aa6d63Sopenharmony_ci options[Options::PROFILE_CERT_FILE] = profileCertFile; 76654aa6d63Sopenharmony_ci options[Options::SIGN_ALG] = signAlg; 76754aa6d63Sopenharmony_ci options[Options::KEY_STORE_FILE] = keystoreFile; 76854aa6d63Sopenharmony_ci options[Options::OUT_FILE] = outFile; 76954aa6d63Sopenharmony_ci options[Options::IN_FILE] = inFile; 77054aa6d63Sopenharmony_ci options[Options::KEY_RIGHTS] = keypwd; 77154aa6d63Sopenharmony_ci options[Options::KEY_STORE_RIGHTS] = keyStorePwd; 77254aa6d63Sopenharmony_ci 77354aa6d63Sopenharmony_ci EVP_PKEY* pkey = NULL; 77454aa6d63Sopenharmony_ci LocalizationAdapter adapter(&options); 77554aa6d63Sopenharmony_ci SignerFactory factory; 77654aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer = factory.GetSigner(adapter); 77754aa6d63Sopenharmony_ci STACK_OF(X509)* certs = signer->GetCertificates(); 77854aa6d63Sopenharmony_ci STACK_OF(X509)* certsDup = sk_X509_new(NULL); 77954aa6d63Sopenharmony_ci X509* cert = sk_X509_value(certs, 0); 78054aa6d63Sopenharmony_ci X509_up_ref(cert); 78154aa6d63Sopenharmony_ci sk_X509_push(certsDup, cert); 78254aa6d63Sopenharmony_ci std::shared_ptr<Signer> signer2 = std::make_shared<LocalSigner>(pkey, certsDup); 78354aa6d63Sopenharmony_ci std::string signature = signer2->GetSignature("content", "SHA384withECDSA"); 78454aa6d63Sopenharmony_ci EXPECT_NE(signer, nullptr); 78554aa6d63Sopenharmony_ci} 78654aa6d63Sopenharmony_ci 78754aa6d63Sopenharmony_ci/** 78854aa6d63Sopenharmony_ci * @tc.name: provision_test036 78954aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 79054aa6d63Sopenharmony_ci * @tc.size: MEDIUM 79154aa6d63Sopenharmony_ci * @tc.type: FUNC 79254aa6d63Sopenharmony_ci * @tc.level Level 1 79354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 79454aa6d63Sopenharmony_ci */ 79554aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test036, testing::ext::TestSize.Level1) 79654aa6d63Sopenharmony_ci{ 79754aa6d63Sopenharmony_ci ProfileInfo info; 79854aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"app-distribution-type" 79954aa6d63Sopenharmony_ci "\": \"app_gallery\",\"bundle-info\":{\"app-feature\":\"hos_system_app\",\"bundle-name\":\"co" 80054aa6d63Sopenharmony_ci "m.example.nativetemplatedemo\",\"developer-id\":\"OpenHarmony\",\"development-certifica" 80154aa6d63Sopenharmony_ci "te\":\"-----BEGIN CERTIFICATE-----\\n" 80254aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 80354aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 80454aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 80554aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 80654aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 80754aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 80854aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 80954aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 81054aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 81154aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 81254aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 81354aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 81454aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 81554aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 81654aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD530" 81754aa6d63Sopenharmony_ci "296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F958732865" 81854aa6d63Sopenharmony_ci "\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":\"re" 81954aa6d63Sopenharmony_ci "lease\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"n" 82054aa6d63Sopenharmony_ci "ot-before\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 82154aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 82254aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 82354aa6d63Sopenharmony_ci} 82454aa6d63Sopenharmony_ci 82554aa6d63Sopenharmony_ci/** 82654aa6d63Sopenharmony_ci * @tc.name: provision_test037 82754aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 82854aa6d63Sopenharmony_ci * @tc.size: MEDIUM 82954aa6d63Sopenharmony_ci * @tc.type: FUNC 83054aa6d63Sopenharmony_ci * @tc.level Level 1 83154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 83254aa6d63Sopenharmony_ci */ 83354aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test037, testing::ext::TestSize.Level1) 83454aa6d63Sopenharmony_ci{ 83554aa6d63Sopenharmony_ci ProfileInfo info; 83654aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"app-featur" 83754aa6d63Sopenharmony_ci "e\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer-id\":\"Ope" 83854aa6d63Sopenharmony_ci "nHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 83954aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 84054aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 84154aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 84254aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 84354aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 84454aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 84554aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 84654aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 84754aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 84854aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 84954aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 85054aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 85154aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 85254aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 85354aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44A" 85454aa6d63Sopenharmony_ci "BCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73" 85554aa6d63Sopenharmony_ci "F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]" 85654aa6d63Sopenharmony_ci "},\"type\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-a" 85754aa6d63Sopenharmony_ci "fter\":1705127532,\"not-before\":1610519532},\"version-code\":0,\"version-name\":\"1.0.0\"}"; 85854aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 85954aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 86054aa6d63Sopenharmony_ci} 86154aa6d63Sopenharmony_ci 86254aa6d63Sopenharmony_ci/** 86354aa6d63Sopenharmony_ci * @tc.name: provision_test038 86454aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 86554aa6d63Sopenharmony_ci * @tc.size: MEDIUM 86654aa6d63Sopenharmony_ci * @tc.type: FUNC 86754aa6d63Sopenharmony_ci * @tc.level Level 1 86854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 86954aa6d63Sopenharmony_ci */ 87054aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test038, testing::ext::TestSize.Level1) 87154aa6d63Sopenharmony_ci{ 87254aa6d63Sopenharmony_ci ProfileInfo info; 87354aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"app-fea" 87454aa6d63Sopenharmony_ci "ture\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer-id\":\"" 87554aa6d63Sopenharmony_ci "OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 87654aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 87754aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 87854aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 87954aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 88054aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 88154aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 88254aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 88354aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 88454aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 88554aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 88654aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 88754aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 88854aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 88954aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 89054aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0C" 89154aa6d63Sopenharmony_ci "B44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718" 89254aa6d63Sopenharmony_ci "C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-permission" 89354aa6d63Sopenharmony_ci "s\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"valid" 89454aa6d63Sopenharmony_ci "ity\":{\"not-after\":1705127532,\"not-before\":1610519532},\"version-code_no\":0,\"ver" 89554aa6d63Sopenharmony_ci "sion-name\":\"1.0.0\"}"; 89654aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 89754aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 89854aa6d63Sopenharmony_ci} 89954aa6d63Sopenharmony_ci 90054aa6d63Sopenharmony_ci/** 90154aa6d63Sopenharmony_ci * @tc.name: provision_test039 90254aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 90354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 90454aa6d63Sopenharmony_ci * @tc.type: FUNC 90554aa6d63Sopenharmony_ci * @tc.level Level 1 90654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 90754aa6d63Sopenharmony_ci */ 90854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test039, testing::ext::TestSize.Level1) 90954aa6d63Sopenharmony_ci{ 91054aa6d63Sopenharmony_ci ProfileInfo info; 91154aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"app-f" 91254aa6d63Sopenharmony_ci "eature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"developer-" 91354aa6d63Sopenharmony_ci "id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 91454aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 91554aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 91654aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 91754aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 91854aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 91954aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 92054aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 92154aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 92254aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 92354aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 92454aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 92554aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 92654aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 92754aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 92854aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69" 92954aa6d63Sopenharmony_ci "C7505BE341BDA5948C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7E" 93054aa6d63Sopenharmony_ci "ED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F958732865\"]},\"is" 93154aa6d63Sopenharmony_ci "suer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"t" 93254aa6d63Sopenharmony_ci "ype\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"no" 93354aa6d63Sopenharmony_ci "t-after\":1705127532,\"not-before\":1610519532},\"version-code\":\"0\",\"version-name\":\"1.0.0\"}"; 93454aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 93554aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 93654aa6d63Sopenharmony_ci} 93754aa6d63Sopenharmony_ci 93854aa6d63Sopenharmony_ci/** 93954aa6d63Sopenharmony_ci * @tc.name: provision_test040 94054aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 94154aa6d63Sopenharmony_ci * @tc.size: MEDIUM 94254aa6d63Sopenharmony_ci * @tc.type: FUNC 94354aa6d63Sopenharmony_ci * @tc.level Level 1 94454aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 94554aa6d63Sopenharmony_ci */ 94654aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test040, testing::ext::TestSize.Level1) 94754aa6d63Sopenharmony_ci{ 94854aa6d63Sopenharmony_ci ProfileInfo info; 94954aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"app-privilege-cap" 95054aa6d63Sopenharmony_ci "abilities\": [99,\"88\"],\"bundle-info\":{\"app-feature\":\"hos_system_app\",\"bundle-" 95154aa6d63Sopenharmony_ci "name\":\"com.example.nativetemplatedemo\",\"developer-id\":\"OpenHarmony\",\"develop" 95254aa6d63Sopenharmony_ci "ment-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 95354aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 95454aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 95554aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 95654aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 95754aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 95854aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 95954aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 96054aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 96154aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 96254aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 96354aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 96454aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 96554aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 96654aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 96754aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341B" 96854aa6d63Sopenharmony_ci "DA5948C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2F" 96954aa6d63Sopenharmony_ci "AA019458B856AB10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"perm" 97054aa6d63Sopenharmony_ci "issions\":{\"restricted-permissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe6" 97154aa6d63Sopenharmony_ci "86e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-bef" 97254aa6d63Sopenharmony_ci "ore\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 97354aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 97454aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 97554aa6d63Sopenharmony_ci} 97654aa6d63Sopenharmony_ci 97754aa6d63Sopenharmony_ci/** 97854aa6d63Sopenharmony_ci * @tc.name: provision_test041 97954aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 98054aa6d63Sopenharmony_ci * @tc.size: MEDIUM 98154aa6d63Sopenharmony_ci * @tc.type: FUNC 98254aa6d63Sopenharmony_ci * @tc.level Level 1 98354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 98454aa6d63Sopenharmony_ci */ 98554aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test041, testing::ext::TestSize.Level1) 98654aa6d63Sopenharmony_ci{ 98754aa6d63Sopenharmony_ci ProfileInfo info; 98854aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-in" 98954aa6d63Sopenharmony_ci "fo\":{\"app-feature\":\"hos_system_app\",\"bundle-name\":\"\",\"developer-id\":\"Op" 99054aa6d63Sopenharmony_ci "enHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 99154aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 99254aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 99354aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 99454aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 99554aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 99654aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 99754aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 99854aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 99954aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 100054aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 100154aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 100254aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 100354aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 100454aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 100554aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA" 100654aa6d63Sopenharmony_ci "5948C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA0194" 100754aa6d63Sopenharmony_ci "58B856AB10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions" 100854aa6d63Sopenharmony_ci "\":{\"restricted-permissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe686e1b-37" 100954aa6d63Sopenharmony_ci "70-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610" 101054aa6d63Sopenharmony_ci "519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 101154aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 101254aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 101354aa6d63Sopenharmony_ci} 101454aa6d63Sopenharmony_ci 101554aa6d63Sopenharmony_ci/** 101654aa6d63Sopenharmony_ci * @tc.name: provision_test042 101754aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 101854aa6d63Sopenharmony_ci * @tc.size: MEDIUM 101954aa6d63Sopenharmony_ci * @tc.type: FUNC 102054aa6d63Sopenharmony_ci * @tc.level Level 1 102154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 102254aa6d63Sopenharmony_ci */ 102354aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test042, testing::ext::TestSize.Level1) 102454aa6d63Sopenharmony_ci{ 102554aa6d63Sopenharmony_ci ProfileInfo info; 102654aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"ap" 102754aa6d63Sopenharmony_ci "p-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"devel" 102854aa6d63Sopenharmony_ci "oper-id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 102954aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 103054aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 103154aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 103254aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 103354aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 103454aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 103554aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 103654aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 103754aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 103854aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 103954aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 104054aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 104154aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 104254aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 104354aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C" 104454aa6d63Sopenharmony_ci "0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493" 104554aa6d63Sopenharmony_ci "A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restricted-pe" 104654aa6d63Sopenharmony_ci "rmissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c9" 104754aa6d63Sopenharmony_ci "8\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610519532},\"version-code\":" 104854aa6d63Sopenharmony_ci "1,\"version-name\":\"\"}"; 104954aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 105054aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 105154aa6d63Sopenharmony_ci} 105254aa6d63Sopenharmony_ci 105354aa6d63Sopenharmony_ci/** 105454aa6d63Sopenharmony_ci * @tc.name: provision_test043 105554aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 105654aa6d63Sopenharmony_ci * @tc.size: MEDIUM 105754aa6d63Sopenharmony_ci * @tc.type: FUNC 105854aa6d63Sopenharmony_ci * @tc.level Level 1 105954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 106054aa6d63Sopenharmony_ci */ 106154aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test043, testing::ext::TestSize.Level1) 106254aa6d63Sopenharmony_ci{ 106354aa6d63Sopenharmony_ci ProfileInfo info; 106454aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"a" 106554aa6d63Sopenharmony_ci "pp-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"d" 106654aa6d63Sopenharmony_ci "eveloper-id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 106754aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 106854aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 106954aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 107054aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 107154aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 107254aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 107354aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 107454aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 107554aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 107654aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 107754aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 107854aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 107954aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 108054aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 108154aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA59" 108254aa6d63Sopenharmony_ci "48C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B" 108354aa6d63Sopenharmony_ci "856AB10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"r" 108454aa6d63Sopenharmony_ci "estricted-permissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"\",\"validity\":{\"no" 108554aa6d63Sopenharmony_ci "t-after\":1705127532,\"not-before\":1610519532},\"version-code\":1,\"version-name\":\"\"}"; 108654aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 108754aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 108854aa6d63Sopenharmony_ci} 108954aa6d63Sopenharmony_ci 109054aa6d63Sopenharmony_ci/** 109154aa6d63Sopenharmony_ci * @tc.name: provision_test044 109254aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for distribution-certificate is empty. 109354aa6d63Sopenharmony_ci * @tc.size: MEDIUM 109454aa6d63Sopenharmony_ci * @tc.type: FUNC 109554aa6d63Sopenharmony_ci * @tc.level Level 1 109654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 109754aa6d63Sopenharmony_ci */ 109854aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test044, testing::ext::TestSize.Level1) 109954aa6d63Sopenharmony_ci{ 110054aa6d63Sopenharmony_ci ProfileInfo info; 110154aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"app" 110254aa6d63Sopenharmony_ci "-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"develo" 110354aa6d63Sopenharmony_ci "per-id\":\"\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 110454aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 110554aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 110654aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 110754aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 110854aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 110954aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 111054aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 111154aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 111254aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 111354aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 111454aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 111554aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 111654aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 111754aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 111854aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5" 111954aa6d63Sopenharmony_ci "948C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B" 112054aa6d63Sopenharmony_ci "856AB10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"re" 112154aa6d63Sopenharmony_ci "stricted-permissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938" 112254aa6d63Sopenharmony_ci "-961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610519532},\"ver" 112354aa6d63Sopenharmony_ci "sion-code\":1,\"version-name\":\"1.0.0\"}"; 112454aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 112554aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 112654aa6d63Sopenharmony_ci} 112754aa6d63Sopenharmony_ci 112854aa6d63Sopenharmony_ci/** 112954aa6d63Sopenharmony_ci * @tc.name: provision_test045 113054aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() failed for development-certificate is empty.. 113154aa6d63Sopenharmony_ci * @tc.size: MEDIUM 113254aa6d63Sopenharmony_ci * @tc.type: FUNC 113354aa6d63Sopenharmony_ci * @tc.level Level 1 113454aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 113554aa6d63Sopenharmony_ci */ 113654aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test045, testing::ext::TestSize.Level1) 113754aa6d63Sopenharmony_ci{ 113854aa6d63Sopenharmony_ci ProfileInfo info; 113954aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"a" 114054aa6d63Sopenharmony_ci "pp-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"dev" 114154aa6d63Sopenharmony_ci "eloper-id\":\"OpenHarmony\",\"development-certificate\":\"\"},\"debug-info\":{\"device-i" 114254aa6d63Sopenharmony_ci "d-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA5948C3C0CB44ABCD530296054159EFE0BD16" 114354aa6d63Sopenharmony_ci "A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856AB10493A6718C7679A73F958732865\"]},\"i" 114454aa6d63Sopenharmony_ci "ssuer\":\"pki_internal\",\"permissions\":{\"restricted-permissions\":[\"\"]},\"type\":\"de" 114554aa6d63Sopenharmony_ci "bug\",\"uuid\":\"fe686e1b-3770-4824-a938-961b140a7c98\",\"validity\":{\"not-after\":17051275" 114654aa6d63Sopenharmony_ci "32,\"not-before\":1610519532},\"version-code\":1,\"version-name\":\"1.0.0\"}"; 114754aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 114854aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 114954aa6d63Sopenharmony_ci} 115054aa6d63Sopenharmony_ci 115154aa6d63Sopenharmony_ci/** 115254aa6d63Sopenharmony_ci * @tc.name: provision_test046 115354aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() distribution-certificate is empty.. 115454aa6d63Sopenharmony_ci * @tc.size: MEDIUM 115554aa6d63Sopenharmony_ci * @tc.type: FUNC 115654aa6d63Sopenharmony_ci * @tc.level Level 1 115754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 115854aa6d63Sopenharmony_ci */ 115954aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test046, testing::ext::TestSize.Level1) 116054aa6d63Sopenharmony_ci{ 116154aa6d63Sopenharmony_ci ProfileInfo info; 116254aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-in" 116354aa6d63Sopenharmony_ci "fo\":{\"app-feature\":\"\",\"bundle-name\":\"com.example.nativetemplatedemo\",\"de" 116454aa6d63Sopenharmony_ci "veloper-id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 116554aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 116654aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 116754aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 116854aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 116954aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 117054aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 117154aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 117254aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 117354aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 117454aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 117554aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 117654aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 117754aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 117854aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 117954aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA59" 118054aa6d63Sopenharmony_ci "48C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B8" 118154aa6d63Sopenharmony_ci "56AB10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"re" 118254aa6d63Sopenharmony_ci "stricted-permissions\":[\"\"]},\"type\":\"release\",\"uuid\":\"fe686e1b-3770-4824-a938-" 118354aa6d63Sopenharmony_ci "961b140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610519532},\"ver" 118454aa6d63Sopenharmony_ci "sion-code\":1,\"version-name\":\"1.0.0\"}"; 118554aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 118654aa6d63Sopenharmony_ci EXPECT_FALSE(result == PROVISION_OK); 118754aa6d63Sopenharmony_ci} 118854aa6d63Sopenharmony_ci 118954aa6d63Sopenharmony_ci/** 119054aa6d63Sopenharmony_ci * @tc.name: provision_test047 119154aa6d63Sopenharmony_ci * @tc.desc: Test function of ParseProvision() interface for SUCCESS. 119254aa6d63Sopenharmony_ci * @tc.size: MEDIUM 119354aa6d63Sopenharmony_ci * @tc.type: FUNC 119454aa6d63Sopenharmony_ci * @tc.level Level 1 119554aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 119654aa6d63Sopenharmony_ci */ 119754aa6d63Sopenharmony_ciHWTEST_F(ProvisionTest, provision_test047, testing::ext::TestSize.Level1) 119854aa6d63Sopenharmony_ci{ 119954aa6d63Sopenharmony_ci ProfileInfo info; 120054aa6d63Sopenharmony_ci std::string provision = "{\"app-distribution-type\": \"app_gallery\",\"bundle-info\":{\"a" 120154aa6d63Sopenharmony_ci "pl\":\"apl_\",\"app-feature\":\"hos_system_app\",\"bundle-name\":\"com.example.nativetemp" 120254aa6d63Sopenharmony_ci "latedemo\",\"developer-id\":\"OpenHarmony\",\"development-certificate\":\"-----BEGIN CERTIFICATE-----\\n" 120354aa6d63Sopenharmony_ci "MIICXjCCAeOgAwIBAgIBATAKBggqhkjOPQQDAzBuMQswCQYDVQQGEwJDTjEUMBIG\\n" 120454aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 120554aa6d63Sopenharmony_ci "eTEpMCcGA1UEAwwgQXBwbGljYXRpb24gU2lnbmF0dXJlIFNlcnZpY2UgQ0EwHhcN\\n" 120654aa6d63Sopenharmony_ci "MjQwNDE1MDUzOTUyWhcNMjUwNDE1MDUzOTUyWjBaMQswCQYDVQQGEwJDTjEUMBIG\\n" 120754aa6d63Sopenharmony_ci "A1UECgwLT3Blbkhhcm1vbnkxHjAcBgNVBAsMFU9wZW5IYXJtb255IENvbW11bml0\\n" 120854aa6d63Sopenharmony_ci "eTEVMBMGA1UEAwwMQXBwMSBSZWxlYXNlMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE\\n" 120954aa6d63Sopenharmony_ci "odSztdiucyVAo7VQnzHzBJsS9vQYa1vU1cP92F6fiJLazWtvEljNP1XoJldSZaN9\\n" 121054aa6d63Sopenharmony_ci "UYGdAVHh2yrHzaJFEqHCSB3uQhlJgSbl9sT0lJ4hro1YvVx921/knMRlunz4eAGX\\n" 121154aa6d63Sopenharmony_ci "o2kwZzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIHgDATBgNVHSUEDDAKBggrBgEF\\n" 121254aa6d63Sopenharmony_ci "BQcDAzAbBgNVHQ4EFEpzK6IntvQxLaKGX6xZQSiISBx+MBgGDCsGAQQBj1sCgngB\\n" 121354aa6d63Sopenharmony_ci "AwQIMAYCAQEKAQAwCgYIKoZIzj0EAwMDaQAwZgIxAPboDdi9EhOiwAhO3N6vTRcK\\n" 121454aa6d63Sopenharmony_ci "QT1K1TQq2vjvpC2231Dq4tLPeSzLz6ROq+Zv6IgBYgIxAJ9sZZUBoR2lgPHBzt01\\n" 121554aa6d63Sopenharmony_ci "4uxt5nLfJj2XKa6Leb/JWDoosXjoVXoB47y699PtGetcFw==\\n" 121654aa6d63Sopenharmony_ci "-----END CERTIFICATE-----\\n" 121754aa6d63Sopenharmony_ci "\"},\"debug-info\":{\"device-id-type\":\"udid\",\"device-ids\":[\"69C7505BE341BDA594" 121854aa6d63Sopenharmony_ci "8C3C0CB44ABCD530296054159EFE0BD16A16CD0129CC42\",\"7EED06506FCE6325EB2E2FAA019458B856A" 121954aa6d63Sopenharmony_ci "B10493A6718C7679A73F958732865\"]},\"issuer\":\"pki_internal\",\"permissions\":{\"restr" 122054aa6d63Sopenharmony_ci "icted-permissions\":[\"\"]},\"type\":\"debug\",\"uuid\":\"fe686e1b-3770-4824-a938-961b" 122154aa6d63Sopenharmony_ci "140a7c98\",\"validity\":{\"not-after\":1705127532,\"not-before\":1610519532},\"versio" 122254aa6d63Sopenharmony_ci "n-code\":3,\"version-name\":\"1.0.0\"}"; 122354aa6d63Sopenharmony_ci AppProvisionVerifyResult result = ParseProvision(provision, info); 122454aa6d63Sopenharmony_ci EXPECT_TRUE(result == PROVISION_OK); 122554aa6d63Sopenharmony_ci} 122654aa6d63Sopenharmony_ci 122754aa6d63Sopenharmony_ci} 122854aa6d63Sopenharmony_ci} 1229