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#ifndef SIGNATRUETOOLS_PROFILE_INFO_H 1654aa6d63Sopenharmony_ci#define SIGNATRUETOOLS_PROFILE_INFO_H 1754aa6d63Sopenharmony_ci 1854aa6d63Sopenharmony_ci#include <string> 1954aa6d63Sopenharmony_ci#include <vector> 2054aa6d63Sopenharmony_ci#include <memory> 2154aa6d63Sopenharmony_ci 2254aa6d63Sopenharmony_ci#include "export_define.h" 2354aa6d63Sopenharmony_ci 2454aa6d63Sopenharmony_cinamespace OHOS { 2554aa6d63Sopenharmony_cinamespace SignatureTools { 2654aa6d63Sopenharmony_ci 2754aa6d63Sopenharmony_cienum ProvisionType { 2854aa6d63Sopenharmony_ci NONE_PROVISION_TYPE, 2954aa6d63Sopenharmony_ci RELEASE, 3054aa6d63Sopenharmony_ci DEBUG 3154aa6d63Sopenharmony_ci}; 3254aa6d63Sopenharmony_cienum AppDistType { 3354aa6d63Sopenharmony_ci NONE_TYPE, 3454aa6d63Sopenharmony_ci APP_GALLERY, 3554aa6d63Sopenharmony_ci ENTERPRISE, 3654aa6d63Sopenharmony_ci OS_INTEGRATION, 3754aa6d63Sopenharmony_ci CROWDTESTING, 3854aa6d63Sopenharmony_ci ENTERPRISE_NORMAL, 3954aa6d63Sopenharmony_ci ENTERPRISE_MDM 4054aa6d63Sopenharmony_ci}; 4154aa6d63Sopenharmony_citypedef struct BundleInfoSt { 4254aa6d63Sopenharmony_ci std::string developerId; 4354aa6d63Sopenharmony_ci std::string apl; 4454aa6d63Sopenharmony_ci std::string distributionCertificate; 4554aa6d63Sopenharmony_ci std::string developmentCertificate; 4654aa6d63Sopenharmony_ci std::string bundleName; 4754aa6d63Sopenharmony_ci std::string appIdentifier; 4854aa6d63Sopenharmony_ci std::vector<std::string> dataGroupIds; 4954aa6d63Sopenharmony_ci std::string appFeature; 5054aa6d63Sopenharmony_ci}BundleInfo; 5154aa6d63Sopenharmony_citypedef struct AclsSt { 5254aa6d63Sopenharmony_ci std::vector<std::string> allowedAcls; 5354aa6d63Sopenharmony_ci}Acls; 5454aa6d63Sopenharmony_citypedef struct PermissionsSt { 5554aa6d63Sopenharmony_ci std::vector<std::string> restrictedCapabilities; 5654aa6d63Sopenharmony_ci std::vector<std::string> restrictedPermissions; 5754aa6d63Sopenharmony_ci}Permissions; 5854aa6d63Sopenharmony_citypedef struct DebugInfoSt { 5954aa6d63Sopenharmony_ci std::vector<std::string> deviceIds; 6054aa6d63Sopenharmony_ci std::string deviceIdType; 6154aa6d63Sopenharmony_ci}DebugInfo; 6254aa6d63Sopenharmony_citypedef struct ValiditySt { 6354aa6d63Sopenharmony_ci int64_t notAfter = 0; 6454aa6d63Sopenharmony_ci int64_t notBefore = 0; 6554aa6d63Sopenharmony_ci}Validity; 6654aa6d63Sopenharmony_citypedef struct MetadataSt { 6754aa6d63Sopenharmony_ci std::string value; 6854aa6d63Sopenharmony_ci std::string resource; 6954aa6d63Sopenharmony_ci std::string name; 7054aa6d63Sopenharmony_ci}Metadata; 7154aa6d63Sopenharmony_cistruct ProfileInfo { 7254aa6d63Sopenharmony_ci DLL_EXPORT ProfileInfo(); 7354aa6d63Sopenharmony_ci DLL_EXPORT ~ProfileInfo(); 7454aa6d63Sopenharmony_ci DLL_EXPORT ProfileInfo(const ProfileInfo& info); 7554aa6d63Sopenharmony_ci DLL_EXPORT ProfileInfo& operator=(const ProfileInfo& info); 7654aa6d63Sopenharmony_ci int32_t versionCode = 0; 7754aa6d63Sopenharmony_ci std::string uuid; 7854aa6d63Sopenharmony_ci std::string versionName; 7954aa6d63Sopenharmony_ci AppDistType distributionType = NONE_TYPE; 8054aa6d63Sopenharmony_ci ProvisionType type = NONE_PROVISION_TYPE; 8154aa6d63Sopenharmony_ci BundleInfoSt bundleInfo; 8254aa6d63Sopenharmony_ci PermissionsSt permissions; 8354aa6d63Sopenharmony_ci AclsSt acls; 8454aa6d63Sopenharmony_ci std::string issuer; 8554aa6d63Sopenharmony_ci DebugInfoSt debugInfo; 8654aa6d63Sopenharmony_ci std::string fingerprint; 8754aa6d63Sopenharmony_ci std::string appId; 8854aa6d63Sopenharmony_ci std::vector<std::string> appPrivilegeCapabilities; 8954aa6d63Sopenharmony_ci ValiditySt validity; 9054aa6d63Sopenharmony_ci int32_t profileBlockLength = 0; 9154aa6d63Sopenharmony_ci std::vector<MetadataSt> metadatas; 9254aa6d63Sopenharmony_ci std::string organization; 9354aa6d63Sopenharmony_ci std::string appServiceCapabilities; 9454aa6d63Sopenharmony_ci std::unique_ptr<unsigned char[]> profileBlock; 9554aa6d63Sopenharmony_ci}; 9654aa6d63Sopenharmony_ci} // namespace SignatureTools 9754aa6d63Sopenharmony_ci} // namespace OHOS 9854aa6d63Sopenharmony_ci 9954aa6d63Sopenharmony_ci#endif // SIGNATRUETOOLS_PROFILE_INFO_H 100