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, ¬Before, 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, ¬Before, 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, ¬Before, ¬After); 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, ¬Before, ¬After); 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, ¬Before, ¬After); 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, ¬Before, ¬After); 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}