154aa6d63Sopenharmony_ci/*
254aa6d63Sopenharmony_ci * Copyright (c) 2024-2024 Huawei Device Co., Ltd.
354aa6d63Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
454aa6d63Sopenharmony_ci * you may not use this file except in compliance with the License.
554aa6d63Sopenharmony_ci * You may obtain a copy of the License at
654aa6d63Sopenharmony_ci *
754aa6d63Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
854aa6d63Sopenharmony_ci *
954aa6d63Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1054aa6d63Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1154aa6d63Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1254aa6d63Sopenharmony_ci * See the License for the specific language governing permissions and
1354aa6d63Sopenharmony_ci * limitations under the License.
1454aa6d63Sopenharmony_ci */
1554aa6d63Sopenharmony_ci#include <chrono>
1654aa6d63Sopenharmony_ci#include <thread>
1754aa6d63Sopenharmony_ci#include <string>
1854aa6d63Sopenharmony_ci
1954aa6d63Sopenharmony_ci#include "gtest/gtest.h"
2054aa6d63Sopenharmony_ci#include "options.h"
2154aa6d63Sopenharmony_ci#include "sign_tool_service_impl.h"
2254aa6d63Sopenharmony_ci#include "nlohmann/json.hpp"
2354aa6d63Sopenharmony_ci#include "signer_factory.h"
2454aa6d63Sopenharmony_ci#include "profile_sign_tool.h"
2554aa6d63Sopenharmony_ci#include "params_run_tool.h"
2654aa6d63Sopenharmony_ci#include "pkcs7_data.h"
2754aa6d63Sopenharmony_ci#include "signer_config.h"
2854aa6d63Sopenharmony_ci#include "local_signer.h"
2954aa6d63Sopenharmony_ci#include "bc_pkcs7_generator.h"
3054aa6d63Sopenharmony_ci#include "bc_signeddata_generator.h"
3154aa6d63Sopenharmony_ci#include "profile_verify.h"
3254aa6d63Sopenharmony_ci#include "verify_hap_openssl_utils.h"
3354aa6d63Sopenharmony_ci
3454aa6d63Sopenharmony_ciusing  nlohmann::json;
3554aa6d63Sopenharmony_ci
3654aa6d63Sopenharmony_cinamespace OHOS {
3754aa6d63Sopenharmony_cinamespace SignatureTools {
3854aa6d63Sopenharmony_ci// sign profile使用的全局参数
3954aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_MODE = "localSign";
4054aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_KEY_ALIAS = "oh-profile1-key-v1";
4154aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_PROFILE_CERT_FILE = "./signProfile/profile-release1.pem";
4254aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_SIGN_ALG = "SHA384withECDSA";
4354aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_KEY_STORE_FILE = "./signProfile/ohtest.p12";
4454aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_OUT_FILE = "./signProfile/signed-profile.p7b";
4554aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_IN_FILE = "./signProfile/profile.json";
4654aa6d63Sopenharmony_ci
4754aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_CERT_PEM = "./signProfile/profile-release1-cert.pem";
4854aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_REVERSE_PEM = "./signProfile/profile-release1-reverse.pem";
4954aa6d63Sopenharmony_cistatic const std::string SIGN_PROFILE_DOUBLE_CERT_PEM = "./signProfile/profile-release1-invalid_cert_chain.pem";
5054aa6d63Sopenharmony_ci
5154aa6d63Sopenharmony_ci// verify profile 使用的全局参数
5254aa6d63Sopenharmony_cistatic const std::string VERIFY_PROFILE_IN_FILE = "./signProfile/signed-profile.p7b";
5354aa6d63Sopenharmony_cistatic const std::string VERIFY_PROFILE_OUT_FILE = "./signProfile/VerifyResult.json";
5454aa6d63Sopenharmony_ci
5554aa6d63Sopenharmony_ciclass Pkcs7DataTest : public testing::Test {
5654aa6d63Sopenharmony_cipublic:
5754aa6d63Sopenharmony_ci    static void SetUpTestCase(void);
5854aa6d63Sopenharmony_ci    static void TearDownTestCase(void);
5954aa6d63Sopenharmony_ci    void SetUp()override;
6054aa6d63Sopenharmony_ci    void TearDown()override;
6154aa6d63Sopenharmony_ci};
6254aa6d63Sopenharmony_civoid Pkcs7DataTest::SetUpTestCase(void)
6354aa6d63Sopenharmony_ci{
6454aa6d63Sopenharmony_ci}
6554aa6d63Sopenharmony_ci
6654aa6d63Sopenharmony_civoid Pkcs7DataTest::TearDownTestCase(void)
6754aa6d63Sopenharmony_ci{
6854aa6d63Sopenharmony_ci}
6954aa6d63Sopenharmony_ci
7054aa6d63Sopenharmony_civoid Pkcs7DataTest::SetUp()
7154aa6d63Sopenharmony_ci{
7254aa6d63Sopenharmony_ci}
7354aa6d63Sopenharmony_ci
7454aa6d63Sopenharmony_civoid Pkcs7DataTest::TearDown()
7554aa6d63Sopenharmony_ci{
7654aa6d63Sopenharmony_ci}
7754aa6d63Sopenharmony_ci
7854aa6d63Sopenharmony_ci/**
7954aa6d63Sopenharmony_ci * @tc.name: pkcs7_test001
8054aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::CertVerify() failed for invalid param.
8154aa6d63Sopenharmony_ci * @tc.size: MEDIUM
8254aa6d63Sopenharmony_ci * @tc.type: FUNC
8354aa6d63Sopenharmony_ci * @tc.level Level 1
8454aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
8554aa6d63Sopenharmony_ci */
8654aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test001, testing::ext::TestSize.Level1)
8754aa6d63Sopenharmony_ci{
8854aa6d63Sopenharmony_ci    X509* cert = X509_new();
8954aa6d63Sopenharmony_ci    X509* issuerCert = X509_new();
9054aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::CertVerify(NULL, issuerCert);
9154aa6d63Sopenharmony_ci    X509_free(cert);
9254aa6d63Sopenharmony_ci    X509_free(issuerCert);
9354aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
9454aa6d63Sopenharmony_ci}
9554aa6d63Sopenharmony_ci
9654aa6d63Sopenharmony_ci/**
9754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test002
9854aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::CertVerify() failed for invalid param.
9954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
10054aa6d63Sopenharmony_ci * @tc.type: FUNC
10154aa6d63Sopenharmony_ci * @tc.level Level 1
10254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
10354aa6d63Sopenharmony_ci */
10454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test002, testing::ext::TestSize.Level1)
10554aa6d63Sopenharmony_ci{
10654aa6d63Sopenharmony_ci    X509* cert = X509_new();
10754aa6d63Sopenharmony_ci    X509* issuerCert = X509_new();
10854aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::CertVerify(cert, NULL);
10954aa6d63Sopenharmony_ci    X509_free(cert);
11054aa6d63Sopenharmony_ci    X509_free(issuerCert);
11154aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
11254aa6d63Sopenharmony_ci}
11354aa6d63Sopenharmony_ci
11454aa6d63Sopenharmony_ci/**
11554aa6d63Sopenharmony_ci * @tc.name: pkcs7_test003
11654aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::CertVerify failed for invalid cert.
11754aa6d63Sopenharmony_ci * @tc.size: MEDIUM
11854aa6d63Sopenharmony_ci * @tc.type: FUNC
11954aa6d63Sopenharmony_ci * @tc.level Level 1
12054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
12154aa6d63Sopenharmony_ci */
12254aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test003, testing::ext::TestSize.Level1)
12354aa6d63Sopenharmony_ci{
12454aa6d63Sopenharmony_ci    X509* cert = X509_new();
12554aa6d63Sopenharmony_ci    X509* issuerCert = X509_new();
12654aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::CertVerify(cert, issuerCert);
12754aa6d63Sopenharmony_ci    X509_free(cert);
12854aa6d63Sopenharmony_ci    X509_free(issuerCert);
12954aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
13054aa6d63Sopenharmony_ci}
13154aa6d63Sopenharmony_ci
13254aa6d63Sopenharmony_ci/**
13354aa6d63Sopenharmony_ci * @tc.name: pkcs7_test004
13454aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::CertVerify() failed for invalid cert.
13554aa6d63Sopenharmony_ci * @tc.size: MEDIUM
13654aa6d63Sopenharmony_ci * @tc.type: FUNC
13754aa6d63Sopenharmony_ci * @tc.level Level 1
13854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
13954aa6d63Sopenharmony_ci */
14054aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test004, testing::ext::TestSize.Level1)
14154aa6d63Sopenharmony_ci{
14254aa6d63Sopenharmony_ci    X509* cert = X509_new();
14354aa6d63Sopenharmony_ci    X509* issuerCert = X509_new();
14454aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::CertVerify(cert, issuerCert);
14554aa6d63Sopenharmony_ci    X509_free(cert);
14654aa6d63Sopenharmony_ci    X509_free(issuerCert);
14754aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
14854aa6d63Sopenharmony_ci}
14954aa6d63Sopenharmony_ci
15054aa6d63Sopenharmony_cistatic void ReverseX509Stack(STACK_OF(X509)* certs)
15154aa6d63Sopenharmony_ci{
15254aa6d63Sopenharmony_ci    if (certs == NULL)
15354aa6d63Sopenharmony_ci        return;
15454aa6d63Sopenharmony_ci    std::vector<X509*> certChain;
15554aa6d63Sopenharmony_ci    for (int i = 0; i < sk_X509_num(certs); i++) {
15654aa6d63Sopenharmony_ci        certChain.push_back(sk_X509_value(certs, i));
15754aa6d63Sopenharmony_ci    }
15854aa6d63Sopenharmony_ci    std::reverse(certChain.begin(), certChain.end());
15954aa6d63Sopenharmony_ci    while (sk_X509_num(certs))sk_X509_pop(certs);
16054aa6d63Sopenharmony_ci    for (int i = 0; i < static_cast<int>(certChain.size()); i++)
16154aa6d63Sopenharmony_ci        sk_X509_push(certs, certChain[i]);
16254aa6d63Sopenharmony_ci}
16354aa6d63Sopenharmony_ci
16454aa6d63Sopenharmony_ci\
16554aa6d63Sopenharmony_ci/**
16654aa6d63Sopenharmony_ci * @tc.name: pkcs7_test005
16754aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::CertVerify() interface cert signature verify failed.
16854aa6d63Sopenharmony_ci * @tc.size: MEDIUM
16954aa6d63Sopenharmony_ci * @tc.type: FUNC
17054aa6d63Sopenharmony_ci * @tc.level Level 1
17154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
17254aa6d63Sopenharmony_ci */
17354aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test005, testing::ext::TestSize.Level1)
17454aa6d63Sopenharmony_ci{
17554aa6d63Sopenharmony_ci    Options options;
17654aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
17754aa6d63Sopenharmony_ci    char keypwd[] = "123456";
17854aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
17954aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
18054aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
18154aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
18254aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
18354aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
18454aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
18554aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
18654aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
18754aa6d63Sopenharmony_ci
18854aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
18954aa6d63Sopenharmony_ci    SignerFactory factory;
19054aa6d63Sopenharmony_ci    std::shared_ptr<Signer> signer = factory.GetSigner(adapter);
19154aa6d63Sopenharmony_ci    STACK_OF(X509)* certs = signer->GetCertificates();
19254aa6d63Sopenharmony_ci    ReverseX509Stack(certs);
19354aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::CertVerify(sk_X509_value(certs, 0), sk_X509_value(certs, 1));
19454aa6d63Sopenharmony_ci    PKCS7Data::PrintCertChainSub(certs);
19554aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
19654aa6d63Sopenharmony_ci}
19754aa6d63Sopenharmony_ci
19854aa6d63Sopenharmony_ci
19954aa6d63Sopenharmony_ci/**
20054aa6d63Sopenharmony_ci * @tc.name: pkcs7_test007
20154aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::GetASN1Time() failed for too large time.
20254aa6d63Sopenharmony_ci * @tc.size: MEDIUM
20354aa6d63Sopenharmony_ci * @tc.type: FUNC
20454aa6d63Sopenharmony_ci * @tc.level Level 1
20554aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
20654aa6d63Sopenharmony_ci */
20754aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test007, testing::ext::TestSize.Level1)
20854aa6d63Sopenharmony_ci{
20954aa6d63Sopenharmony_ci    ASN1_TIME* time = ASN1_TIME_new();
21054aa6d63Sopenharmony_ci    ASN1_TIME_set(time, -1);
21154aa6d63Sopenharmony_ci    std::string result = PKCS7Data::GetASN1Time(time);
21254aa6d63Sopenharmony_ci    ASN1_TIME_free(time);
21354aa6d63Sopenharmony_ci    EXPECT_TRUE(result.empty());
21454aa6d63Sopenharmony_ci}
21554aa6d63Sopenharmony_ci
21654aa6d63Sopenharmony_ci/**
21754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test008
21854aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::GetTextFromX509Name() failed for invalid param.
21954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
22054aa6d63Sopenharmony_ci * @tc.type: FUNC
22154aa6d63Sopenharmony_ci * @tc.level Level 1
22254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
22354aa6d63Sopenharmony_ci */
22454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test008, testing::ext::TestSize.Level1)
22554aa6d63Sopenharmony_ci{
22654aa6d63Sopenharmony_ci    std::string text;
22754aa6d63Sopenharmony_ci    VerifyCertOpensslUtils::GetTextFromX509Name(NULL, 45, text);
22854aa6d63Sopenharmony_ci    EXPECT_TRUE(text.empty());
22954aa6d63Sopenharmony_ci}
23054aa6d63Sopenharmony_ci
23154aa6d63Sopenharmony_ci/**
23254aa6d63Sopenharmony_ci * @tc.name: pkcs7_test009
23354aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::GetDnToString() failed for invalid param.
23454aa6d63Sopenharmony_ci * @tc.size: MEDIUM
23554aa6d63Sopenharmony_ci * @tc.type: FUNC
23654aa6d63Sopenharmony_ci * @tc.level Level 1
23754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
23854aa6d63Sopenharmony_ci */
23954aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test009, testing::ext::TestSize.Level1)
24054aa6d63Sopenharmony_ci{
24154aa6d63Sopenharmony_ci    std::string result = VerifyCertOpensslUtils::GetDnToString(NULL);
24254aa6d63Sopenharmony_ci    EXPECT_TRUE(result.empty());
24354aa6d63Sopenharmony_ci}
24454aa6d63Sopenharmony_ci
24554aa6d63Sopenharmony_ci/**
24654aa6d63Sopenharmony_ci * @tc.name: pkcs7_test010
24754aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyCertOpensslUtils::GetSubjectFromX509() failed for invalid param.
24854aa6d63Sopenharmony_ci * @tc.size: MEDIUM
24954aa6d63Sopenharmony_ci * @tc.type: FUNC
25054aa6d63Sopenharmony_ci * @tc.level Level 1
25154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
25254aa6d63Sopenharmony_ci */
25354aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test010, testing::ext::TestSize.Level1)
25454aa6d63Sopenharmony_ci{
25554aa6d63Sopenharmony_ci    std::string subject;
25654aa6d63Sopenharmony_ci    bool result = VerifyCertOpensslUtils::GetSubjectFromX509(NULL, subject);
25754aa6d63Sopenharmony_ci    EXPECT_FALSE(result);
25854aa6d63Sopenharmony_ci}
25954aa6d63Sopenharmony_ci
26054aa6d63Sopenharmony_ci/**
26154aa6d63Sopenharmony_ci * @tc.name: pkcs7_test011
26254aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::X509NameCompare() failed for invalid param.
26354aa6d63Sopenharmony_ci * @tc.size: MEDIUM
26454aa6d63Sopenharmony_ci * @tc.type: FUNC
26554aa6d63Sopenharmony_ci * @tc.level Level 1
26654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
26754aa6d63Sopenharmony_ci */
26854aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test011, testing::ext::TestSize.Level1)
26954aa6d63Sopenharmony_ci{
27054aa6d63Sopenharmony_ci    int result = PKCS7Data::X509NameCompare(NULL, NULL);
27154aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
27254aa6d63Sopenharmony_ci}
27354aa6d63Sopenharmony_ci
27454aa6d63Sopenharmony_ci/**
27554aa6d63Sopenharmony_ci * @tc.name: pkcs7_test012
27654aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::X509NameCompare() failed for invalid param.
27754aa6d63Sopenharmony_ci * @tc.size: MEDIUM
27854aa6d63Sopenharmony_ci * @tc.type: FUNC
27954aa6d63Sopenharmony_ci * @tc.level Level 1
28054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
28154aa6d63Sopenharmony_ci */
28254aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test012, testing::ext::TestSize.Level1)
28354aa6d63Sopenharmony_ci{
28454aa6d63Sopenharmony_ci    Options options;
28554aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
28654aa6d63Sopenharmony_ci    char keypwd[] = "123456";
28754aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
28854aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
28954aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
29054aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
29154aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
29254aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
29354aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
29454aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
29554aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
29654aa6d63Sopenharmony_ci
29754aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
29854aa6d63Sopenharmony_ci    SignerFactory factory;
29954aa6d63Sopenharmony_ci    std::shared_ptr<Signer> signer = factory.GetSigner(adapter);
30054aa6d63Sopenharmony_ci    STACK_OF(X509)* certs = signer->GetCertificates();
30154aa6d63Sopenharmony_ci    int result = PKCS7Data::X509NameCompare(sk_X509_value(certs, 0), NULL);
30254aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
30354aa6d63Sopenharmony_ci}
30454aa6d63Sopenharmony_ci
30554aa6d63Sopenharmony_ci/**
30654aa6d63Sopenharmony_ci * @tc.name: pkcs7_test013
30754aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::X509NameCompare() interface for SUCCESS.
30854aa6d63Sopenharmony_ci * @tc.size: MEDIUM
30954aa6d63Sopenharmony_ci * @tc.type: FUNC
31054aa6d63Sopenharmony_ci * @tc.level Level 1
31154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
31254aa6d63Sopenharmony_ci */
31354aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test013, testing::ext::TestSize.Level1)
31454aa6d63Sopenharmony_ci{
31554aa6d63Sopenharmony_ci    Options options;
31654aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
31754aa6d63Sopenharmony_ci    char keypwd[] = "123456";
31854aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
31954aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
32054aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
32154aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
32254aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
32354aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
32454aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
32554aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
32654aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
32754aa6d63Sopenharmony_ci
32854aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
32954aa6d63Sopenharmony_ci    SignerFactory factory;
33054aa6d63Sopenharmony_ci    std::shared_ptr<Signer> signer = factory.GetSigner(adapter);
33154aa6d63Sopenharmony_ci    STACK_OF(X509)* certs = signer->GetCertificates();
33254aa6d63Sopenharmony_ci    int result = PKCS7Data::X509NameCompare(sk_X509_value(certs, 0), sk_X509_value(certs, 1));
33354aa6d63Sopenharmony_ci    EXPECT_EQ(result, true);
33454aa6d63Sopenharmony_ci}
33554aa6d63Sopenharmony_ci
33654aa6d63Sopenharmony_ci/**
33754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test014
33854aa6d63Sopenharmony_ci * @tc.desc: Test function of Pkcs7Data::Parse() failed for invalid pkcs7.
33954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
34054aa6d63Sopenharmony_ci * @tc.type: FUNC
34154aa6d63Sopenharmony_ci * @tc.level Level 1
34254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
34354aa6d63Sopenharmony_ci */
34454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test014, testing::ext::TestSize.Level1)
34554aa6d63Sopenharmony_ci{
34654aa6d63Sopenharmony_ci    PKCS7Data p7Data;
34754aa6d63Sopenharmony_ci    unsigned char buf[15] = "hello";
34854aa6d63Sopenharmony_ci    const unsigned char* p = buf;
34954aa6d63Sopenharmony_ci    int len = 5;
35054aa6d63Sopenharmony_ci    std::string p7b(p, p + len);
35154aa6d63Sopenharmony_ci    int result = p7Data.Parse(p7b);
35254aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
35354aa6d63Sopenharmony_ci}
35454aa6d63Sopenharmony_ci
35554aa6d63Sopenharmony_ci/**
35654aa6d63Sopenharmony_ci * @tc.name: pkcs7_test015
35754aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
35854aa6d63Sopenharmony_ci * @tc.size: MEDIUM
35954aa6d63Sopenharmony_ci * @tc.type: FUNC
36054aa6d63Sopenharmony_ci * @tc.level Level 1
36154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
36254aa6d63Sopenharmony_ci */
36354aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test015, testing::ext::TestSize.Level1)
36454aa6d63Sopenharmony_ci{
36554aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
36654aa6d63Sopenharmony_ci    ASN1_TIME* notBefore = NULL;
36754aa6d63Sopenharmony_ci    ASN1_TIME* notAfter = NULL;
36854aa6d63Sopenharmony_ci    PKCS7Data p7Data;
36954aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, notBefore, notAfter);
37054aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
37154aa6d63Sopenharmony_ci}
37254aa6d63Sopenharmony_ci
37354aa6d63Sopenharmony_ci/**
37454aa6d63Sopenharmony_ci * @tc.name: pkcs7_test016
37554aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
37654aa6d63Sopenharmony_ci * @tc.size: MEDIUM
37754aa6d63Sopenharmony_ci * @tc.type: FUNC
37854aa6d63Sopenharmony_ci * @tc.level Level 1
37954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
38054aa6d63Sopenharmony_ci */
38154aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test016, testing::ext::TestSize.Level1)
38254aa6d63Sopenharmony_ci{
38354aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
38454aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
38554aa6d63Sopenharmony_ci    notBefore.data = NULL;
38654aa6d63Sopenharmony_ci    ASN1_TIME* notAfter = NULL;
38754aa6d63Sopenharmony_ci    PKCS7Data p7Data;
38854aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, &notBefore, notAfter);
38954aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
39054aa6d63Sopenharmony_ci}
39154aa6d63Sopenharmony_ci
39254aa6d63Sopenharmony_ci/**
39354aa6d63Sopenharmony_ci * @tc.name: pkcs7_test017
39454aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
39554aa6d63Sopenharmony_ci * @tc.size: MEDIUM
39654aa6d63Sopenharmony_ci * @tc.type: FUNC
39754aa6d63Sopenharmony_ci * @tc.level Level 1
39854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
39954aa6d63Sopenharmony_ci */
40054aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test017, testing::ext::TestSize.Level1)
40154aa6d63Sopenharmony_ci{
40254aa6d63Sopenharmony_ci    unsigned char data[5] = "hell";
40354aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
40454aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
40554aa6d63Sopenharmony_ci    notBefore.data = data;
40654aa6d63Sopenharmony_ci    ASN1_TIME* notAfter = NULL;
40754aa6d63Sopenharmony_ci    PKCS7Data p7Data;
40854aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, &notBefore, notAfter);
40954aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
41054aa6d63Sopenharmony_ci}
41154aa6d63Sopenharmony_ci
41254aa6d63Sopenharmony_ci/**
41354aa6d63Sopenharmony_ci * @tc.name: pkcs7_test018
41454aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
41554aa6d63Sopenharmony_ci * @tc.size: MEDIUM
41654aa6d63Sopenharmony_ci * @tc.type: FUNC
41754aa6d63Sopenharmony_ci * @tc.level Level 1
41854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
41954aa6d63Sopenharmony_ci */
42054aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test018, testing::ext::TestSize.Level1)
42154aa6d63Sopenharmony_ci{
42254aa6d63Sopenharmony_ci    unsigned char data[5] = "hell";
42354aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
42454aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
42554aa6d63Sopenharmony_ci    notBefore.data = data;
42654aa6d63Sopenharmony_ci    ASN1_TIME notAfter;
42754aa6d63Sopenharmony_ci    notAfter.data = NULL;
42854aa6d63Sopenharmony_ci    PKCS7Data p7Data;
42954aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, &notBefore, &notAfter);
43054aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
43154aa6d63Sopenharmony_ci}
43254aa6d63Sopenharmony_ci
43354aa6d63Sopenharmony_ci/**
43454aa6d63Sopenharmony_ci * @tc.name: pkcs7_test019
43554aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
43654aa6d63Sopenharmony_ci * @tc.size: MEDIUM
43754aa6d63Sopenharmony_ci * @tc.type: FUNC
43854aa6d63Sopenharmony_ci * @tc.level Level 1
43954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
44054aa6d63Sopenharmony_ci */
44154aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test019, testing::ext::TestSize.Level1)
44254aa6d63Sopenharmony_ci{
44354aa6d63Sopenharmony_ci    unsigned char data[5] = "hell";
44454aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
44554aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
44654aa6d63Sopenharmony_ci    notBefore.data = data;
44754aa6d63Sopenharmony_ci    ASN1_TIME notAfter;
44854aa6d63Sopenharmony_ci    notAfter.data = data;
44954aa6d63Sopenharmony_ci    PKCS7Data p7Data;
45054aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, &notBefore, &notAfter);
45154aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
45254aa6d63Sopenharmony_ci}
45354aa6d63Sopenharmony_ci
45454aa6d63Sopenharmony_ci/**
45554aa6d63Sopenharmony_ci * @tc.name: pkcs7_test020
45654aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
45754aa6d63Sopenharmony_ci * @tc.size: MEDIUM
45854aa6d63Sopenharmony_ci * @tc.type: FUNC
45954aa6d63Sopenharmony_ci * @tc.level Level 1
46054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
46154aa6d63Sopenharmony_ci */
46254aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test020, testing::ext::TestSize.Level1)
46354aa6d63Sopenharmony_ci{
46454aa6d63Sopenharmony_ci    unsigned char data[5] = "hell";
46554aa6d63Sopenharmony_ci    ASN1_TYPE signTime;
46654aa6d63Sopenharmony_ci    signTime.value.asn1_string = NULL;
46754aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
46854aa6d63Sopenharmony_ci    notBefore.data = data;
46954aa6d63Sopenharmony_ci    ASN1_TIME notAfter;
47054aa6d63Sopenharmony_ci    notAfter.data = data;
47154aa6d63Sopenharmony_ci    PKCS7Data p7Data;
47254aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(&signTime, &notBefore, &notAfter);
47354aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
47454aa6d63Sopenharmony_ci}
47554aa6d63Sopenharmony_ci
47654aa6d63Sopenharmony_ci/**
47754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test021
47854aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
47954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
48054aa6d63Sopenharmony_ci * @tc.type: FUNC
48154aa6d63Sopenharmony_ci * @tc.level Level 1
48254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
48354aa6d63Sopenharmony_ci */
48454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test021, testing::ext::TestSize.Level1)
48554aa6d63Sopenharmony_ci{
48654aa6d63Sopenharmony_ci    ASN1_STRING* tmp = ASN1_STRING_new();
48754aa6d63Sopenharmony_ci    unsigned char data[5] = "hell";
48854aa6d63Sopenharmony_ci    ASN1_TYPE signTime;
48954aa6d63Sopenharmony_ci    signTime.value.asn1_string = tmp;
49054aa6d63Sopenharmony_ci    signTime.value.asn1_string->data = NULL;
49154aa6d63Sopenharmony_ci    ASN1_TIME notBefore{ 0 };
49254aa6d63Sopenharmony_ci    notBefore.data = data;
49354aa6d63Sopenharmony_ci    ASN1_TIME notAfter;
49454aa6d63Sopenharmony_ci    notAfter.data = data;
49554aa6d63Sopenharmony_ci    PKCS7Data p7Data;
49654aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(&signTime, &notBefore, &notAfter);
49754aa6d63Sopenharmony_ci    ASN1_STRING_free(tmp);
49854aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
49954aa6d63Sopenharmony_ci}
50054aa6d63Sopenharmony_ci
50154aa6d63Sopenharmony_ci/**
50254aa6d63Sopenharmony_ci * @tc.name: pkcs7_test022
50354aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
50454aa6d63Sopenharmony_ci * @tc.size: MEDIUM
50554aa6d63Sopenharmony_ci * @tc.type: FUNC
50654aa6d63Sopenharmony_ci * @tc.level Level 1
50754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
50854aa6d63Sopenharmony_ci */
50954aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test022, testing::ext::TestSize.Level1)
51054aa6d63Sopenharmony_ci{
51154aa6d63Sopenharmony_ci    ASN1_TIME* tmp = NULL;
51254aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
51354aa6d63Sopenharmony_ci    ASN1_TIME* notBefore = NULL;
51454aa6d63Sopenharmony_ci    ASN1_TIME* notAfter = NULL;
51554aa6d63Sopenharmony_ci    time_t t1 = 365 * 24 * 3600;
51654aa6d63Sopenharmony_ci
51754aa6d63Sopenharmony_ci    signTime = ASN1_TYPE_new();
51854aa6d63Sopenharmony_ci    tmp = ASN1_TIME_new();
51954aa6d63Sopenharmony_ci    notBefore = ASN1_TIME_new();
52054aa6d63Sopenharmony_ci    notAfter = ASN1_TIME_new();
52154aa6d63Sopenharmony_ci    time_t timeNow = time(NULL);
52254aa6d63Sopenharmony_ci    ASN1_TIME_set(tmp, timeNow - t1);
52354aa6d63Sopenharmony_ci    ASN1_TYPE_set(signTime, V_ASN1_UTCTIME, tmp);
52454aa6d63Sopenharmony_ci    ASN1_TIME_set(notBefore, timeNow);
52554aa6d63Sopenharmony_ci    ASN1_TIME_set(notAfter, timeNow + t1);
52654aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, notBefore, notAfter);
52754aa6d63Sopenharmony_ci    ASN1_TYPE_free(signTime);
52854aa6d63Sopenharmony_ci    ASN1_TIME_free(notBefore);
52954aa6d63Sopenharmony_ci    ASN1_TIME_free(notAfter);
53054aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
53154aa6d63Sopenharmony_ci}
53254aa6d63Sopenharmony_ci
53354aa6d63Sopenharmony_ci/**
53454aa6d63Sopenharmony_ci * @tc.name: pkcs7_test023
53554aa6d63Sopenharmony_ci * @tc.desc: Test function of PKCS7Data::CheckSignTimeInValidPeriod() failed for invalid asn1_time.
53654aa6d63Sopenharmony_ci * @tc.size: MEDIUM
53754aa6d63Sopenharmony_ci * @tc.type: FUNC
53854aa6d63Sopenharmony_ci * @tc.level Level 1
53954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
54054aa6d63Sopenharmony_ci */
54154aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test023, testing::ext::TestSize.Level1)
54254aa6d63Sopenharmony_ci{
54354aa6d63Sopenharmony_ci    ASN1_TIME* tmp = NULL;
54454aa6d63Sopenharmony_ci    ASN1_TYPE* signTime = NULL;
54554aa6d63Sopenharmony_ci    ASN1_TIME* notBefore = NULL;
54654aa6d63Sopenharmony_ci    ASN1_TIME* notAfter = NULL;
54754aa6d63Sopenharmony_ci    time_t t1 = 365 * 24 * 3600;
54854aa6d63Sopenharmony_ci
54954aa6d63Sopenharmony_ci    signTime = ASN1_TYPE_new();
55054aa6d63Sopenharmony_ci    tmp = ASN1_TIME_new();
55154aa6d63Sopenharmony_ci    notBefore = ASN1_TIME_new();
55254aa6d63Sopenharmony_ci    notAfter = ASN1_TIME_new();
55354aa6d63Sopenharmony_ci    time_t timeNow = time(NULL);
55454aa6d63Sopenharmony_ci    ASN1_TIME_set(tmp, timeNow + t1);
55554aa6d63Sopenharmony_ci    ASN1_TYPE_set(signTime, V_ASN1_UTCTIME, tmp);
55654aa6d63Sopenharmony_ci    ASN1_TIME_set(notBefore, timeNow - t1);
55754aa6d63Sopenharmony_ci    ASN1_TIME_set(notAfter, timeNow);
55854aa6d63Sopenharmony_ci    int result = PKCS7Data::CheckSignTimeInValidPeriod(signTime, notBefore, notAfter);
55954aa6d63Sopenharmony_ci    ASN1_TYPE_free(signTime);
56054aa6d63Sopenharmony_ci    ASN1_TIME_free(notBefore);
56154aa6d63Sopenharmony_ci    ASN1_TIME_free(notAfter);
56254aa6d63Sopenharmony_ci    EXPECT_TRUE(result < 0);
56354aa6d63Sopenharmony_ci}
56454aa6d63Sopenharmony_ci
56554aa6d63Sopenharmony_ci/**
56654aa6d63Sopenharmony_ci * @tc.name: pkcs7_test024
56754aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for  no requred mode.
56854aa6d63Sopenharmony_ci * @tc.size: MEDIUM
56954aa6d63Sopenharmony_ci * @tc.type: FUNC
57054aa6d63Sopenharmony_ci * @tc.level Level 1
57154aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
57254aa6d63Sopenharmony_ci */
57354aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test024, testing::ext::TestSize.Level1)
57454aa6d63Sopenharmony_ci{
57554aa6d63Sopenharmony_ci    Options options;
57654aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
57754aa6d63Sopenharmony_ci    char keypwd[] = "123456";
57854aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
57954aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
58054aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
58154aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
58254aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
58354aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
58454aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
58554aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
58654aa6d63Sopenharmony_ci
58754aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
58854aa6d63Sopenharmony_ci    SignToolServiceImpl api;
58954aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
59054aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
59154aa6d63Sopenharmony_ci}
59254aa6d63Sopenharmony_ci
59354aa6d63Sopenharmony_ci/**
59454aa6d63Sopenharmony_ci * @tc.name: pkcs7_test025
59554aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no required sigAlg.
59654aa6d63Sopenharmony_ci * @tc.size: MEDIUM
59754aa6d63Sopenharmony_ci * @tc.type: FUNC
59854aa6d63Sopenharmony_ci * @tc.level Level 1
59954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
60054aa6d63Sopenharmony_ci */
60154aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test025, testing::ext::TestSize.Level1)
60254aa6d63Sopenharmony_ci{
60354aa6d63Sopenharmony_ci    Options options;
60454aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
60554aa6d63Sopenharmony_ci    char keypwd[] = "123456";
60654aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
60754aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
60854aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
60954aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
61054aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
61154aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
61254aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
61354aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
61454aa6d63Sopenharmony_ci
61554aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
61654aa6d63Sopenharmony_ci    SignToolServiceImpl api;
61754aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
61854aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
61954aa6d63Sopenharmony_ci}
62054aa6d63Sopenharmony_ci
62154aa6d63Sopenharmony_ci/**
62254aa6d63Sopenharmony_ci * @tc.name: pkcs7_test026
62354aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no output File.
62454aa6d63Sopenharmony_ci * @tc.size: MEDIUM
62554aa6d63Sopenharmony_ci * @tc.type: FUNC
62654aa6d63Sopenharmony_ci * @tc.level Level 1
62754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
62854aa6d63Sopenharmony_ci */
62954aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test026, testing::ext::TestSize.Level1)
63054aa6d63Sopenharmony_ci{
63154aa6d63Sopenharmony_ci    Options options;
63254aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
63354aa6d63Sopenharmony_ci    char keypwd[] = "123456";
63454aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
63554aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
63654aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
63754aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
63854aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
63954aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
64054aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
64154aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
64254aa6d63Sopenharmony_ci
64354aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
64454aa6d63Sopenharmony_ci    SignToolServiceImpl api;
64554aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
64654aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
64754aa6d63Sopenharmony_ci}
64854aa6d63Sopenharmony_ci
64954aa6d63Sopenharmony_ci/**
65054aa6d63Sopenharmony_ci * @tc.name: pkcs7_test027
65154aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no inFile.
65254aa6d63Sopenharmony_ci * @tc.size: MEDIUM
65354aa6d63Sopenharmony_ci * @tc.type: FUNC
65454aa6d63Sopenharmony_ci * @tc.level Level 1
65554aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
65654aa6d63Sopenharmony_ci */
65754aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test027, testing::ext::TestSize.Level1)
65854aa6d63Sopenharmony_ci{
65954aa6d63Sopenharmony_ci    Options options;
66054aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
66154aa6d63Sopenharmony_ci    char keypwd[] = "123456";
66254aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
66354aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
66454aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
66554aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
66654aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
66754aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
66854aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
66954aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
67054aa6d63Sopenharmony_ci
67154aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
67254aa6d63Sopenharmony_ci    SignToolServiceImpl api;
67354aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
67454aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
67554aa6d63Sopenharmony_ci}
67654aa6d63Sopenharmony_ci
67754aa6d63Sopenharmony_ci/**
67854aa6d63Sopenharmony_ci * @tc.name: pkcs7_test028
67954aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for invalid mode.
68054aa6d63Sopenharmony_ci * @tc.size: MEDIUM
68154aa6d63Sopenharmony_ci * @tc.type: FUNC
68254aa6d63Sopenharmony_ci * @tc.level Level 1
68354aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
68454aa6d63Sopenharmony_ci */
68554aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test028, testing::ext::TestSize.Level1)
68654aa6d63Sopenharmony_ci{
68754aa6d63Sopenharmony_ci    Options options;
68854aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
68954aa6d63Sopenharmony_ci    char keypwd[] = "123456";
69054aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
69154aa6d63Sopenharmony_ci    options[Options::MODE] = "LocalSign";
69254aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
69354aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
69454aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
69554aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
69654aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
69754aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
69854aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
69954aa6d63Sopenharmony_ci
70054aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
70154aa6d63Sopenharmony_ci    SignToolServiceImpl api;
70254aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
70354aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
70454aa6d63Sopenharmony_ci}
70554aa6d63Sopenharmony_ci
70654aa6d63Sopenharmony_ci/**
70754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test029
70854aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no mode param.
70954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
71054aa6d63Sopenharmony_ci * @tc.type: FUNC
71154aa6d63Sopenharmony_ci * @tc.level Level 1
71254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
71354aa6d63Sopenharmony_ci */
71454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test029, testing::ext::TestSize.Level1)
71554aa6d63Sopenharmony_ci{
71654aa6d63Sopenharmony_ci    Options options;
71754aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
71854aa6d63Sopenharmony_ci    char keypwd[] = "123456";
71954aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
72054aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
72154aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
72254aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
72354aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
72454aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
72554aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
72654aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
72754aa6d63Sopenharmony_ci
72854aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
72954aa6d63Sopenharmony_ci    SignToolServiceImpl api;
73054aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
73154aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
73254aa6d63Sopenharmony_ci}
73354aa6d63Sopenharmony_ci
73454aa6d63Sopenharmony_ci/**
73554aa6d63Sopenharmony_ci * @tc.name: pkcs7_test030
73654aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no profile cert file.
73754aa6d63Sopenharmony_ci * @tc.size: MEDIUM
73854aa6d63Sopenharmony_ci * @tc.type: FUNC
73954aa6d63Sopenharmony_ci * @tc.level Level 1
74054aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
74154aa6d63Sopenharmony_ci */
74254aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test030, testing::ext::TestSize.Level1)
74354aa6d63Sopenharmony_ci{
74454aa6d63Sopenharmony_ci    Options options;
74554aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
74654aa6d63Sopenharmony_ci    char keypwd[] = "123456";
74754aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
74854aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
74954aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
75054aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
75154aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
75254aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
75354aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
75454aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
75554aa6d63Sopenharmony_ci
75654aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
75754aa6d63Sopenharmony_ci    SignToolServiceImpl api;
75854aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
75954aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
76054aa6d63Sopenharmony_ci}
76154aa6d63Sopenharmony_ci
76254aa6d63Sopenharmony_ci/**
76354aa6d63Sopenharmony_ci * @tc.name: pkcs7_test031
76454aa6d63Sopenharmony_ci * @tc.desc: Test function of HapSignTool::RunSignProfile() failed for no keystore file.
76554aa6d63Sopenharmony_ci * @tc.size: MEDIUM
76654aa6d63Sopenharmony_ci * @tc.type: FUNC
76754aa6d63Sopenharmony_ci * @tc.level Level 1
76854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
76954aa6d63Sopenharmony_ci */
77054aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test031, testing::ext::TestSize.Level1)
77154aa6d63Sopenharmony_ci{
77254aa6d63Sopenharmony_ci    Options options;
77354aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
77454aa6d63Sopenharmony_ci    char keypwd[] = "123456";
77554aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
77654aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
77754aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
77854aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
77954aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
78054aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
78154aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
78254aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
78354aa6d63Sopenharmony_ci
78454aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
78554aa6d63Sopenharmony_ci    SignToolServiceImpl api;
78654aa6d63Sopenharmony_ci    bool result = ParamsRunTool::RunSignProfile(&options, api);
78754aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
78854aa6d63Sopenharmony_ci}
78954aa6d63Sopenharmony_ci
79054aa6d63Sopenharmony_ci/**
79154aa6d63Sopenharmony_ci * @tc.name: pkcs7_test032
79254aa6d63Sopenharmony_ci * @tc.desc: Test function of SignToolServiceImpl::GetProvisionContent() failed for invalid json.
79354aa6d63Sopenharmony_ci * @tc.size: MEDIUM
79454aa6d63Sopenharmony_ci * @tc.type: FUNC
79554aa6d63Sopenharmony_ci * @tc.level Level 1
79654aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
79754aa6d63Sopenharmony_ci */
79854aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test032, testing::ext::TestSize.Level1)
79954aa6d63Sopenharmony_ci{
80054aa6d63Sopenharmony_ci    std::string ret;
80154aa6d63Sopenharmony_ci    const std::string input = "invalid.txt";
80254aa6d63Sopenharmony_ci    SignToolServiceImpl::GetProvisionContent(input, ret);
80354aa6d63Sopenharmony_ci    EXPECT_TRUE(ret.empty());
80454aa6d63Sopenharmony_ci}
80554aa6d63Sopenharmony_ci
80654aa6d63Sopenharmony_ci/**
80754aa6d63Sopenharmony_ci * @tc.name: pkcs7_test033
80854aa6d63Sopenharmony_ci * @tc.desc: Test function of VerifyHapOpensslUtils::ParsePkcs7Package() failed for invalid packageLen .
80954aa6d63Sopenharmony_ci * @tc.size: MEDIUM
81054aa6d63Sopenharmony_ci * @tc.type: FUNC
81154aa6d63Sopenharmony_ci * @tc.level Level 1
81254aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
81354aa6d63Sopenharmony_ci */
81454aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test033, testing::ext::TestSize.Level1)
81554aa6d63Sopenharmony_ci{
81654aa6d63Sopenharmony_ci    unsigned char packageData[] = "hello,world";
81754aa6d63Sopenharmony_ci    uint32_t packageLen = 0;
81854aa6d63Sopenharmony_ci    Pkcs7Context ctx;
81954aa6d63Sopenharmony_ci    bool result = VerifyHapOpensslUtils::ParsePkcs7Package(packageData, packageLen, ctx);
82054aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
82154aa6d63Sopenharmony_ci}
82254aa6d63Sopenharmony_ci
82354aa6d63Sopenharmony_ci/**
82454aa6d63Sopenharmony_ci * @tc.name: pkcs7_test034
82554aa6d63Sopenharmony_ci * @tc.desc: Test function of SignToolServiceImpl::SignProfile() failed for empty json.
82654aa6d63Sopenharmony_ci * @tc.size: MEDIUM
82754aa6d63Sopenharmony_ci * @tc.type: FUNC
82854aa6d63Sopenharmony_ci * @tc.level Level 1
82954aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
83054aa6d63Sopenharmony_ci */
83154aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test034, testing::ext::TestSize.Level1)
83254aa6d63Sopenharmony_ci{
83354aa6d63Sopenharmony_ci    Options options;
83454aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
83554aa6d63Sopenharmony_ci    char keypwd[] = "123456";
83654aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
83754aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
83854aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
83954aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
84054aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
84154aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
84254aa6d63Sopenharmony_ci    options[Options::IN_FILE] = std::string("test.bin");
84354aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
84454aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
84554aa6d63Sopenharmony_ci
84654aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
84754aa6d63Sopenharmony_ci    SignToolServiceImpl api;
84854aa6d63Sopenharmony_ci    bool result = api.SignProfile(&options);
84954aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
85054aa6d63Sopenharmony_ci}
85154aa6d63Sopenharmony_ci
85254aa6d63Sopenharmony_ci/**
85354aa6d63Sopenharmony_ci * @tc.name: pkcs7_test035
85454aa6d63Sopenharmony_ci * @tc.desc: Test function of SignToolServiceImpl::SignProfile() interface for SUCCESS.
85554aa6d63Sopenharmony_ci * @tc.size: MEDIUM
85654aa6d63Sopenharmony_ci * @tc.type: FUNC
85754aa6d63Sopenharmony_ci * @tc.level Level 1
85854aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
85954aa6d63Sopenharmony_ci */
86054aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test035, testing::ext::TestSize.Level1)
86154aa6d63Sopenharmony_ci{
86254aa6d63Sopenharmony_ci    Options options;
86354aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
86454aa6d63Sopenharmony_ci    char keypwd[] = "123456";
86554aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
86654aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
86754aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_PROFILE_CERT_FILE;
86854aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
86954aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
87054aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
87154aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
87254aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
87354aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
87454aa6d63Sopenharmony_ci
87554aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
87654aa6d63Sopenharmony_ci    SignToolServiceImpl api;
87754aa6d63Sopenharmony_ci    bool result = api.SignProfile(&options);
87854aa6d63Sopenharmony_ci    EXPECT_EQ(result, true);
87954aa6d63Sopenharmony_ci}
88054aa6d63Sopenharmony_ci
88154aa6d63Sopenharmony_ci/**
88254aa6d63Sopenharmony_ci * @tc.name: pkcs7_test036
88354aa6d63Sopenharmony_ci * @tc.desc: Test function of SignToolServiceImpl::SignProfile() failed for invalid certchain.
88454aa6d63Sopenharmony_ci * @tc.size: MEDIUM
88554aa6d63Sopenharmony_ci * @tc.type: FUNC
88654aa6d63Sopenharmony_ci * @tc.level Level 1
88754aa6d63Sopenharmony_ci * @tc.require: SR000H63TL
88854aa6d63Sopenharmony_ci */
88954aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test036, testing::ext::TestSize.Level1)
89054aa6d63Sopenharmony_ci{
89154aa6d63Sopenharmony_ci    Options options;
89254aa6d63Sopenharmony_ci    char keyStorePwd[] = "123456";
89354aa6d63Sopenharmony_ci    char keypwd[] = "123456";
89454aa6d63Sopenharmony_ci    options[Options::KEY_ALIAS] = SIGN_PROFILE_KEY_ALIAS;
89554aa6d63Sopenharmony_ci    options[Options::MODE] = SIGN_PROFILE_MODE;
89654aa6d63Sopenharmony_ci    options[Options::PROFILE_CERT_FILE] = SIGN_PROFILE_DOUBLE_CERT_PEM;
89754aa6d63Sopenharmony_ci    options[Options::SIGN_ALG] = SIGN_PROFILE_SIGN_ALG;
89854aa6d63Sopenharmony_ci    options[Options::KEY_STORE_FILE] = SIGN_PROFILE_KEY_STORE_FILE;
89954aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = SIGN_PROFILE_OUT_FILE;
90054aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_IN_FILE;
90154aa6d63Sopenharmony_ci    options[Options::KEY_RIGHTS] = keypwd;
90254aa6d63Sopenharmony_ci    options[Options::KEY_STORE_RIGHTS] = keyStorePwd;
90354aa6d63Sopenharmony_ci
90454aa6d63Sopenharmony_ci    LocalizationAdapter adapter(&options);
90554aa6d63Sopenharmony_ci    SignToolServiceImpl api;
90654aa6d63Sopenharmony_ci    bool result = api.SignProfile(&options);
90754aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
90854aa6d63Sopenharmony_ci}
90954aa6d63Sopenharmony_ci
91054aa6d63Sopenharmony_ci/**
91154aa6d63Sopenharmony_ci* @tc.name: pkcs7_test037
91254aa6d63Sopenharmony_ci* @tc.desc: Test function of SignToolServiceImpl::VerifyProfile() failed for invalid pkcs7.
91354aa6d63Sopenharmony_ci* @tc.size: MEDIUM
91454aa6d63Sopenharmony_ci* @tc.type: FUNC
91554aa6d63Sopenharmony_ci* @tc.level Level 1
91654aa6d63Sopenharmony_ci* @tc.require: SR000H63TL
91754aa6d63Sopenharmony_ci*/
91854aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test037, testing::ext::TestSize.Level1)
91954aa6d63Sopenharmony_ci{
92054aa6d63Sopenharmony_ci    Options options;
92154aa6d63Sopenharmony_ci    options[Options::IN_FILE] = SIGN_PROFILE_CERT_PEM;
92254aa6d63Sopenharmony_ci    options[Options::OUT_FILE] = VERIFY_PROFILE_OUT_FILE;
92354aa6d63Sopenharmony_ci    bool result = false;
92454aa6d63Sopenharmony_ci    SignToolServiceImpl api;
92554aa6d63Sopenharmony_ci    result = api.VerifyProfile(&options);
92654aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
92754aa6d63Sopenharmony_ci}
92854aa6d63Sopenharmony_ci
92954aa6d63Sopenharmony_ci/**
93054aa6d63Sopenharmony_ci* @tc.name: pkcs7_test038
93154aa6d63Sopenharmony_ci* @tc.desc: Test function of SignToolServiceImpl::VerifyProfile() interface for SUCCESS json写入OUT_FILE.
93254aa6d63Sopenharmony_ci* @tc.size: MEDIUM
93354aa6d63Sopenharmony_ci* @tc.type: FUNC
93454aa6d63Sopenharmony_ci* @tc.level Level 1
93554aa6d63Sopenharmony_ci* @tc.require: SR000H63TL
93654aa6d63Sopenharmony_ci*/
93754aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test038, testing::ext::TestSize.Level1)
93854aa6d63Sopenharmony_ci{
93954aa6d63Sopenharmony_ci    Options options;
94054aa6d63Sopenharmony_ci    options[Options::IN_FILE] = VERIFY_PROFILE_IN_FILE;
94154aa6d63Sopenharmony_ci    bool result = false;
94254aa6d63Sopenharmony_ci    SignToolServiceImpl api;
94354aa6d63Sopenharmony_ci    result = api.VerifyProfile(&options);
94454aa6d63Sopenharmony_ci    EXPECT_EQ(result, true);
94554aa6d63Sopenharmony_ci}
94654aa6d63Sopenharmony_ci
94754aa6d63Sopenharmony_ci/**
94854aa6d63Sopenharmony_ci* @tc.name: pkcs7_test039
94954aa6d63Sopenharmony_ci* @tc.desc: Test function of SignToolServiceImpl::VerifyProfile() failed for invalid pkcs7.
95054aa6d63Sopenharmony_ci* @tc.size: MEDIUM
95154aa6d63Sopenharmony_ci* @tc.type: FUNC
95254aa6d63Sopenharmony_ci* @tc.level Level 1
95354aa6d63Sopenharmony_ci* @tc.require: SR000H63TL
95454aa6d63Sopenharmony_ci*/
95554aa6d63Sopenharmony_ciHWTEST_F(Pkcs7DataTest, pkcs7_test039, testing::ext::TestSize.Level1)
95654aa6d63Sopenharmony_ci{
95754aa6d63Sopenharmony_ci    Options options;
95854aa6d63Sopenharmony_ci    options[Options::IN_FILE] = std::string("text.bin");
95954aa6d63Sopenharmony_ci    bool result = false;
96054aa6d63Sopenharmony_ci    SignToolServiceImpl api;
96154aa6d63Sopenharmony_ci    result = api.VerifyProfile(&options);
96254aa6d63Sopenharmony_ci    EXPECT_EQ(result, false);
96354aa6d63Sopenharmony_ci}
96454aa6d63Sopenharmony_ci
96554aa6d63Sopenharmony_ci}
96654aa6d63Sopenharmony_ci}