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 "sign_provider_test.h"
1654aa6d63Sopenharmony_ci#include "params_run_tool.h"
1754aa6d63Sopenharmony_ci#include "local_sign_provider.h"
1854aa6d63Sopenharmony_ci#include "remote_sign_provider.h"
1954aa6d63Sopenharmony_ci#include "sign_hap.h"
2054aa6d63Sopenharmony_ci#include "sign_provider.h"
2154aa6d63Sopenharmony_ci#include "sign_tool_service_impl.h"
2254aa6d63Sopenharmony_ci#include <unistd.h>
2354aa6d63Sopenharmony_ci
2454aa6d63Sopenharmony_cinamespace OHOS {
2554aa6d63Sopenharmony_cinamespace SignatureTools {
2654aa6d63Sopenharmony_ci
2754aa6d63Sopenharmony_civoid GenUnvaildUnProviderHap(const std::string& path)
2854aa6d63Sopenharmony_ci{
2954aa6d63Sopenharmony_ci    std::ofstream outfile(path);
3054aa6d63Sopenharmony_ci    if (!outfile) {
3154aa6d63Sopenharmony_ci        SIGNATURE_TOOLS_LOGE("Unable to open file: %s", path.c_str());
3254aa6d63Sopenharmony_ci        return;
3354aa6d63Sopenharmony_ci    }
3454aa6d63Sopenharmony_ci    outfile << "Hello, this is a Unvaild un provider Hap.\n";
3554aa6d63Sopenharmony_ci    outfile.flush();
3654aa6d63Sopenharmony_ci    outfile.close();
3754aa6d63Sopenharmony_ci    return;
3854aa6d63Sopenharmony_ci}
3954aa6d63Sopenharmony_ci
4054aa6d63Sopenharmony_civoid SignProviderTest::SetUpTestCase(void)
4154aa6d63Sopenharmony_ci{
4254aa6d63Sopenharmony_ci    GenUnvaildUnProviderHap("./hapSign/phone-default-unsigned");
4354aa6d63Sopenharmony_ci    GenUnvaildUnProviderHap("./hapSign/phone-default-unsigned.txt");
4454aa6d63Sopenharmony_ci    GenUnvaildUnProviderHap("./hapSign/nohap.hap");
4554aa6d63Sopenharmony_ci
4654aa6d63Sopenharmony_ci    (void)rename("./hapSign/packages/phone-default-unsigned-test.txt", "./hapSign/phone-default-unsigned-test.hap");
4754aa6d63Sopenharmony_ci    (void)rename("./hapSign/packages/phone-default-unsigned.txt", "./hapSign/phone-default-unsigned.hap");
4854aa6d63Sopenharmony_ci    (void)rename("./hapSign/packages/unsigned_with_cd_and_eocd.txt", "./hapSign/unsigned_with_cd_and_eocd.hap");
4954aa6d63Sopenharmony_ci    (void)rename("./hapSign/packages/unsigned_with_eocd.txt", "./hapSign/unsigned_with_eocd.hap");
5054aa6d63Sopenharmony_ci    (void)rename("./codeSigning/unsigned-file.txt", "./codeSigning/unsigned-file.hap");
5154aa6d63Sopenharmony_ci    sync();
5254aa6d63Sopenharmony_ci}
5354aa6d63Sopenharmony_ci
5454aa6d63Sopenharmony_civoid SignProviderTest::TearDownTestCase(void)
5554aa6d63Sopenharmony_ci{
5654aa6d63Sopenharmony_ci}
5754aa6d63Sopenharmony_ci
5854aa6d63Sopenharmony_ci/*
5954aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_001
6054aa6d63Sopenharmony_ci * @tc.desc: This function tests success for interface Sign
6154aa6d63Sopenharmony_ci * @tc.type: FUNC
6254aa6d63Sopenharmony_ci * @tc.require:
6354aa6d63Sopenharmony_ci */
6454aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_001, testing::ext::TestSize.Level1)
6554aa6d63Sopenharmony_ci{
6654aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
6754aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
6854aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
6954aa6d63Sopenharmony_ci
7054aa6d63Sopenharmony_ci    std::string mode = "localSign";
7154aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
7254aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
7354aa6d63Sopenharmony_ci    std::string signCode = "0";
7454aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
7554aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
7654aa6d63Sopenharmony_ci    std::string profileSigned = "1";
7754aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned-test.hap";
7854aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
7954aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-unsigned-test.hap";
8054aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
8154aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
8254aa6d63Sopenharmony_ci
8354aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
8454aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
8554aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
8654aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
8754aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
8854aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
8954aa6d63Sopenharmony_ci    (*params)["profileSigned"] = profileSigned;
9054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
9154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
9254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
9354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
9454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
9554aa6d63Sopenharmony_ci
9654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
9754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, true);
9854aa6d63Sopenharmony_ci}
9954aa6d63Sopenharmony_ci/*
10054aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_002
10154aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter compatibleVersion is not int
10254aa6d63Sopenharmony_ci * @tc.type: FUNC
10354aa6d63Sopenharmony_ci * @tc.require:
10454aa6d63Sopenharmony_ci */
10554aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_002, testing::ext::TestSize.Level1)
10654aa6d63Sopenharmony_ci{
10754aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
10854aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
10954aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
11054aa6d63Sopenharmony_ci
11154aa6d63Sopenharmony_ci    std::string mode = "localSign";
11254aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
11354aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
11454aa6d63Sopenharmony_ci    std::string signCode = "1";
11554aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
11654aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
11754aa6d63Sopenharmony_ci    std::string profileSigned = "1";
11854aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
11954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
12054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
12154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
12254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
12354aa6d63Sopenharmony_ci
12454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
12554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
12654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
12754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
12854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
12954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
13054aa6d63Sopenharmony_ci    (*params)["profileSigned"] = profileSigned;
13154aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
13254aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
13354aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
13454aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
13554aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
13654aa6d63Sopenharmony_ci
13754aa6d63Sopenharmony_ci    (*params)["compatibleVersion"] = std::string("a");
13854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
13954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
14054aa6d63Sopenharmony_ci}
14154aa6d63Sopenharmony_ci
14254aa6d63Sopenharmony_ci/*
14354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_003
14454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile format error
14554aa6d63Sopenharmony_ci * @tc.type: FUNC
14654aa6d63Sopenharmony_ci * @tc.require:
14754aa6d63Sopenharmony_ci */
14854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_003, testing::ext::TestSize.Level1)
14954aa6d63Sopenharmony_ci{
15054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
15154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
15254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
15354aa6d63Sopenharmony_ci
15454aa6d63Sopenharmony_ci    std::string mode = "localSign";
15554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
15654aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
15754aa6d63Sopenharmony_ci    std::string signCode = "1";
15854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
15954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
16054aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned";
16154aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
16254aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
16354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
16454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
16554aa6d63Sopenharmony_ci
16654aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
16754aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
16854aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
16954aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
17054aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
17154aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
17254aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
17354aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
17454aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
17554aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
17654aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
17754aa6d63Sopenharmony_ci
17854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
17954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
18054aa6d63Sopenharmony_ci}
18154aa6d63Sopenharmony_ci
18254aa6d63Sopenharmony_ci/*
18354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_004
18454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter compatibleVersion is not int
18554aa6d63Sopenharmony_ci * @tc.type: FUNC
18654aa6d63Sopenharmony_ci * @tc.require:
18754aa6d63Sopenharmony_ci */
18854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_004, testing::ext::TestSize.Level1)
18954aa6d63Sopenharmony_ci{
19054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
19154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
19254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
19354aa6d63Sopenharmony_ci
19454aa6d63Sopenharmony_ci    std::string mode = "localSign";
19554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
19654aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
19754aa6d63Sopenharmony_ci    std::string signCode = "1";
19854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
19954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
20054aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
20154aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
20254aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
20354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
20454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
20554aa6d63Sopenharmony_ci    std::string compatibleVersion = "a";
20654aa6d63Sopenharmony_ci
20754aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
20854aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
20954aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
21054aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
21154aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
21254aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
21354aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
21454aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
21554aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
21654aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
21754aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
21854aa6d63Sopenharmony_ci    (*params)["compatibleVersion"] = compatibleVersion;
21954aa6d63Sopenharmony_ci
22054aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
22154aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
22254aa6d63Sopenharmony_ci}
22354aa6d63Sopenharmony_ci
22454aa6d63Sopenharmony_ci/*
22554aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_005
22654aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter compatibleVersion is not int
22754aa6d63Sopenharmony_ci * @tc.type: FUNC
22854aa6d63Sopenharmony_ci * @tc.require:
22954aa6d63Sopenharmony_ci */
23054aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_005, testing::ext::TestSize.Level1)
23154aa6d63Sopenharmony_ci{
23254aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
23354aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
23454aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
23554aa6d63Sopenharmony_ci
23654aa6d63Sopenharmony_ci    std::string mode = "localSign";
23754aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
23854aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
23954aa6d63Sopenharmony_ci    std::string signCode = "1";
24054aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
24154aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
24254aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
24354aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
24454aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
24554aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
24654aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
24754aa6d63Sopenharmony_ci    std::string property = "./hapSign/signed-profile.p7b";
24854aa6d63Sopenharmony_ci    std::string proof = "./hapSign/signed-profile.p7b";
24954aa6d63Sopenharmony_ci
25054aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
25154aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
25254aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
25354aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
25454aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
25554aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
25654aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
25754aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
25854aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
25954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
26054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
26154aa6d63Sopenharmony_ci    (*params)["property"] = property;
26254aa6d63Sopenharmony_ci    (*params)["proof"] = proof;
26354aa6d63Sopenharmony_ci
26454aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
26554aa6d63Sopenharmony_ci    EXPECT_EQ(ret, true);
26654aa6d63Sopenharmony_ci}
26754aa6d63Sopenharmony_ci
26854aa6d63Sopenharmony_ci/*
26954aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_006
27054aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter property is not exist
27154aa6d63Sopenharmony_ci * @tc.type: FUNC
27254aa6d63Sopenharmony_ci * @tc.require:
27354aa6d63Sopenharmony_ci */
27454aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_006, testing::ext::TestSize.Level1)
27554aa6d63Sopenharmony_ci{
27654aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
27754aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
27854aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
27954aa6d63Sopenharmony_ci
28054aa6d63Sopenharmony_ci    std::string mode = "localSign";
28154aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
28254aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
28354aa6d63Sopenharmony_ci    std::string signCode = "1";
28454aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
28554aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
28654aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
28754aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
28854aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
28954aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
29054aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
29154aa6d63Sopenharmony_ci    std::string property = "./hapSign/signed-nohavaprofile.p7b";
29254aa6d63Sopenharmony_ci    std::string proof = "./hapSign/signed-profile.p7b";
29354aa6d63Sopenharmony_ci
29454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
29554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
29654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
29754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
29854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
29954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
30054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
30154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
30254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
30354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
30454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
30554aa6d63Sopenharmony_ci    (*params)["property"] = property;
30654aa6d63Sopenharmony_ci    (*params)["proof"] = proof;
30754aa6d63Sopenharmony_ci
30854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
30954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
31054aa6d63Sopenharmony_ci}
31154aa6d63Sopenharmony_ci
31254aa6d63Sopenharmony_ci/*
31354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_007
31454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter property is not exist
31554aa6d63Sopenharmony_ci * @tc.type: FUNC
31654aa6d63Sopenharmony_ci * @tc.require:
31754aa6d63Sopenharmony_ci */
31854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_007, testing::ext::TestSize.Level1)
31954aa6d63Sopenharmony_ci{
32054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
32154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
32254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
32354aa6d63Sopenharmony_ci
32454aa6d63Sopenharmony_ci    std::string mode = "localSign";
32554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
32654aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
32754aa6d63Sopenharmony_ci    std::string signCode = "1";
32854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
32954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-nohaveprofile.p7b";
33054aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
33154aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
33254aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
33354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
33454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
33554aa6d63Sopenharmony_ci    std::string property = "./hapSign/signed-profile.p7b";
33654aa6d63Sopenharmony_ci    std::string proof = "./hapSign/signed-profile.p7b";
33754aa6d63Sopenharmony_ci
33854aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
33954aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
34054aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
34154aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
34254aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
34354aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
34454aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
34554aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
34654aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
34754aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
34854aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
34954aa6d63Sopenharmony_ci    (*params)["property"] = property;
35054aa6d63Sopenharmony_ci    (*params)["proof"] = proof;
35154aa6d63Sopenharmony_ci
35254aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
35354aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
35454aa6d63Sopenharmony_ci}
35554aa6d63Sopenharmony_ci
35654aa6d63Sopenharmony_ci/*
35754aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_008
35854aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter proof is not exist
35954aa6d63Sopenharmony_ci * @tc.type: FUNC
36054aa6d63Sopenharmony_ci * @tc.require:
36154aa6d63Sopenharmony_ci */
36254aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_008, testing::ext::TestSize.Level1)
36354aa6d63Sopenharmony_ci{
36454aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
36554aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
36654aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
36754aa6d63Sopenharmony_ci
36854aa6d63Sopenharmony_ci    std::string mode = "localSign";
36954aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
37054aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
37154aa6d63Sopenharmony_ci    std::string signCode = "1";
37254aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
37354aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
37454aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
37554aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
37654aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
37754aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
37854aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
37954aa6d63Sopenharmony_ci    std::string property = "./hapSign/signed-profile.p7b";
38054aa6d63Sopenharmony_ci    std::string proof = "./hapSign/signed-nohaveprofile.p7b";
38154aa6d63Sopenharmony_ci
38254aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
38354aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
38454aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
38554aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
38654aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
38754aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
38854aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
38954aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
39054aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
39154aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
39254aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
39354aa6d63Sopenharmony_ci    (*params)["property"] = property;
39454aa6d63Sopenharmony_ci    (*params)["proof"] = proof;
39554aa6d63Sopenharmony_ci
39654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
39754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, true);
39854aa6d63Sopenharmony_ci}
39954aa6d63Sopenharmony_ci
40054aa6d63Sopenharmony_ci/*
40154aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_009
40254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile is not exist
40354aa6d63Sopenharmony_ci * @tc.type: FUNC
40454aa6d63Sopenharmony_ci * @tc.require:
40554aa6d63Sopenharmony_ci */
40654aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_009, testing::ext::TestSize.Level1)
40754aa6d63Sopenharmony_ci{
40854aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
40954aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
41054aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
41154aa6d63Sopenharmony_ci
41254aa6d63Sopenharmony_ci    std::string mode = "localSign";
41354aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
41454aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
41554aa6d63Sopenharmony_ci    std::string signCode = "1";
41654aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
41754aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
41854aa6d63Sopenharmony_ci    std::string inFile = "./hapSign_test/phone-default-unsigned.hap";
41954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
42054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
42154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
42254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
42354aa6d63Sopenharmony_ci
42454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
42554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
42654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
42754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
42854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
42954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
43054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
43154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
43254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
43354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
43454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
43554aa6d63Sopenharmony_ci
43654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
43754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
43854aa6d63Sopenharmony_ci}
43954aa6d63Sopenharmony_ci
44054aa6d63Sopenharmony_ci/*
44154aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_010
44254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile is not exist
44354aa6d63Sopenharmony_ci * @tc.type: FUNC
44454aa6d63Sopenharmony_ci * @tc.require:
44554aa6d63Sopenharmony_ci */
44654aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_010, testing::ext::TestSize.Level1)
44754aa6d63Sopenharmony_ci{
44854aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
44954aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
45054aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
45154aa6d63Sopenharmony_ci
45254aa6d63Sopenharmony_ci    std::string mode = "localSign";
45354aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
45454aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
45554aa6d63Sopenharmony_ci    std::string signCode = "1";
45654aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
45754aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
45854aa6d63Sopenharmony_ci    std::string inFile = "./hapSign";
45954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
46054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
46154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
46254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
46354aa6d63Sopenharmony_ci
46454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
46554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
46654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
46754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
46854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
46954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
47054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
47154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
47254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
47354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
47454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
47554aa6d63Sopenharmony_ci
47654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
47754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
47854aa6d63Sopenharmony_ci}
47954aa6d63Sopenharmony_ci
48054aa6d63Sopenharmony_ci/*
48154aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_011
48254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile is not exist
48354aa6d63Sopenharmony_ci * @tc.type: FUNC
48454aa6d63Sopenharmony_ci * @tc.require:
48554aa6d63Sopenharmony_ci */
48654aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_011, testing::ext::TestSize.Level1)
48754aa6d63Sopenharmony_ci{
48854aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
48954aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
49054aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
49154aa6d63Sopenharmony_ci
49254aa6d63Sopenharmony_ci    std::string mode = "localSign";
49354aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
49454aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
49554aa6d63Sopenharmony_ci    std::string signCode = "1";
49654aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
49754aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
49854aa6d63Sopenharmony_ci    std::string inFile = "";
49954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
50054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
50154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
50254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
50354aa6d63Sopenharmony_ci
50454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
50554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
50654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
50754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
50854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
50954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
51054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
51154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
51254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
51354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
51454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
51554aa6d63Sopenharmony_ci
51654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
51754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
51854aa6d63Sopenharmony_ci}
51954aa6d63Sopenharmony_ci
52054aa6d63Sopenharmony_ci/*
52154aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_012
52254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter profileFile is not exist
52354aa6d63Sopenharmony_ci * @tc.type: FUNC
52454aa6d63Sopenharmony_ci * @tc.require:
52554aa6d63Sopenharmony_ci */
52654aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_012, testing::ext::TestSize.Level1)
52754aa6d63Sopenharmony_ci{
52854aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
52954aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
53054aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
53154aa6d63Sopenharmony_ci
53254aa6d63Sopenharmony_ci    std::string mode = "localSign";
53354aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
53454aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
53554aa6d63Sopenharmony_ci    std::string signCode = "1";
53654aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
53754aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-nohava-profile.p7b";
53854aa6d63Sopenharmony_ci    std::string inFile = "./hapSign_test/phone-default-unsigned.hap";
53954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
54054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
54154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
54254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
54354aa6d63Sopenharmony_ci
54454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
54554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
54654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
54754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
54854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
54954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
55054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
55154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
55254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
55354aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
55454aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
55554aa6d63Sopenharmony_ci
55654aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
55754aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
55854aa6d63Sopenharmony_ci}
55954aa6d63Sopenharmony_ci
56054aa6d63Sopenharmony_ci/*
56154aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_013
56254aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter compatibleVersion is not int
56354aa6d63Sopenharmony_ci * @tc.type: FUNC
56454aa6d63Sopenharmony_ci * @tc.require:
56554aa6d63Sopenharmony_ci */
56654aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_013, testing::ext::TestSize.Level1)
56754aa6d63Sopenharmony_ci{
56854aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
56954aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
57054aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
57154aa6d63Sopenharmony_ci
57254aa6d63Sopenharmony_ci    std::string mode = "localSign";
57354aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
57454aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
57554aa6d63Sopenharmony_ci    std::string signCode = "0";
57654aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
57754aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
57854aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
57954aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
58054aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
58154aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
58254aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
58354aa6d63Sopenharmony_ci    std::string compatibleVersion = "a";
58454aa6d63Sopenharmony_ci
58554aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
58654aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
58754aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
58854aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
58954aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
59054aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
59154aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
59254aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
59354aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
59454aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
59554aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
59654aa6d63Sopenharmony_ci    (*params)["compatibleVersion"] = compatibleVersion;
59754aa6d63Sopenharmony_ci
59854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
59954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
60054aa6d63Sopenharmony_ci}
60154aa6d63Sopenharmony_ci
60254aa6d63Sopenharmony_ci/*
60354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_014
60454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter inFile is not exist
60554aa6d63Sopenharmony_ci * @tc.type: FUNC
60654aa6d63Sopenharmony_ci * @tc.require:
60754aa6d63Sopenharmony_ci */
60854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_014, testing::ext::TestSize.Level1)
60954aa6d63Sopenharmony_ci{
61054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
61154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
61254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
61354aa6d63Sopenharmony_ci
61454aa6d63Sopenharmony_ci    std::string mode = "localSign";
61554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
61654aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
61754aa6d63Sopenharmony_ci    std::string signCode = "0";
61854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
61954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
62054aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned";
62154aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
62254aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
62354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
62454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
62554aa6d63Sopenharmony_ci
62654aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
62754aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
62854aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
62954aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
63054aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
63154aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
63254aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
63354aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
63454aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
63554aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
63654aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
63754aa6d63Sopenharmony_ci
63854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
63954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
64054aa6d63Sopenharmony_ci}
64154aa6d63Sopenharmony_ci
64254aa6d63Sopenharmony_ci/*
64354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_015
64454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter signAlg is not support
64554aa6d63Sopenharmony_ci * @tc.type: FUNC
64654aa6d63Sopenharmony_ci * @tc.require:
64754aa6d63Sopenharmony_ci */
64854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_015, testing::ext::TestSize.Level1)
64954aa6d63Sopenharmony_ci{
65054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
65154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
65254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
65354aa6d63Sopenharmony_ci
65454aa6d63Sopenharmony_ci    std::string mode = "localSign";
65554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
65654aa6d63Sopenharmony_ci    std::string signAlg = "SHA512withECDSA";
65754aa6d63Sopenharmony_ci    std::string signCode = "0";
65854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
65954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
66054aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
66154aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
66254aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
66354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
66454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
66554aa6d63Sopenharmony_ci
66654aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
66754aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
66854aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
66954aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
67054aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
67154aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
67254aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
67354aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
67454aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
67554aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
67654aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
67754aa6d63Sopenharmony_ci
67854aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
67954aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
68054aa6d63Sopenharmony_ci}
68154aa6d63Sopenharmony_ci
68254aa6d63Sopenharmony_ci/*
68354aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_016
68454aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter profileSigned error
68554aa6d63Sopenharmony_ci * @tc.type: FUNC
68654aa6d63Sopenharmony_ci * @tc.require:
68754aa6d63Sopenharmony_ci */
68854aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_016, testing::ext::TestSize.Level1)
68954aa6d63Sopenharmony_ci{
69054aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
69154aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
69254aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
69354aa6d63Sopenharmony_ci
69454aa6d63Sopenharmony_ci    std::string mode = "localSign";
69554aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
69654aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
69754aa6d63Sopenharmony_ci    std::string signCode = "0";
69854aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
69954aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile-nohave.p7b";
70054aa6d63Sopenharmony_ci    std::string profileSigned = "1";
70154aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned-test.hap";
70254aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
70354aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed-test.hap";
70454aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
70554aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
70654aa6d63Sopenharmony_ci
70754aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
70854aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
70954aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
71054aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
71154aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
71254aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
71354aa6d63Sopenharmony_ci    (*params)["profileSigned"] = profileSigned;
71454aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
71554aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
71654aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
71754aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
71854aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
71954aa6d63Sopenharmony_ci
72054aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
72154aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
72254aa6d63Sopenharmony_ci}
72354aa6d63Sopenharmony_ci
72454aa6d63Sopenharmony_ci/*
72554aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_017
72654aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter signAlg is not support
72754aa6d63Sopenharmony_ci * @tc.type: FUNC
72854aa6d63Sopenharmony_ci * @tc.require:
72954aa6d63Sopenharmony_ci */
73054aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_017, testing::ext::TestSize.Level1)
73154aa6d63Sopenharmony_ci{
73254aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
73354aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
73454aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
73554aa6d63Sopenharmony_ci
73654aa6d63Sopenharmony_ci    std::string mode = "localSign";
73754aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
73854aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA-nohave";
73954aa6d63Sopenharmony_ci    std::string signCode = "0";
74054aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
74154aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
74254aa6d63Sopenharmony_ci    std::string profileSigned = "1";
74354aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned-test.hap";
74454aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
74554aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed-test.hap";
74654aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
74754aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
74854aa6d63Sopenharmony_ci
74954aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
75054aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
75154aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
75254aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
75354aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
75454aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
75554aa6d63Sopenharmony_ci    (*params)["profileSigned"] = profileSigned;
75654aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
75754aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
75854aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
75954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
76054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
76154aa6d63Sopenharmony_ci
76254aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
76354aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
76454aa6d63Sopenharmony_ci}
76554aa6d63Sopenharmony_ci
76654aa6d63Sopenharmony_ci/*
76754aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_018
76854aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter signCode is 3
76954aa6d63Sopenharmony_ci * @tc.type: FUNC
77054aa6d63Sopenharmony_ci * @tc.require:
77154aa6d63Sopenharmony_ci */
77254aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_018, testing::ext::TestSize.Level1)
77354aa6d63Sopenharmony_ci{
77454aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
77554aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
77654aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
77754aa6d63Sopenharmony_ci
77854aa6d63Sopenharmony_ci    std::string mode = "localSign";
77954aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
78054aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
78154aa6d63Sopenharmony_ci    std::string signCode = "3";
78254aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
78354aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
78454aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
78554aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
78654aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
78754aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
78854aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
78954aa6d63Sopenharmony_ci
79054aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
79154aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
79254aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
79354aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
79454aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
79554aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
79654aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
79754aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
79854aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
79954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
80054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
80154aa6d63Sopenharmony_ci
80254aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
80354aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
80454aa6d63Sopenharmony_ci}
80554aa6d63Sopenharmony_ci
80654aa6d63Sopenharmony_ci/*
80754aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_019
80854aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter signAlg is empty
80954aa6d63Sopenharmony_ci * @tc.type: FUNC
81054aa6d63Sopenharmony_ci * @tc.require:
81154aa6d63Sopenharmony_ci */
81254aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_019, testing::ext::TestSize.Level1)
81354aa6d63Sopenharmony_ci{
81454aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
81554aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
81654aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
81754aa6d63Sopenharmony_ci
81854aa6d63Sopenharmony_ci    std::string mode = "localSign";
81954aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
82054aa6d63Sopenharmony_ci    std::string signAlg = "";
82154aa6d63Sopenharmony_ci    std::string signCode = "1";
82254aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
82354aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
82454aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
82554aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
82654aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
82754aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
82854aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
82954aa6d63Sopenharmony_ci
83054aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
83154aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
83254aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
83354aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
83454aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
83554aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
83654aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
83754aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
83854aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
83954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
84054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
84154aa6d63Sopenharmony_ci
84254aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
84354aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
84454aa6d63Sopenharmony_ci}
84554aa6d63Sopenharmony_ci
84654aa6d63Sopenharmony_ci/*
84754aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_020
84854aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter profileFile is empty
84954aa6d63Sopenharmony_ci * @tc.type: FUNC
85054aa6d63Sopenharmony_ci * @tc.require:
85154aa6d63Sopenharmony_ci */
85254aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_020, testing::ext::TestSize.Level1)
85354aa6d63Sopenharmony_ci{
85454aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
85554aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
85654aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
85754aa6d63Sopenharmony_ci
85854aa6d63Sopenharmony_ci    std::string mode = "localSign";
85954aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
86054aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
86154aa6d63Sopenharmony_ci    std::string signCode = "1";
86254aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
86354aa6d63Sopenharmony_ci    std::string profileFile = "";
86454aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned.hap";
86554aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
86654aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed.hap";
86754aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
86854aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
86954aa6d63Sopenharmony_ci
87054aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
87154aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
87254aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
87354aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
87454aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
87554aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
87654aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
87754aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
87854aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
87954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
88054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
88154aa6d63Sopenharmony_ci
88254aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
88354aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
88454aa6d63Sopenharmony_ci}
88554aa6d63Sopenharmony_ci
88654aa6d63Sopenharmony_ci/*
88754aa6d63Sopenharmony_ci * @tc.name: sign_provider_test_021
88854aa6d63Sopenharmony_ci * @tc.desc: This function tests failure for interface Sign due to parameter appCertFile is empty
88954aa6d63Sopenharmony_ci * @tc.type: FUNC
89054aa6d63Sopenharmony_ci * @tc.require:
89154aa6d63Sopenharmony_ci */
89254aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, sign_provider_test_021, testing::ext::TestSize.Level1)
89354aa6d63Sopenharmony_ci{
89454aa6d63Sopenharmony_ci    SIGNATURE_TOOLS_LOGI("hello world !!!");
89554aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
89654aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
89754aa6d63Sopenharmony_ci
89854aa6d63Sopenharmony_ci    std::string mode = "localSign";
89954aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
90054aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
90154aa6d63Sopenharmony_ci    std::string signCode = "0";
90254aa6d63Sopenharmony_ci    std::string appCertFile = "";
90354aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
90454aa6d63Sopenharmony_ci    std::string profileSigned = "1";
90554aa6d63Sopenharmony_ci    std::string inFile = "./hapSign/phone-default-unsigned-test.hap";
90654aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
90754aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/phone-default-signed-test.hap";
90854aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
90954aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
91054aa6d63Sopenharmony_ci
91154aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
91254aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
91354aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
91454aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
91554aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
91654aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
91754aa6d63Sopenharmony_ci    (*params)["profileSigned"] = profileSigned;
91854aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
91954aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
92054aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
92154aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
92254aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
92354aa6d63Sopenharmony_ci
92454aa6d63Sopenharmony_ci    bool ret = signProvider->Sign(params.get());
92554aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
92654aa6d63Sopenharmony_ci}
92754aa6d63Sopenharmony_ci
92854aa6d63Sopenharmony_ci/*
92954aa6d63Sopenharmony_ci * @tc.name: SignElf_001
93054aa6d63Sopenharmony_ci * @tc.desc: Test function result of SignElf_001 will be SUCCESS.
93154aa6d63Sopenharmony_ci * @tc.type: FUNC
93254aa6d63Sopenharmony_ci * @tc.require:
93354aa6d63Sopenharmony_ci */
93454aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_001, testing::ext::TestSize.Level1)
93554aa6d63Sopenharmony_ci{
93654aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
93754aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
93854aa6d63Sopenharmony_ci
93954aa6d63Sopenharmony_ci    std::string mode = "localSign";
94054aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
94154aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
94254aa6d63Sopenharmony_ci    std::string signCode = "1";
94354aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
94454aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
94554aa6d63Sopenharmony_ci    std::string inFile = "./codeSigning/unsigned-file.hap";
94654aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
94754aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
94854aa6d63Sopenharmony_ci    std::string inForm = "elf";
94954aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
95054aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
95154aa6d63Sopenharmony_ci
95254aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
95354aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
95454aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
95554aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
95654aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
95754aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
95854aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
95954aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
96054aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
96154aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
96254aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
96354aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
96454aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
96554aa6d63Sopenharmony_ci
96654aa6d63Sopenharmony_ci    EXPECT_NE(ret, -1);
96754aa6d63Sopenharmony_ci}
96854aa6d63Sopenharmony_ci
96954aa6d63Sopenharmony_ci/*
97054aa6d63Sopenharmony_ci * @tc.name: SignElf_002
97154aa6d63Sopenharmony_ci * @tc.desc: The return will be false, because the profileFile is null.
97254aa6d63Sopenharmony_ci * @tc.type: FUNC
97354aa6d63Sopenharmony_ci * @tc.require:
97454aa6d63Sopenharmony_ci */
97554aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_002, testing::ext::TestSize.Level1)
97654aa6d63Sopenharmony_ci{
97754aa6d63Sopenharmony_ci    // profileFile:p7b is null
97854aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
97954aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
98054aa6d63Sopenharmony_ci
98154aa6d63Sopenharmony_ci    std::string mode = "localSign";
98254aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
98354aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
98454aa6d63Sopenharmony_ci    std::string signCode = "1";
98554aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
98654aa6d63Sopenharmony_ci    std::string inFile = "./codeSigning/unsigned-file.hap";
98754aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
98854aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
98954aa6d63Sopenharmony_ci    std::string inForm = "elf";
99054aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
99154aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
99254aa6d63Sopenharmony_ci
99354aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
99454aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
99554aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
99654aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
99754aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
99854aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
99954aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
100054aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
100154aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
100254aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
100354aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
100454aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
100554aa6d63Sopenharmony_ci    EXPECT_NE(ret, -1);
100654aa6d63Sopenharmony_ci}
100754aa6d63Sopenharmony_ci
100854aa6d63Sopenharmony_ci/*
100954aa6d63Sopenharmony_ci * @tc.name: SignElf_003
101054aa6d63Sopenharmony_ci * @tc.desc: The return will be false, because the compatibleVersion is null.
101154aa6d63Sopenharmony_ci * @tc.type: FUNC
101254aa6d63Sopenharmony_ci * @tc.require:
101354aa6d63Sopenharmony_ci */
101454aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_003, testing::ext::TestSize.Level1)
101554aa6d63Sopenharmony_ci{
101654aa6d63Sopenharmony_ci    // compatibleVersion is null
101754aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
101854aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
101954aa6d63Sopenharmony_ci
102054aa6d63Sopenharmony_ci    std::string mode = "localSign";
102154aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
102254aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
102354aa6d63Sopenharmony_ci    std::string signCode = "1";
102454aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
102554aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
102654aa6d63Sopenharmony_ci    std::string inFile = "./codeSigning/unsigned-file.hap";
102754aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
102854aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
102954aa6d63Sopenharmony_ci    std::string inForm = "elf";
103054aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
103154aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
103254aa6d63Sopenharmony_ci    std::string compatibleVersion = "";
103354aa6d63Sopenharmony_ci
103454aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
103554aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
103654aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
103754aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
103854aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
103954aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
104054aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
104154aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
104254aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
104354aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
104454aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
104554aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
104654aa6d63Sopenharmony_ci    (*params)["compatibleVersion"] = compatibleVersion;
104754aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
104854aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
104954aa6d63Sopenharmony_ci}
105054aa6d63Sopenharmony_ci
105154aa6d63Sopenharmony_ci/*
105254aa6d63Sopenharmony_ci * @tc.name: SignElf_004
105354aa6d63Sopenharmony_ci * @tc.desc: The return will be false, because the inFile is null.
105454aa6d63Sopenharmony_ci * @tc.type: FUNC
105554aa6d63Sopenharmony_ci * @tc.require:
105654aa6d63Sopenharmony_ci */
105754aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_004, testing::ext::TestSize.Level1)
105854aa6d63Sopenharmony_ci{
105954aa6d63Sopenharmony_ci    // inFile is null
106054aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
106154aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
106254aa6d63Sopenharmony_ci
106354aa6d63Sopenharmony_ci    std::string mode = "localSign";
106454aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
106554aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
106654aa6d63Sopenharmony_ci    std::string signCode = "1";
106754aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
106854aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
106954aa6d63Sopenharmony_ci    std::string inFile = "";
107054aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
107154aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
107254aa6d63Sopenharmony_ci    std::string inForm = "elf";
107354aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
107454aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
107554aa6d63Sopenharmony_ci
107654aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
107754aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
107854aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
107954aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
108054aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
108154aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
108254aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
108354aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
108454aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
108554aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
108654aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
108754aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
108854aa6d63Sopenharmony_ci
108954aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
109054aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
109154aa6d63Sopenharmony_ci}
109254aa6d63Sopenharmony_ci
109354aa6d63Sopenharmony_ci/*
109454aa6d63Sopenharmony_ci * @tc.name: SignElf_005
109554aa6d63Sopenharmony_ci * @tc.desc: The return will be false, because the inFile path is error.
109654aa6d63Sopenharmony_ci * @tc.type: FUNC
109754aa6d63Sopenharmony_ci * @tc.require:
109854aa6d63Sopenharmony_ci */
109954aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_005, testing::ext::TestSize.Level1)
110054aa6d63Sopenharmony_ci{
110154aa6d63Sopenharmony_ci    // inFile path is false
110254aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
110354aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
110454aa6d63Sopenharmony_ci
110554aa6d63Sopenharmony_ci    std::string mode = "localSign";
110654aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
110754aa6d63Sopenharmony_ci    std::string signAlg = "SHA256withECDSA";
110854aa6d63Sopenharmony_ci    std::string signCode = "1";
110954aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
111054aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
111154aa6d63Sopenharmony_ci    std::string inFile = "./hapSign_test/unsigned-file.hap";
111254aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
111354aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
111454aa6d63Sopenharmony_ci    std::string inForm = "elf";
111554aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
111654aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
111754aa6d63Sopenharmony_ci
111854aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
111954aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
112054aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
112154aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
112254aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
112354aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
112454aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
112554aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
112654aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
112754aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
112854aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
112954aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
113054aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
113154aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
113254aa6d63Sopenharmony_ci}
113354aa6d63Sopenharmony_ci
113454aa6d63Sopenharmony_ci/*
113554aa6d63Sopenharmony_ci * @tc.name: SignElf_006
113654aa6d63Sopenharmony_ci * @tc.desc: The return will be false, because the signAlg format does not support.
113754aa6d63Sopenharmony_ci * @tc.type: FUNC
113854aa6d63Sopenharmony_ci * @tc.require:
113954aa6d63Sopenharmony_ci */
114054aa6d63Sopenharmony_ciHWTEST_F(SignProviderTest, SignElf_006, testing::ext::TestSize.Level1)
114154aa6d63Sopenharmony_ci{
114254aa6d63Sopenharmony_ci    // signAlg format is false
114354aa6d63Sopenharmony_ci    std::unique_ptr<SignProvider> signProvider = std::make_unique<LocalSignProvider>();
114454aa6d63Sopenharmony_ci    std::shared_ptr<Options> params = std::make_shared<Options>();
114554aa6d63Sopenharmony_ci
114654aa6d63Sopenharmony_ci    std::string mode = "localSign";
114754aa6d63Sopenharmony_ci    std::string keyAlias = "oh-app1-key-v1";
114854aa6d63Sopenharmony_ci    std::string signAlg = "SHA512withECDSA";
114954aa6d63Sopenharmony_ci    std::string signCode = "1";
115054aa6d63Sopenharmony_ci    std::string appCertFile = "./hapSign/app-release1.pem";
115154aa6d63Sopenharmony_ci    std::string profileFile = "./hapSign/signed-profile.p7b";
115254aa6d63Sopenharmony_ci    std::string inFile = "./codeSigning/unsigned-file.hap";
115354aa6d63Sopenharmony_ci    std::string keystoreFile = "./hapSign/ohtest.p12";
115454aa6d63Sopenharmony_ci    std::string outFile = "./hapSign/entry-default-signed.elf";
115554aa6d63Sopenharmony_ci    std::string inForm = "elf";
115654aa6d63Sopenharmony_ci    char keyPwd[] = "123456";
115754aa6d63Sopenharmony_ci    char keystorePwd[] = "123456";
115854aa6d63Sopenharmony_ci
115954aa6d63Sopenharmony_ci    (*params)["mode"] = mode;
116054aa6d63Sopenharmony_ci    (*params)["keyAlias"] = keyAlias;
116154aa6d63Sopenharmony_ci    (*params)["signAlg"] = signAlg;
116254aa6d63Sopenharmony_ci    (*params)["signCode"] = signCode;
116354aa6d63Sopenharmony_ci    (*params)["appCertFile"] = appCertFile;
116454aa6d63Sopenharmony_ci    (*params)["profileFile"] = profileFile;
116554aa6d63Sopenharmony_ci    (*params)["inFile"] = inFile;
116654aa6d63Sopenharmony_ci    (*params)["keystoreFile"] = keystoreFile;
116754aa6d63Sopenharmony_ci    (*params)["outFile"] = outFile;
116854aa6d63Sopenharmony_ci    (*params)["inForm"] = inForm;
116954aa6d63Sopenharmony_ci    (*params)["keyPwd"] = keyPwd;
117054aa6d63Sopenharmony_ci    (*params)["keystorePwd"] = keystorePwd;
117154aa6d63Sopenharmony_ci    bool ret = signProvider->SignElf(params.get());
117254aa6d63Sopenharmony_ci    EXPECT_EQ(ret, false);
117354aa6d63Sopenharmony_ci}
117454aa6d63Sopenharmony_ci} // namespace SignatureTools
117554aa6d63Sopenharmony_ci} // namespace OHOS
1176