12ee81decSopenharmony_ci/* 22ee81decSopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd. 32ee81decSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 42ee81decSopenharmony_ci * you may not use this file except in compliance with the License. 52ee81decSopenharmony_ci * You may obtain a copy of the License at 62ee81decSopenharmony_ci * 72ee81decSopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 82ee81decSopenharmony_ci * 92ee81decSopenharmony_ci * Unless required by applicable law or agreed to in writing, software 102ee81decSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 112ee81decSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 122ee81decSopenharmony_ci * See the License for the specific language governing permissions and 132ee81decSopenharmony_ci * limitations under the License. 142ee81decSopenharmony_ci */ 152ee81decSopenharmony_ci 162ee81decSopenharmony_ci#ifndef SEC_UTILS_TLV_H 172ee81decSopenharmony_ci#define SEC_UTILS_TLV_H 182ee81decSopenharmony_ci 192ee81decSopenharmony_ci#include <stdint.h> 202ee81decSopenharmony_ci 212ee81decSopenharmony_ci#ifdef __cplusplus 222ee81decSopenharmony_ciextern "C" { 232ee81decSopenharmony_ci#endif 242ee81decSopenharmony_ci 252ee81decSopenharmony_ci#define TLV_OK 0 262ee81decSopenharmony_ci#define TLV_ERR 1001 272ee81decSopenharmony_ci#define TLV_ERR_INVALID_PARA 1002 282ee81decSopenharmony_ci#define TLV_ERR_PARSE_PAYLOAD_ERR 1003 292ee81decSopenharmony_ci#define TLV_ERR_BUFF_NO_ENOUGH 1004 302ee81decSopenharmony_ci 312ee81decSopenharmony_citypedef struct TlvCommon { 322ee81decSopenharmony_ci uint16_t tag; 332ee81decSopenharmony_ci uint16_t len; 342ee81decSopenharmony_ci void *value; 352ee81decSopenharmony_ci} TlvCommon; 362ee81decSopenharmony_ci 372ee81decSopenharmony_ciuint32_t Serialize(const TlvCommon *tlv, uint32_t tlvCount, uint8_t *buff, uint32_t maxBuffSize, uint32_t *buffSize); 382ee81decSopenharmony_ci 392ee81decSopenharmony_ciuint32_t Deserialize(const uint8_t *buff, uint32_t buffSize, TlvCommon *tlv, uint32_t maxTlvCount, uint32_t *tlvCount); 402ee81decSopenharmony_ci 412ee81decSopenharmony_ci#ifdef __cplusplus 422ee81decSopenharmony_ci} 432ee81decSopenharmony_ci#endif 442ee81decSopenharmony_ci 452ee81decSopenharmony_ci#endif // SEC_UTILS_TLV_H