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