1 /*
2 * Copyright (c) 2024-2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 #include "signed_file_pos.h"
16
17 namespace OHOS {
18 namespace SignatureTools {
19
SignedFilePos(int32_t fileNameOffset, int32_t fileNameSize, int32_t signInfoOffset, int32_t signInfoSize)20 SignedFilePos::SignedFilePos(int32_t fileNameOffset,
21 int32_t fileNameSize,
22 int32_t signInfoOffset,
23 int32_t signInfoSize)
24 :fileNameOffset(fileNameOffset),
25 fileNameSize(fileNameSize),
26 signInfoOffset(signInfoOffset),
27 signInfoSize(signInfoSize)
28 {
29 }
30
GetFileNameOffset()31 int32_t SignedFilePos::GetFileNameOffset()
32 {
33 return fileNameOffset;
34 }
35
GetFileNameSize()36 int32_t SignedFilePos::GetFileNameSize()
37 {
38 return fileNameSize;
39 }
40
GetSignInfoOffset()41 int32_t SignedFilePos::GetSignInfoOffset()
42 {
43 return signInfoOffset;
44 }
45
GetSignInfoSize()46 int32_t SignedFilePos::GetSignInfoSize()
47 {
48 return signInfoSize;
49 }
50
IncreaseFileNameOffset(int32_t incOffset)51 void SignedFilePos::IncreaseFileNameOffset(int32_t incOffset)
52 {
53 fileNameOffset += incOffset;
54 }
55
IncreaseSignInfoOffset(int32_t incOffset)56 void SignedFilePos::IncreaseSignInfoOffset(int32_t incOffset)
57 {
58 signInfoOffset += incOffset;
59 }
60
FromByteArray(std::vector<int8_t> &bytes)61 SignedFilePos SignedFilePos::FromByteArray(std::vector<int8_t> &bytes)
62 {
63 std::unique_ptr<ByteBuffer> bf = std::make_unique<ByteBuffer>(ByteBuffer(bytes.size()));
64 bf->PutData(0, bytes.data(), bytes.size());
65 int32_t inFileNameOffset = 0;
66 bf->GetInt32(inFileNameOffset);
67 int32_t inFileNameSize = 0;
68 bf->GetInt32(inFileNameSize);
69 int32_t inSignInfoOffset = 0;
70 bf->GetInt32(inSignInfoOffset);
71 int32_t inSignInfoSize = 0;
72 bf->GetInt32(inSignInfoSize);
73 return SignedFilePos(inFileNameOffset, inFileNameSize, inSignInfoOffset, inSignInfoSize);
74 }
75
76 }
77 }