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 "signed_file_pos.h" 1654aa6d63Sopenharmony_ci 1754aa6d63Sopenharmony_cinamespace OHOS { 1854aa6d63Sopenharmony_cinamespace SignatureTools { 1954aa6d63Sopenharmony_ci 2054aa6d63Sopenharmony_ciSignedFilePos::SignedFilePos(int32_t fileNameOffset, 2154aa6d63Sopenharmony_ci int32_t fileNameSize, 2254aa6d63Sopenharmony_ci int32_t signInfoOffset, 2354aa6d63Sopenharmony_ci int32_t signInfoSize) 2454aa6d63Sopenharmony_ci :fileNameOffset(fileNameOffset), 2554aa6d63Sopenharmony_ci fileNameSize(fileNameSize), 2654aa6d63Sopenharmony_ci signInfoOffset(signInfoOffset), 2754aa6d63Sopenharmony_ci signInfoSize(signInfoSize) 2854aa6d63Sopenharmony_ci{ 2954aa6d63Sopenharmony_ci} 3054aa6d63Sopenharmony_ci 3154aa6d63Sopenharmony_ciint32_t SignedFilePos::GetFileNameOffset() 3254aa6d63Sopenharmony_ci{ 3354aa6d63Sopenharmony_ci return fileNameOffset; 3454aa6d63Sopenharmony_ci} 3554aa6d63Sopenharmony_ci 3654aa6d63Sopenharmony_ciint32_t SignedFilePos::GetFileNameSize() 3754aa6d63Sopenharmony_ci{ 3854aa6d63Sopenharmony_ci return fileNameSize; 3954aa6d63Sopenharmony_ci} 4054aa6d63Sopenharmony_ci 4154aa6d63Sopenharmony_ciint32_t SignedFilePos::GetSignInfoOffset() 4254aa6d63Sopenharmony_ci{ 4354aa6d63Sopenharmony_ci return signInfoOffset; 4454aa6d63Sopenharmony_ci} 4554aa6d63Sopenharmony_ci 4654aa6d63Sopenharmony_ciint32_t SignedFilePos::GetSignInfoSize() 4754aa6d63Sopenharmony_ci{ 4854aa6d63Sopenharmony_ci return signInfoSize; 4954aa6d63Sopenharmony_ci} 5054aa6d63Sopenharmony_ci 5154aa6d63Sopenharmony_civoid SignedFilePos::IncreaseFileNameOffset(int32_t incOffset) 5254aa6d63Sopenharmony_ci{ 5354aa6d63Sopenharmony_ci fileNameOffset += incOffset; 5454aa6d63Sopenharmony_ci} 5554aa6d63Sopenharmony_ci 5654aa6d63Sopenharmony_civoid SignedFilePos::IncreaseSignInfoOffset(int32_t incOffset) 5754aa6d63Sopenharmony_ci{ 5854aa6d63Sopenharmony_ci signInfoOffset += incOffset; 5954aa6d63Sopenharmony_ci} 6054aa6d63Sopenharmony_ci 6154aa6d63Sopenharmony_ciSignedFilePos SignedFilePos::FromByteArray(std::vector<int8_t> &bytes) 6254aa6d63Sopenharmony_ci{ 6354aa6d63Sopenharmony_ci std::unique_ptr<ByteBuffer> bf = std::make_unique<ByteBuffer>(ByteBuffer(bytes.size())); 6454aa6d63Sopenharmony_ci bf->PutData(0, bytes.data(), bytes.size()); 6554aa6d63Sopenharmony_ci int32_t inFileNameOffset = 0; 6654aa6d63Sopenharmony_ci bf->GetInt32(inFileNameOffset); 6754aa6d63Sopenharmony_ci int32_t inFileNameSize = 0; 6854aa6d63Sopenharmony_ci bf->GetInt32(inFileNameSize); 6954aa6d63Sopenharmony_ci int32_t inSignInfoOffset = 0; 7054aa6d63Sopenharmony_ci bf->GetInt32(inSignInfoOffset); 7154aa6d63Sopenharmony_ci int32_t inSignInfoSize = 0; 7254aa6d63Sopenharmony_ci bf->GetInt32(inSignInfoSize); 7354aa6d63Sopenharmony_ci return SignedFilePos(inFileNameOffset, inFileNameSize, inSignInfoOffset, inSignInfoSize); 7454aa6d63Sopenharmony_ci} 7554aa6d63Sopenharmony_ci 7654aa6d63Sopenharmony_ci} 7754aa6d63Sopenharmony_ci}