From 07f806fa64f7a068cd67e1fde66fd83698a51a24 Mon Sep 17 00:00:00 2001 From: wangtiantian Date: Thu, 9 Feb 2023 10:50:36 +0800 Subject: [PATCH] IssueNo:#I6DVUV Description:add validity Sig:SIG_ApplicaitonFramework Feature or Bugfix:Feature Binary Source:No Signed-off-by: wangtiantian --- .../include/provision/provision_info.h | 6 ++++++ .../src/provision/provision_verify.cpp | 19 +++++++++++++++++++ .../unittest/src/provision_verify_test.cpp | 2 ++ 3 files changed, 27 insertions(+) diff --git a/interfaces/innerkits/appverify/include/provision/provision_info.h b/interfaces/innerkits/appverify/include/provision/provision_info.h index 18d3858..3d62218 100644 --- a/interfaces/innerkits/appverify/include/provision/provision_info.h +++ b/interfaces/innerkits/appverify/include/provision/provision_info.h @@ -57,6 +57,11 @@ struct DebugInfo { std::vector deviceIds; }; +struct Validity { + int64_t notBefore; + int64_t notAfter; +}; + struct ProvisionInfo { int32_t versionCode = 0; std::string versionName; @@ -71,6 +76,7 @@ struct ProvisionInfo { std::string appId; std::string fingerprint; std::vector appPrivilegeCapabilities; + Validity validity; }; } // namespace Verify } // namespace Security diff --git a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp index dd4d0e0..c85ad4c 100644 --- a/interfaces/innerkits/appverify/src/provision/provision_verify.cpp +++ b/interfaces/innerkits/appverify/src/provision/provision_verify.cpp @@ -62,6 +62,9 @@ const string VALUE_DIST_TYPE_ENTERPRISE = "enterprise"; const string VALUE_DIST_TYPE_OS_INTEGRATION = "os_integration"; const string VALUE_DIST_TYPE_CROWDTESTING = "crowdtesting"; const string VALUE_DEVICE_ID_TYPE_UDID = "udid"; +const string VALUE_VALIDITY = "validity"; +const string VALUE_NOT_BEFORE = "not-before"; +const string VALUE_NOT_AFTER = "not-after"; const string GENERIC_BUNDLE_NAME = ".*"; const string VALUE_DEVELOPMENT_MODE = "1"; @@ -84,6 +87,13 @@ inline void GetInt32IfExist(const json& obj, const string& key, int32_t& out) } } +inline void GetInt64IfExist(const json& obj, const string& key, int64_t& out) +{ + if (obj.find(key.c_str()) != obj.end() && obj[key.c_str()].is_number_integer()) { + obj[key.c_str()].get_to(out); + } +} + inline void GetStringArrayIfExist(const json& obj, const string& key, vector& out) { if (obj.find(key.c_str()) != obj.end() && obj[key.c_str()].is_array()) { @@ -167,6 +177,14 @@ void ParseDebugInfo(const json& obj, ProvisionInfo& out) } } +void ParseValidity(const json& obj, Validity& out) +{ + if (IsObjectExist(obj, VALUE_VALIDITY)) { + GetInt64IfExist(obj[VALUE_VALIDITY], VALUE_NOT_BEFORE, out.notBefore); + GetInt64IfExist(obj[VALUE_VALIDITY], VALUE_NOT_AFTER, out.notAfter); + } +} + void from_json(const json& obj, ProvisionInfo& out) { if (!obj.is_object()) { @@ -183,6 +201,7 @@ void from_json(const json& obj, ProvisionInfo& out) ParseDebugInfo(obj, out); GetStringIfExist(obj, KEY_ISSUER, out.issuer); GetStringArrayIfExist(obj, KEY_APP_PRIVILEGE_CAPABILITIES, out.appPrivilegeCapabilities); + ParseValidity(obj, out.validity); } #define RETURN_IF_STRING_IS_EMPTY(str, msg) \ diff --git a/interfaces/innerkits/appverify/test/unittest/src/provision_verify_test.cpp b/interfaces/innerkits/appverify/test/unittest/src/provision_verify_test.cpp index 858ce95..9c19897 100644 --- a/interfaces/innerkits/appverify/test/unittest/src/provision_verify_test.cpp +++ b/interfaces/innerkits/appverify/test/unittest/src/provision_verify_test.cpp @@ -489,6 +489,8 @@ HWTEST_F(ProvisionVerifyTest, ProvisionVerify009, TestSize.Level1) ASSERT_EQ(ret, AppProvisionVerifyResult::PROVISION_OK); ASSERT_EQ(info.distributionType, AppDistType::CROWDTESTING); ASSERT_EQ(info.type, ProvisionType::DEBUG); + ASSERT_EQ(info.validity.notBefore, 1262275200); + ASSERT_EQ(info.validity.notAfter, 2524579300); } /** * @tc.name: Test HarmonyAppProvision ProvisionVerify009 function -- Gitee