gwenhywfar  4.3.3
Defines | Functions
tlv.c File Reference
#include "tlv_p.h"
#include <gwenhywfar/debug.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/misc.h>
#include <gwenhywfar/text.h>
#include <stdlib.h>
#include <assert.h>
#include <string.h>

Go to the source code of this file.

Defines

#define DISABLE_DEBUGLOG

Functions

GWEN_TLVGWEN_TLV_create (unsigned int tagType, unsigned int tagMode, const void *p, unsigned int dlen, int isBerTlv)
int GWEN_TLV_DirectlyToBuffer (unsigned int tagType, unsigned int tagMode, const void *tagData, int tagLength, int isBerTlv, GWEN_BUFFER *mbuf)
void GWEN_TLV_free (GWEN_TLV *tlv)
GWEN_TLVGWEN_TLV_fromBuffer (GWEN_BUFFER *mbuf, int isBerTlv)
unsigned int GWEN_TLV_GetClass (const GWEN_TLV *tlv)
const void * GWEN_TLV_GetTagData (const GWEN_TLV *tlv)
unsigned int GWEN_TLV_GetTagLength (const GWEN_TLV *tlv)
unsigned int GWEN_TLV_GetTagSize (const GWEN_TLV *tlv)
unsigned int GWEN_TLV_GetTagType (const GWEN_TLV *tlv)
int GWEN_TLV_IsBerTlv (const GWEN_TLV *tlv)
int GWEN_TLV_IsContructed (const GWEN_TLV *tlv)
GWEN_TLVGWEN_TLV_new (void)
int GWEN_TLV_ReadHeader (GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv)
int GWEN_TLV_toBuffer (GWEN_TLV *tlv, GWEN_BUFFER *mbuf)
int GWEN_TLV_WriteHeader (unsigned int tagType, unsigned int tagMode, uint64_t tagLength, int isBerTlv, GWEN_BUFFER *mbuf)

Define Documentation

Definition at line 15 of file tlv.c.


Function Documentation

GWEN_TLV* GWEN_TLV_create ( unsigned int  tagType,
unsigned int  tagMode,
const void *  p,
unsigned int  dlen,
int  isBerTlv 
)

Definition at line 53 of file tlv.c.

References DBG_ERROR, GWEN_LOGDOMAIN, and GWEN_TLV_new().

int GWEN_TLV_DirectlyToBuffer ( unsigned int  tagType,
unsigned int  tagMode,
const void *  tagData,
int  tagLength,
int  isBerTlv,
GWEN_BUFFER mbuf 
)
void GWEN_TLV_free ( GWEN_TLV tlv)

Definition at line 43 of file tlv.c.

References GWEN_FREE_OBJECT, and GWEN_LIST_FINI.

Referenced by GWEN_Sar_ScanFile().

GWEN_TLV* GWEN_TLV_fromBuffer ( GWEN_BUFFER mbuf,
int  isBerTlv 
)
unsigned int GWEN_TLV_GetClass ( const GWEN_TLV tlv)

Definition at line 260 of file tlv.c.

const void* GWEN_TLV_GetTagData ( const GWEN_TLV tlv)

Definition at line 124 of file tlv.c.

Referenced by GWEN_Sar_TlvToFileHeader().

unsigned int GWEN_TLV_GetTagLength ( const GWEN_TLV tlv)

Definition at line 110 of file tlv.c.

Referenced by GWEN_Sar_ScanFile(), and GWEN_Sar_TlvToFileHeader().

unsigned int GWEN_TLV_GetTagSize ( const GWEN_TLV tlv)

Definition at line 117 of file tlv.c.

Referenced by GWEN_Sar_ScanFile().

unsigned int GWEN_TLV_GetTagType ( const GWEN_TLV tlv)

Definition at line 103 of file tlv.c.

Referenced by GWEN_Sar_ScanFile(), and GWEN_Sar_TlvToFileHeader().

int GWEN_TLV_IsBerTlv ( const GWEN_TLV tlv)

Definition at line 96 of file tlv.c.

int GWEN_TLV_IsContructed ( const GWEN_TLV tlv)

Definition at line 253 of file tlv.c.

GWEN_TLV* GWEN_TLV_new ( void  )

Definition at line 32 of file tlv.c.

References GWEN_LIST_INIT, and GWEN_NEW_OBJECT.

Referenced by GWEN_Sar_ScanFile(), GWEN_TLV_create(), and GWEN_TLV_fromBuffer().

int GWEN_TLV_ReadHeader ( GWEN_TLV tlv,
const uint8_t *  p,
uint32_t  size,
int  isBerTlv 
)

Reads a TLV header from a buffer (tag and length) and returns the number of bytes used by the header.

Returns:
number of bytes used to specify tag and length (i.e. TLV size without the data part)
Parameters:
tlvTLV to read the header into
ppointer to a buffer containing at least the header
sizesiez of the buffer pointed to by p
isBerTlvif !=0 then the TLV is supposed to be a BER-TLV object

Definition at line 340 of file tlv.c.

References DBG_DEBUG, DBG_ERROR, GWEN_ERROR_BAD_DATA, and GWEN_LOGDOMAIN.

Referenced by GWEN_Sar_ScanFile().

int GWEN_TLV_toBuffer ( GWEN_TLV tlv,
GWEN_BUFFER mbuf 
)

Definition at line 267 of file tlv.c.

References GWEN_TLV_DirectlyToBuffer().

int GWEN_TLV_WriteHeader ( unsigned int  tagType,
unsigned int  tagMode,
uint64_t  tagLength,
int  isBerTlv,
GWEN_BUFFER mbuf 
)

Directly writes a TLV header (tag and length) to the given buffer.

Returns:
0 if ok, error code otherwise
Parameters:
tagTypetag id
tagModebits 5, 6 and 7 of the first TLV byte (bits 6/7: class, bit 5: constructed)
tagLengthlength of the data part introduced by the TLV header
isBerTlvif !=0 then the TLV is supposed to be a BER-TLV object
mbufbuffer to receive the TLV header

Definition at line 477 of file tlv.c.

References GWEN_Buffer_AppendByte().

Referenced by GWEN_Sar_AddAndDigestFileReg(), and GWEN_Sar_AddFile().