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 <filesystem> 1654aa6d63Sopenharmony_ci#include "params_run_tool.h" 1754aa6d63Sopenharmony_ci#include "local_sign_provider.h" 1854aa6d63Sopenharmony_ci#include "sign_hap.h" 1954aa6d63Sopenharmony_ci#include "sign_provider.h" 2054aa6d63Sopenharmony_ci#include "sign_tool_service_impl.h" 2154aa6d63Sopenharmony_ci#include "remote_sign_provider.h" 2254aa6d63Sopenharmony_ci#include "digest_common.h" 2354aa6d63Sopenharmony_ci#include "hap_sign_test.h" 2454aa6d63Sopenharmony_ci#include <unistd.h> 2554aa6d63Sopenharmony_ci 2654aa6d63Sopenharmony_cinamespace OHOS { 2754aa6d63Sopenharmony_cinamespace SignatureTools { 2854aa6d63Sopenharmony_ci 2954aa6d63Sopenharmony_civoid GenUnvaildUnSignHap(const std::string& path) 3054aa6d63Sopenharmony_ci{ 3154aa6d63Sopenharmony_ci std::ofstream outfile(path); 3254aa6d63Sopenharmony_ci if (!outfile) { 3354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGE("Unable to open file: %s", path.c_str()); 3454aa6d63Sopenharmony_ci return; 3554aa6d63Sopenharmony_ci } 3654aa6d63Sopenharmony_ci outfile << "Hello, this is a Unvaild un sign Hap.\n"; 3754aa6d63Sopenharmony_ci outfile.flush(); 3854aa6d63Sopenharmony_ci outfile.close(); 3954aa6d63Sopenharmony_ci return; 4054aa6d63Sopenharmony_ci} 4154aa6d63Sopenharmony_ci 4254aa6d63Sopenharmony_civoid HapSignTest::SetUpTestCase(void) 4354aa6d63Sopenharmony_ci{ 4454aa6d63Sopenharmony_ci GenUnvaildUnSignHap("./hapSign/phone-default-unsigned"); 4554aa6d63Sopenharmony_ci GenUnvaildUnSignHap("./hapSign/nohap.hap"); 4654aa6d63Sopenharmony_ci 4754aa6d63Sopenharmony_ci (void)rename("./hapSign/phone-default-unsigned-test.txt", "./hapSign/phone-default-unsigned-test.hap"); 4854aa6d63Sopenharmony_ci (void)rename("./hapSign/phone-default-unsigned.txt", "./hapSign/phone-default-unsigned.hap"); 4954aa6d63Sopenharmony_ci (void)rename("./hapSign/unsigned_with_cd_and_eocd.txt", "./hapSign/unsigned_with_cd_and_eocd.hap"); 5054aa6d63Sopenharmony_ci (void)rename("./hapSign/unsigned_with_eocd.txt", "./hapSign/unsigned_with_eocd.hap"); 5154aa6d63Sopenharmony_ci sync(); 5254aa6d63Sopenharmony_ci} 5354aa6d63Sopenharmony_ci 5454aa6d63Sopenharmony_civoid HapSignTest::TearDownTestCase(void) 5554aa6d63Sopenharmony_ci{ 5654aa6d63Sopenharmony_ci} 5754aa6d63Sopenharmony_ci/* 5854aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_001 5954aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SignHap 6054aa6d63Sopenharmony_ci * @tc.type: FUNC 6154aa6d63Sopenharmony_ci * @tc.require: 6254aa6d63Sopenharmony_ci */ 6354aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_001, testing::ext::TestSize.Level1) 6454aa6d63Sopenharmony_ci{ 6554aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 6654aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 6754aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 6854aa6d63Sopenharmony_ci 6954aa6d63Sopenharmony_ci std::string mode = "localSign"; 7054aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 7154aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 7254aa6d63Sopenharmony_ci std::string signCode = "0"; 7354aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 7454aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 7554aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 7654aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 7754aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 7854aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 7954aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 8054aa6d63Sopenharmony_ci 8154aa6d63Sopenharmony_ci (*params)["mode"] = mode; 8254aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 8354aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 8454aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 8554aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 8654aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 8754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 8854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 8954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 9054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 9154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 9254aa6d63Sopenharmony_ci 9354aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 9454aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 9554aa6d63Sopenharmony_ci} 9654aa6d63Sopenharmony_ci/* 9754aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_002 9854aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SignHap 9954aa6d63Sopenharmony_ci * @tc.type: FUNC 10054aa6d63Sopenharmony_ci * @tc.require: 10154aa6d63Sopenharmony_ci */ 10254aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_002, testing::ext::TestSize.Level1) 10354aa6d63Sopenharmony_ci{ 10454aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 10554aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 10654aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 10754aa6d63Sopenharmony_ci 10854aa6d63Sopenharmony_ci std::string mode = "localSign"; 10954aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 11054aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 11154aa6d63Sopenharmony_ci std::string signCode = "1"; 11254aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 11354aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 11454aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 11554aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 11654aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 11754aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 11854aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 11954aa6d63Sopenharmony_ci 12054aa6d63Sopenharmony_ci (*params)["mode"] = mode; 12154aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 12254aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 12354aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 12454aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 12554aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 12654aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 12754aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 12854aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 12954aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 13054aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 13154aa6d63Sopenharmony_ci 13254aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 13354aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 13454aa6d63Sopenharmony_ci} 13554aa6d63Sopenharmony_ci/* 13654aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_003 13754aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SignHap 13854aa6d63Sopenharmony_ci * @tc.type: FUNC 13954aa6d63Sopenharmony_ci * @tc.require: 14054aa6d63Sopenharmony_ci */ 14154aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_003, testing::ext::TestSize.Level1) 14254aa6d63Sopenharmony_ci{ 14354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 14454aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 14554aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 14654aa6d63Sopenharmony_ci 14754aa6d63Sopenharmony_ci std::string mode = "localSign"; 14854aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 14954aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 15054aa6d63Sopenharmony_ci std::string signCode = "1"; 15154aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 15254aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 15354aa6d63Sopenharmony_ci std::string profileSigned = "0"; 15454aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 15554aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 15654aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 15754aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 15854aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 15954aa6d63Sopenharmony_ci 16054aa6d63Sopenharmony_ci (*params)["mode"] = mode; 16154aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 16254aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 16354aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 16454aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 16554aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 16654aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 16754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 16854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 16954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 17054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 17154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 17254aa6d63Sopenharmony_ci 17354aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 17454aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 17554aa6d63Sopenharmony_ci} 17654aa6d63Sopenharmony_ci/* 17754aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_004 17854aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SignHap 17954aa6d63Sopenharmony_ci * @tc.type: FUNC 18054aa6d63Sopenharmony_ci * @tc.require: 18154aa6d63Sopenharmony_ci */ 18254aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_004, testing::ext::TestSize.Level1) 18354aa6d63Sopenharmony_ci{ 18454aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 18554aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 18654aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 18754aa6d63Sopenharmony_ci 18854aa6d63Sopenharmony_ci std::string mode = "localSign"; 18954aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 19054aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 19154aa6d63Sopenharmony_ci std::string signCode = "1"; 19254aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 19354aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 19454aa6d63Sopenharmony_ci std::string profileSigned = "1"; 19554aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 19654aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 19754aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 19854aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 19954aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 20054aa6d63Sopenharmony_ci 20154aa6d63Sopenharmony_ci (*params)["mode"] = mode; 20254aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 20354aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 20454aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 20554aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 20654aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 20754aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 20854aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 20954aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 21054aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 21154aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 21254aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 21354aa6d63Sopenharmony_ci 21454aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 21554aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 21654aa6d63Sopenharmony_ci} 21754aa6d63Sopenharmony_ci/* 21854aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_005 21954aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface Sign 22054aa6d63Sopenharmony_ci * @tc.type: FUNC 22154aa6d63Sopenharmony_ci * @tc.require: 22254aa6d63Sopenharmony_ci */ 22354aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_005, testing::ext::TestSize.Level1) 22454aa6d63Sopenharmony_ci{ 22554aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 22654aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 22754aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 22854aa6d63Sopenharmony_ci 22954aa6d63Sopenharmony_ci std::string mode = "localSign"; 23054aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 23154aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 23254aa6d63Sopenharmony_ci std::string signCode = "0"; 23354aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 23454aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 23554aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 23654aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 23754aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 23854aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 23954aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 24054aa6d63Sopenharmony_ci 24154aa6d63Sopenharmony_ci (*params)["mode"] = mode; 24254aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 24354aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 24454aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 24554aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 24654aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 24754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 24854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 24954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 25054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 25154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 25254aa6d63Sopenharmony_ci 25354aa6d63Sopenharmony_ci signProvider->CheckInputCertMatchWithProfile(nullptr, nullptr); 25454aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 25554aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 25654aa6d63Sopenharmony_ci 25754aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 25854aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 25954aa6d63Sopenharmony_ci 26054aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 26154aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 26254aa6d63Sopenharmony_ci} 26354aa6d63Sopenharmony_ci 26454aa6d63Sopenharmony_ci/* 26554aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_006 26654aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckParams due to parameter signCode is 3 26754aa6d63Sopenharmony_ci * @tc.type: FUNC 26854aa6d63Sopenharmony_ci * @tc.require: 26954aa6d63Sopenharmony_ci */ 27054aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_006, testing::ext::TestSize.Level1) 27154aa6d63Sopenharmony_ci{ 27254aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 27354aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 27454aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 27554aa6d63Sopenharmony_ci 27654aa6d63Sopenharmony_ci std::string mode = "localSign"; 27754aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 27854aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 27954aa6d63Sopenharmony_ci std::string signCode = "3"; 28054aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 28154aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 28254aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 28354aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 28454aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 28554aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 28654aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 28754aa6d63Sopenharmony_ci 28854aa6d63Sopenharmony_ci (*params)["mode"] = mode; 28954aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 29054aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 29154aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 29254aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 29354aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 29454aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 29554aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 29654aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 29754aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 29854aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 29954aa6d63Sopenharmony_ci 30054aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 30154aa6d63Sopenharmony_ci EXPECT_EQ(retParam, false); 30254aa6d63Sopenharmony_ci} 30354aa6d63Sopenharmony_ci 30454aa6d63Sopenharmony_ci/* 30554aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_007 30654aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckParams due to parameter signCode and appCertFile 30754aa6d63Sopenharmony_ci * @tc.type: FUNC 30854aa6d63Sopenharmony_ci * @tc.require: 30954aa6d63Sopenharmony_ci */ 31054aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_007, testing::ext::TestSize.Level1) 31154aa6d63Sopenharmony_ci{ 31254aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 31354aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 31454aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 31554aa6d63Sopenharmony_ci 31654aa6d63Sopenharmony_ci std::string mode = "localSign"; 31754aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 31854aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 31954aa6d63Sopenharmony_ci std::string signCode = "0"; 32054aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 32154aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 32254aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 32354aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 32454aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 32554aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 32654aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 32754aa6d63Sopenharmony_ci 32854aa6d63Sopenharmony_ci (*params)["mode"] = mode; 32954aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 33054aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 33154aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 33254aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 33354aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 33454aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 33554aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 33654aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 33754aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 33854aa6d63Sopenharmony_ci 33954aa6d63Sopenharmony_ci (*params)["signCode"] = std::string("3"); 34054aa6d63Sopenharmony_ci bool retParamT = signProvider->CheckParams(params.get()); 34154aa6d63Sopenharmony_ci EXPECT_EQ(retParamT, false); 34254aa6d63Sopenharmony_ci 34354aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 34454aa6d63Sopenharmony_ci (*params)["appCertFile"] = std::string(""); 34554aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 34654aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 34754aa6d63Sopenharmony_ci} 34854aa6d63Sopenharmony_ci 34954aa6d63Sopenharmony_ci/* 35054aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_008 35154aa6d63Sopenharmony_ci * @tc.desc: This function tests sucess for interface Sign 35254aa6d63Sopenharmony_ci * @tc.type: FUNC 35354aa6d63Sopenharmony_ci * @tc.require: 35454aa6d63Sopenharmony_ci */ 35554aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_008, testing::ext::TestSize.Level1) 35654aa6d63Sopenharmony_ci{ 35754aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 35854aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 35954aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 36054aa6d63Sopenharmony_ci 36154aa6d63Sopenharmony_ci std::string mode = "localSign"; 36254aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 36354aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 36454aa6d63Sopenharmony_ci std::string signCode = "1"; 36554aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 36654aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 36754aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 36854aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 36954aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 37054aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 37154aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 37254aa6d63Sopenharmony_ci 37354aa6d63Sopenharmony_ci (*params)["mode"] = mode; 37454aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 37554aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 37654aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 37754aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 37854aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 37954aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 38054aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 38154aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 38254aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 38354aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 38454aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 38554aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 38654aa6d63Sopenharmony_ci 38754aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 38854aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 38954aa6d63Sopenharmony_ci 39054aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 39154aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 39254aa6d63Sopenharmony_ci} 39354aa6d63Sopenharmony_ci 39454aa6d63Sopenharmony_ci/* 39554aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_009 39654aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter profileSigned 39754aa6d63Sopenharmony_ci * @tc.type: FUNC 39854aa6d63Sopenharmony_ci * @tc.require: 39954aa6d63Sopenharmony_ci */ 40054aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_009, testing::ext::TestSize.Level1) 40154aa6d63Sopenharmony_ci{ 40254aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 40354aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 40454aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 40554aa6d63Sopenharmony_ci 40654aa6d63Sopenharmony_ci std::string mode = "localSign"; 40754aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 40854aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 40954aa6d63Sopenharmony_ci std::string signCode = "1"; 41054aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 41154aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 41254aa6d63Sopenharmony_ci std::string profileSigned = "0"; 41354aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 41454aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 41554aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 41654aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 41754aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 41854aa6d63Sopenharmony_ci 41954aa6d63Sopenharmony_ci (*params)["mode"] = mode; 42054aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 42154aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 42254aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 42354aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 42454aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 42554aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 42654aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 42754aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 42854aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 42954aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 43054aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 43154aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 43254aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 43354aa6d63Sopenharmony_ci 43454aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 43554aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 43654aa6d63Sopenharmony_ci 43754aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 43854aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 43954aa6d63Sopenharmony_ci} 44054aa6d63Sopenharmony_ci 44154aa6d63Sopenharmony_ci/* 44254aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_010 44354aa6d63Sopenharmony_ci * @tc.desc: This function tests sucess for interface Sign 44454aa6d63Sopenharmony_ci * @tc.type: FUNC 44554aa6d63Sopenharmony_ci * @tc.require: 44654aa6d63Sopenharmony_ci */ 44754aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_010, testing::ext::TestSize.Level1) 44854aa6d63Sopenharmony_ci{ 44954aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 45054aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 45154aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 45254aa6d63Sopenharmony_ci 45354aa6d63Sopenharmony_ci std::string mode = "localSign"; 45454aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 45554aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 45654aa6d63Sopenharmony_ci std::string signCode = "1"; 45754aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 45854aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 45954aa6d63Sopenharmony_ci std::string profileSigned = "1"; 46054aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 46154aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 46254aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 46354aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 46454aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 46554aa6d63Sopenharmony_ci 46654aa6d63Sopenharmony_ci (*params)["mode"] = mode; 46754aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 46854aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 46954aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 47054aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 47154aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 47254aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 47354aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 47454aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 47554aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 47654aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 47754aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 47854aa6d63Sopenharmony_ci 47954aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 48054aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 48154aa6d63Sopenharmony_ci 48254aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 48354aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 48454aa6d63Sopenharmony_ci 48554aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 48654aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 48754aa6d63Sopenharmony_ci} 48854aa6d63Sopenharmony_ci 48954aa6d63Sopenharmony_ci/* 49054aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_011 49154aa6d63Sopenharmony_ci * @tc.desc: This function tests sucess for interface GetDigestOutputByteSize 49254aa6d63Sopenharmony_ci * @tc.type: FUNC 49354aa6d63Sopenharmony_ci * @tc.require: 49454aa6d63Sopenharmony_ci */ 49554aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_011, testing::ext::TestSize.Level1) 49654aa6d63Sopenharmony_ci{ 49754aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 49854aa6d63Sopenharmony_ci ContentDigestAlgorithm alg_tmp; 49954aa6d63Sopenharmony_ci ContentDigestAlgorithm alg_1 = ContentDigestAlgorithm::SHA256; 50054aa6d63Sopenharmony_ci ContentDigestAlgorithm* alg_2 = &alg_1; 50154aa6d63Sopenharmony_ci *alg_2 = alg_1; 50254aa6d63Sopenharmony_ci alg_tmp = alg_1; 50354aa6d63Sopenharmony_ci ContentDigestAlgorithm alg = ContentDigestAlgorithm::SHA256; 50454aa6d63Sopenharmony_ci std::string algname = alg.GetDigestAlgorithm(); 50554aa6d63Sopenharmony_ci EXPECT_EQ(algname, std::string("SHA-256")); 50654aa6d63Sopenharmony_ci int size = alg.GetDigestOutputByteSize(); 50754aa6d63Sopenharmony_ci EXPECT_EQ(size, 256 / 8); 50854aa6d63Sopenharmony_ci 50954aa6d63Sopenharmony_ci ContentDigestAlgorithm alg_384 = ContentDigestAlgorithm::SHA384; 51054aa6d63Sopenharmony_ci std::string algname_384 = alg_384.GetDigestAlgorithm(); 51154aa6d63Sopenharmony_ci EXPECT_EQ(algname_384, std::string("SHA-384")); 51254aa6d63Sopenharmony_ci int size384 = alg_384.GetDigestOutputByteSize(); 51354aa6d63Sopenharmony_ci EXPECT_EQ(size384, 384 / 8); 51454aa6d63Sopenharmony_ci 51554aa6d63Sopenharmony_ci ContentDigestAlgorithm alg_512 = ContentDigestAlgorithm::SHA512; 51654aa6d63Sopenharmony_ci alg_512 = ContentDigestAlgorithm::SHA512; 51754aa6d63Sopenharmony_ci std::string algname_512 = alg_512.GetDigestAlgorithm(); 51854aa6d63Sopenharmony_ci EXPECT_EQ(algname_512, std::string("SHA-512")); 51954aa6d63Sopenharmony_ci int size512 = alg_512.GetDigestOutputByteSize(); 52054aa6d63Sopenharmony_ci EXPECT_EQ(size512, 512 / 8); 52154aa6d63Sopenharmony_ci} 52254aa6d63Sopenharmony_ci/* 52354aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_012 52454aa6d63Sopenharmony_ci * @tc.desc: This function tests sucess for interface ComputeDigests 52554aa6d63Sopenharmony_ci * @tc.type: FUNC 52654aa6d63Sopenharmony_ci * @tc.require: 52754aa6d63Sopenharmony_ci */ 52854aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_012, testing::ext::TestSize.Level1) 52954aa6d63Sopenharmony_ci{ 53054aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 53154aa6d63Sopenharmony_ci ByteBuffer bf1("123456789", 9); 53254aa6d63Sopenharmony_ci ByteBuffer bf2("123456789", 9); 53354aa6d63Sopenharmony_ci ByteBuffer bf3("123456789", 9); 53454aa6d63Sopenharmony_ci ByteBuffer bf4("123456789", 9); 53554aa6d63Sopenharmony_ci ByteBufferDataSource ds1(bf1); 53654aa6d63Sopenharmony_ci ByteBufferDataSource ds2(bf2); 53754aa6d63Sopenharmony_ci ByteBufferDataSource ds3(bf3); 53854aa6d63Sopenharmony_ci 53954aa6d63Sopenharmony_ci DataSource* contents[] = {&ds1, &ds2, &ds3}; 54054aa6d63Sopenharmony_ci int32_t len = 3; 54154aa6d63Sopenharmony_ci 54254aa6d63Sopenharmony_ci std::vector<OptionalBlock> optionalBlocks; 54354aa6d63Sopenharmony_ci optionalBlocks.push_back({HapUtils::HAP_PROFILE_BLOCK_ID, bf4}); 54454aa6d63Sopenharmony_ci ByteBuffer dig_context; 54554aa6d63Sopenharmony_ci 54654aa6d63Sopenharmony_ci SignatureAlgorithm algo = SignatureAlgorithm::ALGORITHM_SHA256_WITH_ECDSA; 54754aa6d63Sopenharmony_ci int32_t nId = DigestCommon::GetDigestAlgorithmId(algo); 54854aa6d63Sopenharmony_ci DigestParameter digestParam = HapSignerBlockUtils::GetDigestParameter(nId); 54954aa6d63Sopenharmony_ci 55054aa6d63Sopenharmony_ci bool ret = SignHap::ComputeDigests(digestParam, contents, len, optionalBlocks, dig_context); 55154aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 55254aa6d63Sopenharmony_ci} 55354aa6d63Sopenharmony_ci/* 55454aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_013 55554aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter appCertFile 55654aa6d63Sopenharmony_ci * @tc.type: FUNC 55754aa6d63Sopenharmony_ci * @tc.require: 55854aa6d63Sopenharmony_ci */ 55954aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_013, testing::ext::TestSize.Level1) 56054aa6d63Sopenharmony_ci{ 56154aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 56254aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 56354aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 56454aa6d63Sopenharmony_ci 56554aa6d63Sopenharmony_ci std::string mode = "localSign"; 56654aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 56754aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 56854aa6d63Sopenharmony_ci std::string signCode = "1"; 56954aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release-nohave.pem"; 57054aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 57154aa6d63Sopenharmony_ci std::string profileSigned = "1"; 57254aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 57354aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 57454aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 57554aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 57654aa6d63Sopenharmony_ci 57754aa6d63Sopenharmony_ci (*params)["mode"] = mode; 57854aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 57954aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 58054aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 58154aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 58254aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 58354aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 58454aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 58554aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 58654aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 58754aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 58854aa6d63Sopenharmony_ci 58954aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 59054aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 59154aa6d63Sopenharmony_ci 59254aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 59354aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 59454aa6d63Sopenharmony_ci} 59554aa6d63Sopenharmony_ci/* 59654aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_014 59754aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile 59854aa6d63Sopenharmony_ci * @tc.type: FUNC 59954aa6d63Sopenharmony_ci * @tc.require: 60054aa6d63Sopenharmony_ci */ 60154aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_014, testing::ext::TestSize.Level1) 60254aa6d63Sopenharmony_ci{ 60354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 60454aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 60554aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 60654aa6d63Sopenharmony_ci 60754aa6d63Sopenharmony_ci std::string mode = "localSign"; 60854aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 60954aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 61054aa6d63Sopenharmony_ci std::string signCode = "1"; 61154aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 61254aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 61354aa6d63Sopenharmony_ci std::string profileSigned = "1"; 61454aa6d63Sopenharmony_ci std::string inFile = "./hapSign/nohave.hap"; 61554aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 61654aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 61754aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 61854aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 61954aa6d63Sopenharmony_ci 62054aa6d63Sopenharmony_ci (*params)["mode"] = mode; 62154aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 62254aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 62354aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 62454aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 62554aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 62654aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 62754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 62854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 62954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 63054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 63154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 63254aa6d63Sopenharmony_ci 63354aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 63454aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 63554aa6d63Sopenharmony_ci 63654aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 63754aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 63854aa6d63Sopenharmony_ci 63954aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 64054aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 64154aa6d63Sopenharmony_ci} 64254aa6d63Sopenharmony_ci 64354aa6d63Sopenharmony_ci/* 64454aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_015 64554aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter appCertFile 64654aa6d63Sopenharmony_ci * @tc.type: FUNC 64754aa6d63Sopenharmony_ci * @tc.require: 64854aa6d63Sopenharmony_ci */ 64954aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_015, testing::ext::TestSize.Level1) 65054aa6d63Sopenharmony_ci{ 65154aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 65254aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 65354aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 65454aa6d63Sopenharmony_ci 65554aa6d63Sopenharmony_ci std::string mode = "localSign"; 65654aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 65754aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 65854aa6d63Sopenharmony_ci std::string signCode = "1"; 65954aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release-.pem"; 66054aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 66154aa6d63Sopenharmony_ci std::string profileSigned = "1"; 66254aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 66354aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 66454aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 66554aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 66654aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 66754aa6d63Sopenharmony_ci 66854aa6d63Sopenharmony_ci (*params)["mode"] = mode; 66954aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 67054aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 67154aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 67254aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 67354aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 67454aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 67554aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 67654aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 67754aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 67854aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 67954aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 68054aa6d63Sopenharmony_ci 68154aa6d63Sopenharmony_ci signProvider->CheckParams(params.get()); 68254aa6d63Sopenharmony_ci 68354aa6d63Sopenharmony_ci signProvider->GetCrl(); 68454aa6d63Sopenharmony_ci 68554aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 68654aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 68754aa6d63Sopenharmony_ci} 68854aa6d63Sopenharmony_ci 68954aa6d63Sopenharmony_ci/* 69054aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_016 69154aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter outFile 69254aa6d63Sopenharmony_ci * @tc.type: FUNC 69354aa6d63Sopenharmony_ci * @tc.require: 69454aa6d63Sopenharmony_ci */ 69554aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_016, testing::ext::TestSize.Level1) 69654aa6d63Sopenharmony_ci{ 69754aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 69854aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 69954aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 70054aa6d63Sopenharmony_ci 70154aa6d63Sopenharmony_ci std::string mode = "localSign"; 70254aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 70354aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 70454aa6d63Sopenharmony_ci std::string signCode = "1"; 70554aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 70654aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 70754aa6d63Sopenharmony_ci std::string profileSigned = "1"; 70854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 70954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 71054aa6d63Sopenharmony_ci std::string outFile = "/d/phone-default-signed.hap"; 71154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 71254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 71354aa6d63Sopenharmony_ci 71454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 71554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 71654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 71754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 71854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 71954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 72054aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 72154aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 72254aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 72354aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 72454aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 72554aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 72654aa6d63Sopenharmony_ci 72754aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 72854aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 72954aa6d63Sopenharmony_ci 73054aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 73154aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 73254aa6d63Sopenharmony_ci 73354aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 73454aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 73554aa6d63Sopenharmony_ci} 73654aa6d63Sopenharmony_ci 73754aa6d63Sopenharmony_ci/* 73854aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_017 73954aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter outFile 74054aa6d63Sopenharmony_ci * @tc.type: FUNC 74154aa6d63Sopenharmony_ci * @tc.require: 74254aa6d63Sopenharmony_ci */ 74354aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_017, testing::ext::TestSize.Level1) 74454aa6d63Sopenharmony_ci{ 74554aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 74654aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 74754aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 74854aa6d63Sopenharmony_ci 74954aa6d63Sopenharmony_ci std::string mode = "localSign"; 75054aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 75154aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 75254aa6d63Sopenharmony_ci std::string signCode = "1"; 75354aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 75454aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 75554aa6d63Sopenharmony_ci std::string profileSigned = "1"; 75654aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 75754aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 75854aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-unsigned.hap"; 75954aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 76054aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 76154aa6d63Sopenharmony_ci 76254aa6d63Sopenharmony_ci (*params)["mode"] = mode; 76354aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 76454aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 76554aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 76654aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 76754aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 76854aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 76954aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 77054aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 77154aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 77254aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 77354aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 77454aa6d63Sopenharmony_ci 77554aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 77654aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 77754aa6d63Sopenharmony_ci 77854aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 77954aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 78054aa6d63Sopenharmony_ci 78154aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 78254aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 78354aa6d63Sopenharmony_ci} 78454aa6d63Sopenharmony_ci 78554aa6d63Sopenharmony_ci/* 78654aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_018 78754aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter signAlg 78854aa6d63Sopenharmony_ci * @tc.type: FUNC 78954aa6d63Sopenharmony_ci * @tc.require: 79054aa6d63Sopenharmony_ci */ 79154aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_018, testing::ext::TestSize.Level1) 79254aa6d63Sopenharmony_ci{ 79354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 79454aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 79554aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 79654aa6d63Sopenharmony_ci 79754aa6d63Sopenharmony_ci std::string mode = "localSign"; 79854aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 79954aa6d63Sopenharmony_ci std::string signAlg = "SHA256withEA"; 80054aa6d63Sopenharmony_ci std::string signCode = "1"; 80154aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 80254aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 80354aa6d63Sopenharmony_ci std::string profileSigned = "1"; 80454aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 80554aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 80654aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 80754aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 80854aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 80954aa6d63Sopenharmony_ci 81054aa6d63Sopenharmony_ci (*params)["mode"] = mode; 81154aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 81254aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 81354aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 81454aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 81554aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 81654aa6d63Sopenharmony_ci (*params)["profileSigned"] = profileSigned; 81754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 81854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 81954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 82054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 82154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 82254aa6d63Sopenharmony_ci 82354aa6d63Sopenharmony_ci std::optional<X509_CRL*> crl = signProvider->GetCrl(); 82454aa6d63Sopenharmony_ci EXPECT_EQ(crl.has_value(), false); 82554aa6d63Sopenharmony_ci 82654aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 82754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 82854aa6d63Sopenharmony_ci} 82954aa6d63Sopenharmony_ci 83054aa6d63Sopenharmony_ci/* 83154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_019 83254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile 83354aa6d63Sopenharmony_ci * @tc.type: FUNC 83454aa6d63Sopenharmony_ci * @tc.require: 83554aa6d63Sopenharmony_ci */ 83654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_019, testing::ext::TestSize.Level1) 83754aa6d63Sopenharmony_ci{ 83854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 83954aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 84054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 84154aa6d63Sopenharmony_ci 84254aa6d63Sopenharmony_ci std::string mode = "localSign"; 84354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 84454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 84554aa6d63Sopenharmony_ci std::string signCode = "0"; 84654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 84754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 84854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned"; 84954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 85054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 85154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 85254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 85354aa6d63Sopenharmony_ci 85454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 85554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 85654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 85754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 85854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 85954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 86054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 86154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 86254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 86354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 86454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 86554aa6d63Sopenharmony_ci 86654aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 86754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 86854aa6d63Sopenharmony_ci} 86954aa6d63Sopenharmony_ci 87054aa6d63Sopenharmony_ci/* 87154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_020 87254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile 87354aa6d63Sopenharmony_ci * @tc.type: FUNC 87454aa6d63Sopenharmony_ci * @tc.require: 87554aa6d63Sopenharmony_ci */ 87654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_020, testing::ext::TestSize.Level1) 87754aa6d63Sopenharmony_ci{ 87854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 87954aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 88054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 88154aa6d63Sopenharmony_ci 88254aa6d63Sopenharmony_ci std::string mode = "localSign"; 88354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 88454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 88554aa6d63Sopenharmony_ci std::string signCode = "0"; 88654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 88754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 88854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned"; 88954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 89054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 89154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 89254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 89354aa6d63Sopenharmony_ci 89454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 89554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 89654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 89754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 89854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 89954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 90054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 90154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 90254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 90354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 90454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 90554aa6d63Sopenharmony_ci 90654aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 90754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 90854aa6d63Sopenharmony_ci} 90954aa6d63Sopenharmony_ci 91054aa6d63Sopenharmony_ci/* 91154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_021 91254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile 91354aa6d63Sopenharmony_ci * @tc.type: FUNC 91454aa6d63Sopenharmony_ci * @tc.require: 91554aa6d63Sopenharmony_ci */ 91654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_021, testing::ext::TestSize.Level1) 91754aa6d63Sopenharmony_ci{ 91854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 91954aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 92054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 92154aa6d63Sopenharmony_ci 92254aa6d63Sopenharmony_ci std::string mode = "localSign"; 92354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 92454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 92554aa6d63Sopenharmony_ci std::string signCode = "0"; 92654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 92754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 92854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/nohap.hap"; 92954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 93054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 93154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 93254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 93354aa6d63Sopenharmony_ci 93454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 93554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 93654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 93754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 93854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 93954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 94054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 94154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 94254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 94354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 94454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 94554aa6d63Sopenharmony_ci 94654aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 94754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 94854aa6d63Sopenharmony_ci} 94954aa6d63Sopenharmony_ci 95054aa6d63Sopenharmony_ci/* 95154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_022 95254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile 95354aa6d63Sopenharmony_ci * @tc.type: FUNC 95454aa6d63Sopenharmony_ci * @tc.require: 95554aa6d63Sopenharmony_ci */ 95654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_022, testing::ext::TestSize.Level1) 95754aa6d63Sopenharmony_ci{ 95854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 95954aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>(); 96054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 96154aa6d63Sopenharmony_ci 96254aa6d63Sopenharmony_ci std::string mode = "localSign"; 96354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 96454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 96554aa6d63Sopenharmony_ci std::string signCode = "0"; 96654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 96754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 96854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/unsigned_with_eocd.hap"; 96954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 97054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 97154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 97254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 97354aa6d63Sopenharmony_ci 97454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 97554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 97654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 97754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 97854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 97954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 98054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 98154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 98254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 98354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 98454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 98554aa6d63Sopenharmony_ci 98654aa6d63Sopenharmony_ci bool ret = signProvider->Sign(params.get()); 98754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 98854aa6d63Sopenharmony_ci} 98954aa6d63Sopenharmony_ci 99054aa6d63Sopenharmony_ci/* 99154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_023 99254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface SignHap due to parameter mode not support 99354aa6d63Sopenharmony_ci * @tc.type: FUNC 99454aa6d63Sopenharmony_ci * @tc.require: 99554aa6d63Sopenharmony_ci */ 99654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_023, testing::ext::TestSize.Level1) 99754aa6d63Sopenharmony_ci{ 99854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 99954aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 100054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 100154aa6d63Sopenharmony_ci 100254aa6d63Sopenharmony_ci std::string mode = "remoteSign"; 100354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 100454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 100554aa6d63Sopenharmony_ci std::string signCode = "0"; 100654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 100754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 100854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 100954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 101054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 101154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 101254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 101354aa6d63Sopenharmony_ci 101454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 101554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 101654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 101754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 101854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 101954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 102054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 102154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 102254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 102354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 102454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 102554aa6d63Sopenharmony_ci 102654aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 102754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 102854aa6d63Sopenharmony_ci} 102954aa6d63Sopenharmony_ci 103054aa6d63Sopenharmony_ci/* 103154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_024 103254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface SignHap due to parameter mode not support 103354aa6d63Sopenharmony_ci * @tc.type: FUNC 103454aa6d63Sopenharmony_ci * @tc.require: 103554aa6d63Sopenharmony_ci */ 103654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_024, testing::ext::TestSize.Level1) 103754aa6d63Sopenharmony_ci{ 103854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 103954aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 104054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 104154aa6d63Sopenharmony_ci 104254aa6d63Sopenharmony_ci std::string mode = "remoteResign"; 104354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 104454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 104554aa6d63Sopenharmony_ci std::string signCode = "0"; 104654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 104754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 104854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 104954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 105054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 105154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 105254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 105354aa6d63Sopenharmony_ci 105454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 105554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 105654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 105754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 105854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 105954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 106054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 106154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 106254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 106354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 106454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 106554aa6d63Sopenharmony_ci 106654aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 106754aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 106854aa6d63Sopenharmony_ci} 106954aa6d63Sopenharmony_ci 107054aa6d63Sopenharmony_ci/* 107154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_025 107254aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SignHap 107354aa6d63Sopenharmony_ci * @tc.type: FUNC 107454aa6d63Sopenharmony_ci * @tc.require: 107554aa6d63Sopenharmony_ci */ 107654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_025, testing::ext::TestSize.Level1) 107754aa6d63Sopenharmony_ci{ 107854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 107954aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 108054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 108154aa6d63Sopenharmony_ci 108254aa6d63Sopenharmony_ci std::string mode = "localSign"; 108354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 108454aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 108554aa6d63Sopenharmony_ci std::string signCode = "0"; 108654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 108754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 108854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned"; 108954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 109054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 109154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 109254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 109354aa6d63Sopenharmony_ci 109454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 109554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 109654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 109754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 109854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 109954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 110054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 110154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 110254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 110354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 110454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 110554aa6d63Sopenharmony_ci 110654aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 110754aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 110854aa6d63Sopenharmony_ci} 110954aa6d63Sopenharmony_ci 111054aa6d63Sopenharmony_ci/* 111154aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_026 111254aa6d63Sopenharmony_ci * @tc.desc: This function tests success and failure for interface Sign & ComputeDigests 111354aa6d63Sopenharmony_ci * @tc.type: FUNC 111454aa6d63Sopenharmony_ci * @tc.require: 111554aa6d63Sopenharmony_ci */ 111654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_026, testing::ext::TestSize.Level1) 111754aa6d63Sopenharmony_ci{ 111854aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 111954aa6d63Sopenharmony_ci ByteBuffer bf1("123456789", 9); 112054aa6d63Sopenharmony_ci ByteBuffer bf2("123456789", 9); 112154aa6d63Sopenharmony_ci ByteBuffer bf3("123456789", 9); 112254aa6d63Sopenharmony_ci ByteBuffer bf4("123456789", 9); 112354aa6d63Sopenharmony_ci ByteBufferDataSource ds1(bf1); 112454aa6d63Sopenharmony_ci ByteBufferDataSource ds2(bf2); 112554aa6d63Sopenharmony_ci ByteBufferDataSource ds3(bf3); 112654aa6d63Sopenharmony_ci 112754aa6d63Sopenharmony_ci DataSource* contents[] = {&ds1, &ds2, &ds3}; 112854aa6d63Sopenharmony_ci DataSource* contents_t[] = {nullptr, nullptr, nullptr}; 112954aa6d63Sopenharmony_ci int32_t len = 3; 113054aa6d63Sopenharmony_ci 113154aa6d63Sopenharmony_ci std::vector<OptionalBlock> optionalBlocks; 113254aa6d63Sopenharmony_ci std::vector<OptionalBlock> optionalBlockSTest; 113354aa6d63Sopenharmony_ci optionalBlocks.push_back({HapUtils::HAP_PROFILE_BLOCK_ID, bf4}); 113454aa6d63Sopenharmony_ci ByteBuffer dig_context; 113554aa6d63Sopenharmony_ci 113654aa6d63Sopenharmony_ci SignatureAlgorithm algo = SignatureAlgorithm::ALGORITHM_SHA256_WITH_ECDSA; 113754aa6d63Sopenharmony_ci int32_t nId = DigestCommon::GetDigestAlgorithmId(algo); 113854aa6d63Sopenharmony_ci DigestParameter digestParam = HapSignerBlockUtils::GetDigestParameter(nId); 113954aa6d63Sopenharmony_ci 114054aa6d63Sopenharmony_ci SignerConfig config; 114154aa6d63Sopenharmony_ci ByteBuffer result; 114254aa6d63Sopenharmony_ci ByteBuffer result1; 114354aa6d63Sopenharmony_ci bool ret1 = SignHap::Sign(contents, 2, config, optionalBlocks, result); 114454aa6d63Sopenharmony_ci EXPECT_EQ(ret1, false); 114554aa6d63Sopenharmony_ci 114654aa6d63Sopenharmony_ci ret1 = SignHap::Sign(contents_t, 3, config, optionalBlocks, result1); 114754aa6d63Sopenharmony_ci EXPECT_EQ(ret1, false); 114854aa6d63Sopenharmony_ci 114954aa6d63Sopenharmony_ci std::vector<SignatureAlgorithmHelper> sig{SignatureAlgorithmHelper::ECDSA_WITH_SHA256_INSTANCE}; 115054aa6d63Sopenharmony_ci config.SetSignatureAlgorithms(sig); 115154aa6d63Sopenharmony_ci ret1 = SignHap::Sign(contents_t, 3, config, optionalBlocks, result1); 115254aa6d63Sopenharmony_ci EXPECT_EQ(ret1, false); 115354aa6d63Sopenharmony_ci bool ret = SignHap::ComputeDigests(digestParam, contents, len, optionalBlockSTest, dig_context); 115454aa6d63Sopenharmony_ci ret = SignHap::ComputeDigests(digestParam, contents_t, len, optionalBlocks, dig_context); 115554aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 115654aa6d63Sopenharmony_ci} 115754aa6d63Sopenharmony_ci 115854aa6d63Sopenharmony_ci/* 115954aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_027 116054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface SignHap due to parameter inFile not exist 116154aa6d63Sopenharmony_ci * @tc.type: FUNC 116254aa6d63Sopenharmony_ci * @tc.require: 116354aa6d63Sopenharmony_ci */ 116454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_027, testing::ext::TestSize.Level1) 116554aa6d63Sopenharmony_ci{ 116654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 116754aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 116854aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 116954aa6d63Sopenharmony_ci 117054aa6d63Sopenharmony_ci std::string mode = "localSign"; 117154aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 117254aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 117354aa6d63Sopenharmony_ci std::string signCode = "0"; 117454aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 117554aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 117654aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default.hap"; 117754aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 117854aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 117954aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 118054aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 118154aa6d63Sopenharmony_ci 118254aa6d63Sopenharmony_ci (*params)["mode"] = mode; 118354aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 118454aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 118554aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 118654aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 118754aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 118854aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 118954aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 119054aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 119154aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 119254aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 119354aa6d63Sopenharmony_ci 119454aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 119554aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 119654aa6d63Sopenharmony_ci} 119754aa6d63Sopenharmony_ci 119854aa6d63Sopenharmony_ci/* 119954aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_028 120054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface SignHap due to parameter inFile damage 120154aa6d63Sopenharmony_ci * @tc.type: FUNC 120254aa6d63Sopenharmony_ci * @tc.require: 120354aa6d63Sopenharmony_ci */ 120454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_028, testing::ext::TestSize.Level1) 120554aa6d63Sopenharmony_ci{ 120654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 120754aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 120854aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 120954aa6d63Sopenharmony_ci 121054aa6d63Sopenharmony_ci std::string mode = "localSign"; 121154aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 121254aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 121354aa6d63Sopenharmony_ci std::string signCode = "0"; 121454aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 121554aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 121654aa6d63Sopenharmony_ci std::string inFile = "./hapSign/unsigned_with_cd_and_eocd.hap"; 121754aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 121854aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 121954aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 122054aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 122154aa6d63Sopenharmony_ci 122254aa6d63Sopenharmony_ci (*params)["mode"] = mode; 122354aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 122454aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 122554aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 122654aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 122754aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 122854aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 122954aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 123054aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 123154aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 123254aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 123354aa6d63Sopenharmony_ci 123454aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 123554aa6d63Sopenharmony_ci EXPECT_EQ(ret, true); 123654aa6d63Sopenharmony_ci} 123754aa6d63Sopenharmony_ci 123854aa6d63Sopenharmony_ci/* 123954aa6d63Sopenharmony_ci * @tc.name: hap_sign_test_029 124054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface SignHap due to parameter signAlg not suport 124154aa6d63Sopenharmony_ci * @tc.type: FUNC 124254aa6d63Sopenharmony_ci * @tc.require: 124354aa6d63Sopenharmony_ci */ 124454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_test_029, testing::ext::TestSize.Level1) 124554aa6d63Sopenharmony_ci{ 124654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 124754aa6d63Sopenharmony_ci std::unique_ptr<SignToolServiceImpl> api = std::make_unique<SignToolServiceImpl>(); 124854aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 124954aa6d63Sopenharmony_ci 125054aa6d63Sopenharmony_ci std::string mode = "localSign"; 125154aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 125254aa6d63Sopenharmony_ci std::string signAlg = "SHA256w"; 125354aa6d63Sopenharmony_ci std::string signCode = "0"; 125454aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 125554aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 125654aa6d63Sopenharmony_ci std::string inFile = "./hapSign/unsigned_with_cd_and_eocd.hap"; 125754aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 125854aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 125954aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 126054aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 126154aa6d63Sopenharmony_ci 126254aa6d63Sopenharmony_ci (*params)["mode"] = mode; 126354aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 126454aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 126554aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 126654aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 126754aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 126854aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 126954aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 127054aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 127154aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 127254aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 127354aa6d63Sopenharmony_ci 127454aa6d63Sopenharmony_ci bool ret = api->SignHap(params.get()); 127554aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 127654aa6d63Sopenharmony_ci} 127754aa6d63Sopenharmony_ci 127854aa6d63Sopenharmony_ci/** 127954aa6d63Sopenharmony_ci * @tc.name: get_options_test_001 128054aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface SetOptions 128154aa6d63Sopenharmony_ci * @tc.type: FUNC 128254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 128354aa6d63Sopenharmony_ci */ 128454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, get_options_test_001, testing::ext::TestSize.Level1) 128554aa6d63Sopenharmony_ci{ 128654aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 128754aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 128854aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 128954aa6d63Sopenharmony_ci SignerConfig signerConfig; 129054aa6d63Sopenharmony_ci signerConfig.SetOptions(params.get()); 129154aa6d63Sopenharmony_ci EXPECT_EQ(params.get(), signerConfig.GetOptions()); 129254aa6d63Sopenharmony_ci} 129354aa6d63Sopenharmony_ci 129454aa6d63Sopenharmony_ci/** 129554aa6d63Sopenharmony_ci * @tc.name: get_certificates_test_001 129654aa6d63Sopenharmony_ci * @tc.desc: Test function of GetCertificates() interface for SUCCESS. 129754aa6d63Sopenharmony_ci * @tc.type: FUNC 129854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 129954aa6d63Sopenharmony_ci */ 130054aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, get_certificates_test_001, testing::ext::TestSize.Level1) 130154aa6d63Sopenharmony_ci{ 130254aa6d63Sopenharmony_ci X509* newCert = X509_new(); 130354aa6d63Sopenharmony_ci EXPECT_TRUE(X509_set_version(newCert, 2)); 130454aa6d63Sopenharmony_ci SignerConfig signerConfig; 130554aa6d63Sopenharmony_ci signerConfig.SetX509CRLs(nullptr); 130654aa6d63Sopenharmony_ci signerConfig.GetX509CRLs(); 130754aa6d63Sopenharmony_ci signerConfig.SetCertificates(nullptr); 130854aa6d63Sopenharmony_ci signerConfig.GetCertificates(); 130954aa6d63Sopenharmony_ci signerConfig.GetSignParamMap(); 131054aa6d63Sopenharmony_ci STACK_OF(X509) *certs = sk_X509_new_null(); 131154aa6d63Sopenharmony_ci sk_X509_push(certs, newCert); 131254aa6d63Sopenharmony_ci signerConfig.SetCertificates(certs); 131354aa6d63Sopenharmony_ci 131454aa6d63Sopenharmony_ci EXPECT_NE(signerConfig.GetCertificates(), nullptr); 131554aa6d63Sopenharmony_ci} 131654aa6d63Sopenharmony_ci 131754aa6d63Sopenharmony_ci/** 131854aa6d63Sopenharmony_ci * @tc.name: get_X509_CRLs_test_001 131954aa6d63Sopenharmony_ci * @tc.desc: Test function of GetX509CRLs() interface for SUCCESS. 132054aa6d63Sopenharmony_ci * @tc.type: FUNC 132154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 132254aa6d63Sopenharmony_ci */ 132354aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, get_X509_CRLs_test_001, testing::ext::TestSize.Level1) 132454aa6d63Sopenharmony_ci{ 132554aa6d63Sopenharmony_ci STACK_OF(X509_CRL)* x509CRLs = nullptr; 132654aa6d63Sopenharmony_ci SignerConfig signerConfig; 132754aa6d63Sopenharmony_ci signerConfig.SetX509CRLs(x509CRLs); 132854aa6d63Sopenharmony_ci EXPECT_EQ(x509CRLs, signerConfig.GetX509CRLs()); 132954aa6d63Sopenharmony_ci} 133054aa6d63Sopenharmony_ci 133154aa6d63Sopenharmony_ci/** 133254aa6d63Sopenharmony_ci * @tc.name: get_X509_CRLs_test_002 133354aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface GetX509CRLs 133454aa6d63Sopenharmony_ci * @tc.type: FUNC 133554aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 133654aa6d63Sopenharmony_ci */ 133754aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, get_X509_CRLs_test_002, testing::ext::TestSize.Level1) 133854aa6d63Sopenharmony_ci{ 133954aa6d63Sopenharmony_ci STACK_OF(X509_CRL)* x509CRLs = nullptr; 134054aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 134154aa6d63Sopenharmony_ci 134254aa6d63Sopenharmony_ci std::string mode = "localSign"; 134354aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 134454aa6d63Sopenharmony_ci std::string signAlg = "SHA256w"; 134554aa6d63Sopenharmony_ci std::string signCode = "0"; 134654aa6d63Sopenharmony_ci std::string appCertFile = "./hapSign/app-release1.pem"; 134754aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 134854aa6d63Sopenharmony_ci std::string inFile = "./hapSign/unsigned_with_cd_and_eocd.hap"; 134954aa6d63Sopenharmony_ci std::string keystoreFile = "./hapSign/ohtest.p12"; 135054aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 135154aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 135254aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 135354aa6d63Sopenharmony_ci 135454aa6d63Sopenharmony_ci (*params)["mode"] = mode; 135554aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 135654aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 135754aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 135854aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 135954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 136054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 136154aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 136254aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 136354aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 136454aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 136554aa6d63Sopenharmony_ci 136654aa6d63Sopenharmony_ci SignerConfig signerConfig; 136754aa6d63Sopenharmony_ci signerConfig.SetOptions(params.get()); 136854aa6d63Sopenharmony_ci 136954aa6d63Sopenharmony_ci signerConfig.GetX509CRLs(); 137054aa6d63Sopenharmony_ci STACK_OF(X509_CRL)* crls = sk_X509_CRL_new_null(); 137154aa6d63Sopenharmony_ci signerConfig.SetX509CRLs(crls); 137254aa6d63Sopenharmony_ci signerConfig.GetX509CRLs(); 137354aa6d63Sopenharmony_ci 137454aa6d63Sopenharmony_ci signerConfig.SetCertificates(nullptr); 137554aa6d63Sopenharmony_ci signerConfig.SetX509CRLs(x509CRLs); 137654aa6d63Sopenharmony_ci signerConfig.GetX509CRLs(); 137754aa6d63Sopenharmony_ci 137854aa6d63Sopenharmony_ci X509* newCert = X509_new(); 137954aa6d63Sopenharmony_ci X509_set_version(newCert, 2); 138054aa6d63Sopenharmony_ci signerConfig.SetCertificates((STACK_OF(X509)*)newCert); 138154aa6d63Sopenharmony_ci signerConfig.GetX509CRLs(); 138254aa6d63Sopenharmony_ci 138354aa6d63Sopenharmony_ci signerConfig.GetSigner(); 138454aa6d63Sopenharmony_ci signerConfig.SetX509CRLs(x509CRLs); 138554aa6d63Sopenharmony_ci signerConfig.SetCertificates(nullptr); 138654aa6d63Sopenharmony_ci signerConfig.GetCertificates(); 138754aa6d63Sopenharmony_ci EXPECT_EQ(false, (signerConfig.GetX509CRLs() != nullptr)); 138854aa6d63Sopenharmony_ci} 138954aa6d63Sopenharmony_ci 139054aa6d63Sopenharmony_ci/** 139154aa6d63Sopenharmony_ci * @tc.name: get_compatible_version_test_001 139254aa6d63Sopenharmony_ci * @tc.desc: Test function of GetCompatibleVersion() interface for SUCCESS. 139354aa6d63Sopenharmony_ci * @tc.type: FUNC 139454aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 139554aa6d63Sopenharmony_ci */ 139654aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, get_compatible_version_test_001, testing::ext::TestSize.Level1) 139754aa6d63Sopenharmony_ci{ 139854aa6d63Sopenharmony_ci int n = 5; 139954aa6d63Sopenharmony_ci SignerConfig signerConfig; 140054aa6d63Sopenharmony_ci signerConfig.SetCompatibleVersion(n); 140154aa6d63Sopenharmony_ci EXPECT_EQ(5, signerConfig.GetCompatibleVersion()); 140254aa6d63Sopenharmony_ci} 140354aa6d63Sopenharmony_ci 140454aa6d63Sopenharmony_ci/** 140554aa6d63Sopenharmony_ci * @tc.name: find_by_id_test_001 140654aa6d63Sopenharmony_ci * @tc.desc: Test function of FindById() interface for SUCCESS. 140754aa6d63Sopenharmony_ci * @tc.type: FUNC 140854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 140954aa6d63Sopenharmony_ci */ 141054aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, find_by_id_test_001, testing::ext::TestSize.Level1) 141154aa6d63Sopenharmony_ci{ 141254aa6d63Sopenharmony_ci const SignatureAlgorithmHelper* tmp = SignatureAlgorithmHelper::FindById(SignatureAlgorithmId::ECDSA_WITH_SHA256); 141354aa6d63Sopenharmony_ci EXPECT_EQ(&(SignatureAlgorithmHelper::ECDSA_WITH_SHA256_INSTANCE), tmp); 141454aa6d63Sopenharmony_ci const SignatureAlgorithmHelper* tmp1 = SignatureAlgorithmHelper::FindById(SignatureAlgorithmId::ECDSA_WITH_SHA384); 141554aa6d63Sopenharmony_ci EXPECT_EQ(&(SignatureAlgorithmHelper::ECDSA_WITH_SHA384_INSTANCE), tmp1); 141654aa6d63Sopenharmony_ci} 141754aa6d63Sopenharmony_ci 141854aa6d63Sopenharmony_ci/** 141954aa6d63Sopenharmony_ci * @tc.name: find_by_id_test_002 142054aa6d63Sopenharmony_ci * @tc.desc: Test function of FindById() interface for SUCCESS. 142154aa6d63Sopenharmony_ci * @tc.type: FUNC 142254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 142354aa6d63Sopenharmony_ci */ 142454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, find_by_id_test_002, testing::ext::TestSize.Level1) 142554aa6d63Sopenharmony_ci{ 142654aa6d63Sopenharmony_ci SignatureAlgorithmHelper tmp1 = SignatureAlgorithmHelper::ECDSA_WITH_SHA256_INSTANCE; 142754aa6d63Sopenharmony_ci SignatureAlgorithmHelper tmp3 = SignatureAlgorithmHelper::ECDSA_WITH_SHA384_INSTANCE; 142854aa6d63Sopenharmony_ci SignatureAlgorithmHelper* tmp2 = &tmp1; 142954aa6d63Sopenharmony_ci *tmp2 = tmp1; 143054aa6d63Sopenharmony_ci tmp3 = tmp1; 143154aa6d63Sopenharmony_ci const SignatureAlgorithmHelper* tmp = SignatureAlgorithmHelper::FindById(SignatureAlgorithmId::DSA_WITH_SHA512); 143254aa6d63Sopenharmony_ci EXPECT_EQ(nullptr, tmp); 143354aa6d63Sopenharmony_ci} 143454aa6d63Sopenharmony_ci 143554aa6d63Sopenharmony_ci/* 143654aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_001 143754aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckParams due to signCode is 3 143854aa6d63Sopenharmony_ci * @tc.type: FUNC 143954aa6d63Sopenharmony_ci * @tc.require: 144054aa6d63Sopenharmony_ci */ 144154aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_001, testing::ext::TestSize.Level1) 144254aa6d63Sopenharmony_ci{ 144354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 144454aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 144554aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 144654aa6d63Sopenharmony_ci 144754aa6d63Sopenharmony_ci std::string mode = "remoteSign"; 144854aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 144954aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 145054aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 145154aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 145254aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 145354aa6d63Sopenharmony_ci std::string onlineAuthMode = "/mnt/d/testcpuls/OpenHarmony.p12"; 145454aa6d63Sopenharmony_ci std::string compatibleVersion = "8"; 145554aa6d63Sopenharmony_ci std::string signerPlugin = "/mnt/d/libRemoteSigner.so"; 145654aa6d63Sopenharmony_ci std::string signServer = "/mnt/d/testcpuls/app-release1.pem"; 145754aa6d63Sopenharmony_ci std::string username = "test"; 145854aa6d63Sopenharmony_ci char userPwd[] = "123456"; 145954aa6d63Sopenharmony_ci 146054aa6d63Sopenharmony_ci (*params)["mode"] = mode; 146154aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 146254aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 146354aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 146454aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 146554aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 146654aa6d63Sopenharmony_ci (*params)["onlineAuthMode"] = onlineAuthMode; 146754aa6d63Sopenharmony_ci (*params)["compatibleVersion"] = compatibleVersion; 146854aa6d63Sopenharmony_ci (*params)["signerPlugin"] = signerPlugin; 146954aa6d63Sopenharmony_ci (*params)["signServer"] = signServer; 147054aa6d63Sopenharmony_ci (*params)["username"] = username; 147154aa6d63Sopenharmony_ci (*params)["userPwd"] = userPwd; 147254aa6d63Sopenharmony_ci 147354aa6d63Sopenharmony_ci (*params)["signCode"] = std::string("3"); 147454aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 147554aa6d63Sopenharmony_ci EXPECT_EQ(retParam, false); 147654aa6d63Sopenharmony_ci} 147754aa6d63Sopenharmony_ci 147854aa6d63Sopenharmony_ci/* 147954aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_002 148054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckInputCertMatchWithProfile due to X509 error 148154aa6d63Sopenharmony_ci * @tc.type: FUNC 148254aa6d63Sopenharmony_ci * @tc.require: 148354aa6d63Sopenharmony_ci */ 148454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_002, testing::ext::TestSize.Level1) 148554aa6d63Sopenharmony_ci{ 148654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 148754aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 148854aa6d63Sopenharmony_ci 148954aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(nullptr, nullptr); 149054aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 149154aa6d63Sopenharmony_ci 149254aa6d63Sopenharmony_ci X509* cert = nullptr; 149354aa6d63Sopenharmony_ci STACK_OF(X509)* skCert = sk_X509_new(nullptr); 149454aa6d63Sopenharmony_ci BIO* certBio = BIO_new_file("./hapSign/app-release1.pem", "rb"); 149554aa6d63Sopenharmony_ci if (certBio == nullptr) { 149654aa6d63Sopenharmony_ci sk_X509_pop_free(skCert, X509_free); 149754aa6d63Sopenharmony_ci EXPECT_NE(certBio, nullptr); 149854aa6d63Sopenharmony_ci } 149954aa6d63Sopenharmony_ci // 读取 150054aa6d63Sopenharmony_ci while (1) { 150154aa6d63Sopenharmony_ci cert = PEM_read_bio_X509(certBio, nullptr, nullptr, nullptr); 150254aa6d63Sopenharmony_ci if (cert == nullptr) { 150354aa6d63Sopenharmony_ci break; 150454aa6d63Sopenharmony_ci } 150554aa6d63Sopenharmony_ci sk_X509_push(skCert, cert); 150654aa6d63Sopenharmony_ci } 150754aa6d63Sopenharmony_ci BIO_free(certBio); 150854aa6d63Sopenharmony_ci if (sk_X509_num(skCert) > 1) { 150954aa6d63Sopenharmony_ci X509* firstCert = sk_X509_value(skCert, 0); 151054aa6d63Sopenharmony_ci X509* secondCert = sk_X509_value(skCert, 1); 151154aa6d63Sopenharmony_ci bool val = signProvider->CheckInputCertMatchWithProfile(firstCert, firstCert); 151254aa6d63Sopenharmony_ci val = signProvider->CheckInputCertMatchWithProfile(firstCert, secondCert); 151354aa6d63Sopenharmony_ci EXPECT_EQ(val, false); 151454aa6d63Sopenharmony_ci } 151554aa6d63Sopenharmony_ci sk_X509_pop_free(skCert, X509_free); 151654aa6d63Sopenharmony_ci} 151754aa6d63Sopenharmony_ci 151854aa6d63Sopenharmony_ci/* 151954aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_003 152054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckInputCertMatchWithProfile due to x509 error 152154aa6d63Sopenharmony_ci * @tc.type: FUNC 152254aa6d63Sopenharmony_ci * @tc.require: 152354aa6d63Sopenharmony_ci */ 152454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_003, testing::ext::TestSize.Level1) 152554aa6d63Sopenharmony_ci{ 152654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 152754aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 152854aa6d63Sopenharmony_ci 152954aa6d63Sopenharmony_ci X509* cert = X509_new(); 153054aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 153154aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 153254aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, BuildDN(issuername, issuerReq)); 153354aa6d63Sopenharmony_ci 153454aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 153554aa6d63Sopenharmony_ci X509_set_subject_name(cert, BuildDN(subjectname, issuerReq)); 153654aa6d63Sopenharmony_ci 153754aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 153854aa6d63Sopenharmony_ci X509_REQ* issuerReq1 = X509_REQ_new(); 153954aa6d63Sopenharmony_ci std::string issuername1 = "C=wc,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 154054aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, BuildDN(issuername1, issuerReq1)); 154154aa6d63Sopenharmony_ci 154254aa6d63Sopenharmony_ci std::string subjectname1 = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 154354aa6d63Sopenharmony_ci X509_set_subject_name(cert1, BuildDN(subjectname1, issuerReq1)); 154454aa6d63Sopenharmony_ci 154554aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 154654aa6d63Sopenharmony_ci X509_free(cert); 154754aa6d63Sopenharmony_ci X509_free(cert1); 154854aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 154954aa6d63Sopenharmony_ci X509_REQ_free(issuerReq1); 155054aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 155154aa6d63Sopenharmony_ci} 155254aa6d63Sopenharmony_ci 155354aa6d63Sopenharmony_ci/* 155454aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_004 155554aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckInputCertMatchWithProfile due to subjectname error 155654aa6d63Sopenharmony_ci * @tc.type: FUNC 155754aa6d63Sopenharmony_ci * @tc.require: 155854aa6d63Sopenharmony_ci */ 155954aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_004, testing::ext::TestSize.Level1) 156054aa6d63Sopenharmony_ci{ 156154aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 156254aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 156354aa6d63Sopenharmony_ci 156454aa6d63Sopenharmony_ci X509* cert = X509_new(); 156554aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 156654aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 156754aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, BuildDN(issuername, issuerReq)); 156854aa6d63Sopenharmony_ci CertTools::SetCertSerialNum(cert); 156954aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 157054aa6d63Sopenharmony_ci X509_set_subject_name(cert, BuildDN(subjectname, issuerReq)); 157154aa6d63Sopenharmony_ci 157254aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 157354aa6d63Sopenharmony_ci X509_REQ* issuerReq1 = X509_REQ_new(); 157454aa6d63Sopenharmony_ci std::string issuername1 = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 157554aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, BuildDN(issuername1, issuerReq1)); 157654aa6d63Sopenharmony_ci CertTools::SetCertSerialNum(cert1); 157754aa6d63Sopenharmony_ci std::string subjectname1 = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 157854aa6d63Sopenharmony_ci X509_set_subject_name(cert1, BuildDN(subjectname1, issuerReq1)); 157954aa6d63Sopenharmony_ci 158054aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 158154aa6d63Sopenharmony_ci X509_free(cert); 158254aa6d63Sopenharmony_ci X509_free(cert1); 158354aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 158454aa6d63Sopenharmony_ci X509_REQ_free(issuerReq1); 158554aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 158654aa6d63Sopenharmony_ci} 158754aa6d63Sopenharmony_ci 158854aa6d63Sopenharmony_ci/* 158954aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_005 159054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface CheckParams due to signCode is 3 159154aa6d63Sopenharmony_ci * @tc.type: FUNC 159254aa6d63Sopenharmony_ci * @tc.require: 159354aa6d63Sopenharmony_ci */ 159454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_005, testing::ext::TestSize.Level1) 159554aa6d63Sopenharmony_ci{ 159654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 159754aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 159854aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 159954aa6d63Sopenharmony_ci 160054aa6d63Sopenharmony_ci std::string mode = "remoteSign"; 160154aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 160254aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 160354aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 160454aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 160554aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 160654aa6d63Sopenharmony_ci std::string onlineAuthMode = "/mnt/d/testcpuls/OpenHarmony.p12"; 160754aa6d63Sopenharmony_ci std::string compatibleVersion = "8"; 160854aa6d63Sopenharmony_ci std::string signerPlugin = "/mnt/d/libRemoteSigner.so"; 160954aa6d63Sopenharmony_ci std::string signServer = "/mnt/d/testcpuls/app-release1.pem"; 161054aa6d63Sopenharmony_ci std::string username = "test"; 161154aa6d63Sopenharmony_ci char userPwd[] = "123456"; 161254aa6d63Sopenharmony_ci 161354aa6d63Sopenharmony_ci (*params)["mode"] = mode; 161454aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 161554aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 161654aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 161754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 161854aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 161954aa6d63Sopenharmony_ci (*params)["onlineAuthMode"] = onlineAuthMode; 162054aa6d63Sopenharmony_ci (*params)["compatibleVersion"] = compatibleVersion; 162154aa6d63Sopenharmony_ci (*params)["signerPlugin"] = signerPlugin; 162254aa6d63Sopenharmony_ci (*params)["signServer"] = signServer; 162354aa6d63Sopenharmony_ci (*params)["username"] = username; 162454aa6d63Sopenharmony_ci (*params)["userPwd"] = userPwd; 162554aa6d63Sopenharmony_ci 162654aa6d63Sopenharmony_ci (*params)["signCode"] = std::string("3"); 162754aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 162854aa6d63Sopenharmony_ci EXPECT_EQ(retParam, false); 162954aa6d63Sopenharmony_ci} 163054aa6d63Sopenharmony_ci 163154aa6d63Sopenharmony_ci/* 163254aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_006 163354aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface CheckParams 163454aa6d63Sopenharmony_ci * @tc.type: FUNC 163554aa6d63Sopenharmony_ci * @tc.require: 163654aa6d63Sopenharmony_ci */ 163754aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_006, testing::ext::TestSize.Level1) 163854aa6d63Sopenharmony_ci{ 163954aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 164054aa6d63Sopenharmony_ci std::unique_ptr<SignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 164154aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 164254aa6d63Sopenharmony_ci 164354aa6d63Sopenharmony_ci std::string mode = "remoteSign"; 164454aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 164554aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 164654aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 164754aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 164854aa6d63Sopenharmony_ci std::string outFile = "./hapSign/phone-default-signed.hap"; 164954aa6d63Sopenharmony_ci std::string onlineAuthMode = "/mnt/d/testcpuls/OpenHarmony.p12"; 165054aa6d63Sopenharmony_ci std::string compatibleVersion = "8"; 165154aa6d63Sopenharmony_ci std::string signerPlugin = "/mnt/d/libRemoteSigner.so"; 165254aa6d63Sopenharmony_ci std::string signServer = "/mnt/d/testcpuls/app-release1.pem"; 165354aa6d63Sopenharmony_ci std::string username = "test"; 165454aa6d63Sopenharmony_ci char userPwd[] = "123456"; 165554aa6d63Sopenharmony_ci 165654aa6d63Sopenharmony_ci (*params)["mode"] = mode; 165754aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 165854aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 165954aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 166054aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 166154aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 166254aa6d63Sopenharmony_ci (*params)["onlineAuthMode"] = onlineAuthMode; 166354aa6d63Sopenharmony_ci (*params)["compatibleVersion"] = compatibleVersion; 166454aa6d63Sopenharmony_ci (*params)["signerPlugin"] = signerPlugin; 166554aa6d63Sopenharmony_ci (*params)["signServer"] = signServer; 166654aa6d63Sopenharmony_ci (*params)["username"] = username; 166754aa6d63Sopenharmony_ci (*params)["userPwd"] = userPwd; 166854aa6d63Sopenharmony_ci bool retParam = signProvider->CheckParams(params.get()); 166954aa6d63Sopenharmony_ci EXPECT_EQ(retParam, true); 167054aa6d63Sopenharmony_ci} 167154aa6d63Sopenharmony_ci 167254aa6d63Sopenharmony_ci/* 167354aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_007 167454aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to X509_NAME error 167554aa6d63Sopenharmony_ci * @tc.type: FUNC 167654aa6d63Sopenharmony_ci * @tc.require: 167754aa6d63Sopenharmony_ci */ 167854aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_007, testing::ext::TestSize.Level1) 167954aa6d63Sopenharmony_ci{ 168054aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 168154aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 168254aa6d63Sopenharmony_ci 168354aa6d63Sopenharmony_ci X509* cert = X509_new(); 168454aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 168554aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 168654aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 168754aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, BuildDN(issuername, issuerReq)); 168854aa6d63Sopenharmony_ci 168954aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 169054aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 169154aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 169254aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 169354aa6d63Sopenharmony_ci 169454aa6d63Sopenharmony_ci X509_REQ* issuerReq1 = X509_REQ_new(); 169554aa6d63Sopenharmony_ci std::string issuername1 = "C=wc,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 169654aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, BuildDN(issuername1, issuerReq1)); 169754aa6d63Sopenharmony_ci 169854aa6d63Sopenharmony_ci std::string subjectname1 = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 169954aa6d63Sopenharmony_ci 170054aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 170154aa6d63Sopenharmony_ci X509_free(cert); 170254aa6d63Sopenharmony_ci X509_free(cert1); 170354aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 170454aa6d63Sopenharmony_ci X509_REQ_free(issuerReq1); 170554aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 170654aa6d63Sopenharmony_ci} 170754aa6d63Sopenharmony_ci 170854aa6d63Sopenharmony_ci/* 170954aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_008 171054aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to EVP_PKEY error 171154aa6d63Sopenharmony_ci * @tc.type: FUNC 171254aa6d63Sopenharmony_ci * @tc.require: 171354aa6d63Sopenharmony_ci */ 171454aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_008, testing::ext::TestSize.Level1) 171554aa6d63Sopenharmony_ci{ 171654aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 171754aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 171854aa6d63Sopenharmony_ci 171954aa6d63Sopenharmony_ci X509* cert = X509_new(); 172054aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 172154aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 172254aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 172354aa6d63Sopenharmony_ci X509_NAME* issName = BuildDN(issuername, issuerReq); 172454aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, issName); 172554aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, issName); 172654aa6d63Sopenharmony_ci 172754aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 172854aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 172954aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 173054aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 173154aa6d63Sopenharmony_ci KeyStoreHelper stroe; 173254aa6d63Sopenharmony_ci EVP_PKEY* key1 = stroe.GenerateKeyPair("ECC", 256); 173354aa6d63Sopenharmony_ci EVP_PKEY* key2 = stroe.GenerateKeyPair("ECC", 256); 173454aa6d63Sopenharmony_ci 173554aa6d63Sopenharmony_ci X509_set_pubkey(cert, key1); 173654aa6d63Sopenharmony_ci X509_set_pubkey(cert1, key2); 173754aa6d63Sopenharmony_ci 173854aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 173954aa6d63Sopenharmony_ci X509_free(cert); 174054aa6d63Sopenharmony_ci X509_free(cert1); 174154aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 174254aa6d63Sopenharmony_ci EVP_PKEY_free(key1); 174354aa6d63Sopenharmony_ci EVP_PKEY_free(key2); 174454aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 174554aa6d63Sopenharmony_ci} 174654aa6d63Sopenharmony_ci/* 174754aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_009 174854aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to EVP_PKEY error 174954aa6d63Sopenharmony_ci * @tc.type: FUNC 175054aa6d63Sopenharmony_ci * @tc.require: 175154aa6d63Sopenharmony_ci */ 175254aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_009, testing::ext::TestSize.Level1) 175354aa6d63Sopenharmony_ci{ 175454aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 175554aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 175654aa6d63Sopenharmony_ci 175754aa6d63Sopenharmony_ci X509* cert = X509_new(); 175854aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 175954aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 176054aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 176154aa6d63Sopenharmony_ci X509_NAME* issName = BuildDN(issuername, issuerReq); 176254aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, issName); 176354aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, issName); 176454aa6d63Sopenharmony_ci 176554aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 176654aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 176754aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 176854aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 176954aa6d63Sopenharmony_ci KeyStoreHelper stroe; 177054aa6d63Sopenharmony_ci EVP_PKEY* key1 = stroe.GenerateKeyPair("ECC", 256); 177154aa6d63Sopenharmony_ci EVP_PKEY* key2 = stroe.GenerateKeyPair("ECC", 256); 177254aa6d63Sopenharmony_ci 177354aa6d63Sopenharmony_ci X509_set_pubkey(cert, key1); 177454aa6d63Sopenharmony_ci X509_set_pubkey(cert1, key2); 177554aa6d63Sopenharmony_ci 177654aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, nullptr); 177754aa6d63Sopenharmony_ci X509_free(cert); 177854aa6d63Sopenharmony_ci X509_free(cert1); 177954aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 178054aa6d63Sopenharmony_ci EVP_PKEY_free(key1); 178154aa6d63Sopenharmony_ci EVP_PKEY_free(key2); 178254aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 178354aa6d63Sopenharmony_ci} 178454aa6d63Sopenharmony_ci 178554aa6d63Sopenharmony_ci/* 178654aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_010 178754aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to EVP_PKEY error 178854aa6d63Sopenharmony_ci * @tc.type: FUNC 178954aa6d63Sopenharmony_ci * @tc.require: 179054aa6d63Sopenharmony_ci */ 179154aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_010, testing::ext::TestSize.Level1) 179254aa6d63Sopenharmony_ci{ 179354aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 179454aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 179554aa6d63Sopenharmony_ci 179654aa6d63Sopenharmony_ci X509* cert = X509_new(); 179754aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 179854aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 179954aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 180054aa6d63Sopenharmony_ci X509_NAME* issName = BuildDN(issuername, issuerReq); 180154aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, issName); 180254aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, issName); 180354aa6d63Sopenharmony_ci 180454aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 180554aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 180654aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 180754aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 180854aa6d63Sopenharmony_ci KeyStoreHelper stroe; 180954aa6d63Sopenharmony_ci EVP_PKEY* key1 = stroe.GenerateKeyPair("ECC", 256); 181054aa6d63Sopenharmony_ci 181154aa6d63Sopenharmony_ci X509_set_pubkey(cert, key1); 181254aa6d63Sopenharmony_ci 181354aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 181454aa6d63Sopenharmony_ci X509_free(cert); 181554aa6d63Sopenharmony_ci X509_free(cert1); 181654aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 181754aa6d63Sopenharmony_ci EVP_PKEY_free(key1); 181854aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 181954aa6d63Sopenharmony_ci} 182054aa6d63Sopenharmony_ci 182154aa6d63Sopenharmony_ci/* 182254aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_011 182354aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to EVP_PKEY error 182454aa6d63Sopenharmony_ci * @tc.type: FUNC 182554aa6d63Sopenharmony_ci * @tc.require: 182654aa6d63Sopenharmony_ci */ 182754aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_011, testing::ext::TestSize.Level1) 182854aa6d63Sopenharmony_ci{ 182954aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 183054aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 183154aa6d63Sopenharmony_ci 183254aa6d63Sopenharmony_ci X509* cert = X509_new(); 183354aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 183454aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 183554aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 183654aa6d63Sopenharmony_ci X509_NAME* issName = BuildDN(issuername, issuerReq); 183754aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, issName); 183854aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, issName); 183954aa6d63Sopenharmony_ci 184054aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 184154aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 184254aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 184354aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 184454aa6d63Sopenharmony_ci KeyStoreHelper stroe; 184554aa6d63Sopenharmony_ci EVP_PKEY* key2 = stroe.GenerateKeyPair("ECC", 256); 184654aa6d63Sopenharmony_ci 184754aa6d63Sopenharmony_ci X509_set_pubkey(cert1, key2); 184854aa6d63Sopenharmony_ci 184954aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 185054aa6d63Sopenharmony_ci X509_free(cert); 185154aa6d63Sopenharmony_ci X509_free(cert1); 185254aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 185354aa6d63Sopenharmony_ci EVP_PKEY_free(key2); 185454aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 185554aa6d63Sopenharmony_ci} 185654aa6d63Sopenharmony_ci 185754aa6d63Sopenharmony_ci/* 185854aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_012 185954aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface CheckInputCertMatchWithProfile due to EVP_PKEY error 186054aa6d63Sopenharmony_ci * @tc.type: FUNC 186154aa6d63Sopenharmony_ci * @tc.require: 186254aa6d63Sopenharmony_ci */ 186354aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_012, testing::ext::TestSize.Level1) 186454aa6d63Sopenharmony_ci{ 186554aa6d63Sopenharmony_ci SIGNATURE_TOOLS_LOGI("hello world !!!"); 186654aa6d63Sopenharmony_ci std::unique_ptr<RemoteSignProvider> signProvider = std::make_unique<RemoteSignProvider>(); 186754aa6d63Sopenharmony_ci 186854aa6d63Sopenharmony_ci X509* cert = X509_new(); 186954aa6d63Sopenharmony_ci X509* cert1 = X509_new(); 187054aa6d63Sopenharmony_ci X509_REQ* issuerReq = X509_REQ_new(); 187154aa6d63Sopenharmony_ci std::string issuername = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 187254aa6d63Sopenharmony_ci X509_NAME* issName = BuildDN(issuername, issuerReq); 187354aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert, issName); 187454aa6d63Sopenharmony_ci CertTools::SetCertIssuerName(cert1, issName); 187554aa6d63Sopenharmony_ci 187654aa6d63Sopenharmony_ci std::string subjectname = "C=CN,O=OpenHarmony,OU=OpenHarmony Community,CN=Application Signature Service CA"; 187754aa6d63Sopenharmony_ci X509_NAME* subName = BuildDN(subjectname, issuerReq); 187854aa6d63Sopenharmony_ci X509_set_subject_name(cert, subName); 187954aa6d63Sopenharmony_ci X509_set_subject_name(cert1, subName); 188054aa6d63Sopenharmony_ci KeyStoreHelper stroe; 188154aa6d63Sopenharmony_ci 188254aa6d63Sopenharmony_ci bool ret = signProvider->CheckInputCertMatchWithProfile(cert1, cert); 188354aa6d63Sopenharmony_ci X509_free(cert); 188454aa6d63Sopenharmony_ci X509_free(cert1); 188554aa6d63Sopenharmony_ci X509_REQ_free(issuerReq); 188654aa6d63Sopenharmony_ci EXPECT_EQ(ret, false); 188754aa6d63Sopenharmony_ci} 188854aa6d63Sopenharmony_ci 188954aa6d63Sopenharmony_ci/** 189054aa6d63Sopenharmony_ci * @tc.name: remote_sign_provider_013 189154aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface Sign due to parameter signerPlugin error 189254aa6d63Sopenharmony_ci * @tc.type: FUNC 189354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL 189454aa6d63Sopenharmony_ci */ 189554aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, remote_sign_provider_013, testing::ext::TestSize.Level1) 189654aa6d63Sopenharmony_ci{ 189754aa6d63Sopenharmony_ci std::string mode = "remoteSign"; 189854aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 189954aa6d63Sopenharmony_ci std::string profileFile = "./hapSign/signed-profile.p7b"; 190054aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 190154aa6d63Sopenharmony_ci std::string signCode = "1"; 190254aa6d63Sopenharmony_ci std::string compatibleVersion = "8"; 190354aa6d63Sopenharmony_ci std::string inFile = "./hapSign/phone-default-unsigned.hap"; 190454aa6d63Sopenharmony_ci std::string outFile = "./hapSign/signed.hap"; 190554aa6d63Sopenharmony_ci std::string signServer = "./hapSign/app-release1.pem"; 190654aa6d63Sopenharmony_ci std::string signerPlugin = "./hapSign/dummy.z.so"; 190754aa6d63Sopenharmony_ci std::string onlineAuthMode = "./hapSign/ohtest.p12"; 190854aa6d63Sopenharmony_ci std::string username = "123456"; 190954aa6d63Sopenharmony_ci char userPwd[] = "123456"; 191054aa6d63Sopenharmony_ci 191154aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 191254aa6d63Sopenharmony_ci (*params)["mode"] = mode; 191354aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 191454aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 191554aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 191654aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 191754aa6d63Sopenharmony_ci (*params)["compatibleVersion"] = compatibleVersion; 191854aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 191954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 192054aa6d63Sopenharmony_ci (*params)["signServer"] = signServer; 192154aa6d63Sopenharmony_ci (*params)["onlineAuthMode"] = onlineAuthMode; 192254aa6d63Sopenharmony_ci (*params)["username"] = username; 192354aa6d63Sopenharmony_ci (*params)["userPwd"] = userPwd; 192454aa6d63Sopenharmony_ci // the signerPlugin dummy.z.so is not exist 192554aa6d63Sopenharmony_ci (*params)["signerPlugin"] = signerPlugin; 192654aa6d63Sopenharmony_ci 192754aa6d63Sopenharmony_ci auto remoteSignProvider = std::make_unique<RemoteSignProvider>(); 192854aa6d63Sopenharmony_ci ASSERT_FALSE(remoteSignProvider->Sign(params.get())); 192954aa6d63Sopenharmony_ci} 193054aa6d63Sopenharmony_ci 193154aa6d63Sopenharmony_ci/* 193254aa6d63Sopenharmony_ci * @tc.name: hap_sign_error_001 193354aa6d63Sopenharmony_ci * @tc.desc: This function tests failed for interface Sign due to parameter path not exist 193454aa6d63Sopenharmony_ci * @tc.type: FUNC 193554aa6d63Sopenharmony_ci * @tc.require: 193654aa6d63Sopenharmony_ci */ 193754aa6d63Sopenharmony_ciHWTEST_F(HapSignTest, hap_sign_error_001, testing::ext::TestSize.Level1) 193854aa6d63Sopenharmony_ci{ 193954aa6d63Sopenharmony_ci ByteBuffer bf1("123456789", 9); 194054aa6d63Sopenharmony_ci ByteBuffer bf2("123456789", 9); 194154aa6d63Sopenharmony_ci ByteBuffer bf3("123456789", 9); 194254aa6d63Sopenharmony_ci ByteBuffer bf4(0x7FFFFFFF); 194354aa6d63Sopenharmony_ci ByteBufferDataSource ds1(bf1); 194454aa6d63Sopenharmony_ci ByteBufferDataSource ds2(bf2); 194554aa6d63Sopenharmony_ci ByteBufferDataSource ds3(bf3); 194654aa6d63Sopenharmony_ci DataSource* contents[] = {&ds1, &ds2, &ds3}; 194754aa6d63Sopenharmony_ci std::vector<OptionalBlock> optionalBlocks; 194854aa6d63Sopenharmony_ci optionalBlocks.push_back({HapUtils::HAP_PROFILE_BLOCK_ID, bf4}); 194954aa6d63Sopenharmony_ci std::shared_ptr<Options> params = std::make_shared<Options>(); 195054aa6d63Sopenharmony_ci std::string mode = "localSign"; 195154aa6d63Sopenharmony_ci std::string keyAlias = "oh-app1-key-v1"; 195254aa6d63Sopenharmony_ci std::string signAlg = "SHA256withECDSA"; 195354aa6d63Sopenharmony_ci std::string signCode = "1"; 195454aa6d63Sopenharmony_ci std::string appCertFile = "/mnt/d/testcpuls/app-release1.pem"; 195554aa6d63Sopenharmony_ci std::string profileFile = "/mnt/d/testcpuls/signed-profile.p7b"; 195654aa6d63Sopenharmony_ci std::string inFile = "/mnt/d/testcpuls/entry-default-unsigned-so.hap"; 195754aa6d63Sopenharmony_ci std::string keystoreFile = "/mnt/d/testcpuls/OpenHarmony.p12"; 195854aa6d63Sopenharmony_ci std::string outFile = "/mnt/d/testcpuls/entry-default-signed-so.hap"; 195954aa6d63Sopenharmony_ci char keyPwd[] = "123456"; 196054aa6d63Sopenharmony_ci char keystorePwd[] = "123456"; 196154aa6d63Sopenharmony_ci (*params)["mode"] = mode; 196254aa6d63Sopenharmony_ci (*params)["keyAlias"] = keyAlias; 196354aa6d63Sopenharmony_ci (*params)["signAlg"] = signAlg; 196454aa6d63Sopenharmony_ci (*params)["signCode"] = signCode; 196554aa6d63Sopenharmony_ci (*params)["appCertFile"] = appCertFile; 196654aa6d63Sopenharmony_ci (*params)["profileFile"] = profileFile; 196754aa6d63Sopenharmony_ci (*params)["inFile"] = inFile; 196854aa6d63Sopenharmony_ci (*params)["keystoreFile"] = keystoreFile; 196954aa6d63Sopenharmony_ci (*params)["outFile"] = outFile; 197054aa6d63Sopenharmony_ci (*params)["keyPwd"] = keyPwd; 197154aa6d63Sopenharmony_ci (*params)["keystorePwd"] = keystorePwd; 197254aa6d63Sopenharmony_ci SignerConfig config; 197354aa6d63Sopenharmony_ci std::vector<SignatureAlgorithmHelper> sig{SignatureAlgorithmHelper::ECDSA_WITH_SHA256_INSTANCE}; 197454aa6d63Sopenharmony_ci config.SetSignatureAlgorithms(sig); 197554aa6d63Sopenharmony_ci config.SetOptions(params.get()); 197654aa6d63Sopenharmony_ci ByteBuffer result; 197754aa6d63Sopenharmony_ci bool ret1 = SignHap::Sign(contents, 3, config, optionalBlocks, result); 197854aa6d63Sopenharmony_ci EXPECT_EQ(ret1, false); 197954aa6d63Sopenharmony_ci} 198054aa6d63Sopenharmony_ci} // namespace SignatureTools 198154aa6d63Sopenharmony_ci} // namespace OHOS