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 "profile_info.h" 1654aa6d63Sopenharmony_ci#include "signature_info.h" 1754aa6d63Sopenharmony_ci#include "securec.h" 1854aa6d63Sopenharmony_ci#include "signature_tools_log.h" 1954aa6d63Sopenharmony_ci 2054aa6d63Sopenharmony_cinamespace OHOS { 2154aa6d63Sopenharmony_cinamespace SignatureTools { 2254aa6d63Sopenharmony_ci 2354aa6d63Sopenharmony_ciProfileInfo::ProfileInfo() 2454aa6d63Sopenharmony_ci{ 2554aa6d63Sopenharmony_ci profileBlock = nullptr; 2654aa6d63Sopenharmony_ci} 2754aa6d63Sopenharmony_ciProfileInfo::~ProfileInfo() 2854aa6d63Sopenharmony_ci{ 2954aa6d63Sopenharmony_ci profileBlock.reset(nullptr); 3054aa6d63Sopenharmony_ci} 3154aa6d63Sopenharmony_ciProfileInfo::ProfileInfo(const ProfileInfo& profileInfo) 3254aa6d63Sopenharmony_ci{ 3354aa6d63Sopenharmony_ci *this = profileInfo; 3454aa6d63Sopenharmony_ci} 3554aa6d63Sopenharmony_ciProfileInfo& ProfileInfo::operator=(const ProfileInfo& profileInfo) 3654aa6d63Sopenharmony_ci{ 3754aa6d63Sopenharmony_ci if (this == &profileInfo) { 3854aa6d63Sopenharmony_ci return *this; 3954aa6d63Sopenharmony_ci } 4054aa6d63Sopenharmony_ci this->versionCode = profileInfo.versionCode; 4154aa6d63Sopenharmony_ci this->versionName = profileInfo.versionName; 4254aa6d63Sopenharmony_ci this->uuid = profileInfo.uuid; 4354aa6d63Sopenharmony_ci this->type = profileInfo.type; 4454aa6d63Sopenharmony_ci this->distributionType = profileInfo.distributionType; 4554aa6d63Sopenharmony_ci this->bundleInfo = profileInfo.bundleInfo; 4654aa6d63Sopenharmony_ci this->acls = profileInfo.acls; 4754aa6d63Sopenharmony_ci this->permissions = profileInfo.permissions; 4854aa6d63Sopenharmony_ci this->debugInfo = profileInfo.debugInfo; 4954aa6d63Sopenharmony_ci this->issuer = profileInfo.issuer; 5054aa6d63Sopenharmony_ci this->appId = profileInfo.appId; 5154aa6d63Sopenharmony_ci this->fingerprint = profileInfo.fingerprint; 5254aa6d63Sopenharmony_ci this->appPrivilegeCapabilities = profileInfo.appPrivilegeCapabilities; 5354aa6d63Sopenharmony_ci this->validity = profileInfo.validity; 5454aa6d63Sopenharmony_ci this->metadatas = profileInfo.metadatas; 5554aa6d63Sopenharmony_ci this->profileBlockLength = profileInfo.profileBlockLength; 5654aa6d63Sopenharmony_ci (this->profileBlock).reset(nullptr); 5754aa6d63Sopenharmony_ci if (profileInfo.profileBlockLength != 0 && profileInfo.profileBlock != nullptr) { 5854aa6d63Sopenharmony_ci this->profileBlock = std::make_unique<unsigned char[]>(profileInfo.profileBlockLength); 5954aa6d63Sopenharmony_ci unsigned char* profileBlockData = (this->profileBlock).get(); 6054aa6d63Sopenharmony_ci unsigned char* originalProfile = profileInfo.profileBlock.get(); 6154aa6d63Sopenharmony_ci if (profileBlockData == nullptr) { 6254aa6d63Sopenharmony_ci return *this; 6354aa6d63Sopenharmony_ci } 6454aa6d63Sopenharmony_ci std::copy(originalProfile, originalProfile + profileInfo.profileBlockLength, profileBlockData); 6554aa6d63Sopenharmony_ci } 6654aa6d63Sopenharmony_ci this->appServiceCapabilities = profileInfo.appServiceCapabilities; 6754aa6d63Sopenharmony_ci this->organization = profileInfo.organization; 6854aa6d63Sopenharmony_ci return *this; 6954aa6d63Sopenharmony_ci} 7054aa6d63Sopenharmony_ci} // namespace SignatureTools 7154aa6d63Sopenharmony_ci} // namespace OHOS