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 16 #include "data_descriptor.h" 17 #include "signature_tools_log.h" 18 19 namespace OHOS { 20 namespace SignatureTools { GetDataDescriptor(const std::string & bytes)21DataDescriptor* DataDescriptor::GetDataDescriptor(const std::string& bytes) 22 { 23 if (bytes.size() != DES_LENGTH) { 24 SIGNATURE_TOOLS_LOGE("read Data Descriptor failed"); 25 return nullptr; 26 } 27 28 ByteBuffer bf(bytes.c_str(), bytes.size()); 29 30 DataDescriptor* data = new DataDescriptor(); 31 int signValue; 32 bf.GetInt32(signValue); 33 if (signValue != SIGNATURE) { 34 delete data; 35 SIGNATURE_TOOLS_LOGE("read Data Descriptor failed"); 36 return nullptr; 37 } 38 int crc2Value; 39 bf.GetInt32(crc2Value); 40 data->SetCrc32(crc2Value); 41 42 uint32_t dataDescUInt32Value; 43 bf.GetUInt32(dataDescUInt32Value); 44 data->SetCompressedSize(dataDescUInt32Value); 45 46 bf.GetUInt32(dataDescUInt32Value); 47 data->SetUnCompressedSize(dataDescUInt32Value); 48 49 return data; 50 } 51 ToBytes()52std::string DataDescriptor::ToBytes() 53 { 54 ByteBuffer bf(DES_LENGTH); 55 bf.PutInt32(SIGNATURE); 56 bf.PutInt32(m_crc32); 57 bf.PutUInt32(m_compressedSize); 58 bf.PutUInt32(m_unCompressedSize); 59 60 return bf.ToString(); 61 } 62 GetDesLength()63int DataDescriptor::GetDesLength() 64 { 65 return DES_LENGTH; 66 } 67 GetSIGNATURE()68int DataDescriptor::GetSIGNATURE() 69 { 70 return SIGNATURE; 71 } 72 GetCrc32()73int DataDescriptor::GetCrc32() 74 { 75 return m_crc32; 76 } 77 SetCrc32(int crc32)78void DataDescriptor::SetCrc32(int crc32) 79 { 80 m_crc32 = crc32; 81 } 82 GetCompressedSize()83uint32_t DataDescriptor::GetCompressedSize() 84 { 85 return m_compressedSize; 86 } 87 SetCompressedSize(uint32_t compressedSize)88void DataDescriptor::SetCompressedSize(uint32_t compressedSize) 89 { 90 m_compressedSize = compressedSize; 91 } 92 GetUnCompressedSize()93uint32_t DataDescriptor::GetUnCompressedSize() 94 { 95 return m_unCompressedSize; 96 } 97 SetUnCompressedSize(uint32_t unCompressedSize)98void DataDescriptor::SetUnCompressedSize(uint32_t unCompressedSize) 99 { 100 m_unCompressedSize = unCompressedSize; 101 } 102 } // namespace SignatureTools 103 } // namespace OHOS