gwenhywfar  5.11.1beta
tlv.h
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Sun Jun 13 2004
3  copyright : (C) 2004-2011 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 
11 #ifndef GWENHYWFAR_TLV_H
12 #define GWENHYWFAR_TLV_H
13 
14 #include <gwenhywfar/buffer.h>
15 #include <gwenhywfar/misc.h>
16 #include <gwenhywfar/db.h>
17 
18 
19 typedef struct GWEN_TLV GWEN_TLV;
20 
22 
23 
28 
30 GWEN_TLV *GWEN_TLV_create(unsigned int tagType,
31  unsigned int tagMode,
32  const void *p,
33  unsigned int dlen,
34  int isBerTlv);
35 
36 
39 
42 
44 int GWEN_TLV_DirectlyToBuffer(unsigned int tagType,
45  unsigned int tagMode,
46  const void *tagData,
47  int tagLength,
48  int isBerTlv,
49  GWEN_BUFFER *mbuf);
50 
51 
53 int GWEN_TLV_IsBerTlv(const GWEN_TLV *tlv);
54 
56 unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv);
58 unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv);
60 const void *GWEN_TLV_GetTagData(const GWEN_TLV *tlv);
61 
65 unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv);
67 unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv);
68 
69 
80 int GWEN_TLV_ReadHeader(GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv);
81 
82 
93 int GWEN_TLV_WriteHeader(unsigned int tagType,
94  unsigned int tagMode,
95  uint64_t tagLength,
96  int isBerTlv,
97  GWEN_BUFFER *mbuf);
98 
99 
109 int GWEN_TLV_Buffer_To_DB(GWEN_DB_NODE *dbRecord, GWEN_BUFFER *mbuf, int len);
110 
119 uint32_t GWEN_TLV_ParseLength(GWEN_BUFFER *mbuf, uint32_t *tag_len_len);
120 
121 #endif /* GWENHYWFAR_TLV_H */
122 
struct GWEN_DB_NODE GWEN_DB_NODE
Definition: db.h:228
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
Definition: buffer.h:38
#define GWENHYWFAR_API
Definition: gwenhywfarapi.h:67
#define GWEN_LIST_FUNCTION_LIB_DEFS(t, pr, decl)
Definition: list1.h:348
GWENHYWFAR_API int GWEN_TLV_ReadHeader(GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv)
GWENHYWFAR_API int GWEN_TLV_toBuffer(GWEN_TLV *tlv, GWEN_BUFFER *mbuf)
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv)
GWENHYWFAR_API void GWEN_TLV_free(GWEN_TLV *tlv)
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv)
GWENHYWFAR_API int GWEN_TLV_IsContructed(const GWEN_TLV *tlv)
GWENHYWFAR_API GWEN_TLV * GWEN_TLV_create(unsigned int tagType, unsigned int tagMode, const void *p, unsigned int dlen, int isBerTlv)
GWENHYWFAR_API int GWEN_TLV_Buffer_To_DB(GWEN_DB_NODE *dbRecord, GWEN_BUFFER *mbuf, int len)
GWENHYWFAR_API int GWEN_TLV_IsBerTlv(const GWEN_TLV *tlv)
GWENHYWFAR_API uint32_t GWEN_TLV_ParseLength(GWEN_BUFFER *mbuf, uint32_t *tag_len_len)
struct GWEN_TLV GWEN_TLV
Definition: tlv.h:19
GWENHYWFAR_API GWEN_TLV * GWEN_TLV_new(void)
GWENHYWFAR_API int GWEN_TLV_DirectlyToBuffer(unsigned int tagType, unsigned int tagMode, const void *tagData, int tagLength, int isBerTlv, GWEN_BUFFER *mbuf)
GWENHYWFAR_API unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv)
GWENHYWFAR_API unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv)
GWENHYWFAR_API int GWEN_TLV_WriteHeader(unsigned int tagType, unsigned int tagMode, uint64_t tagLength, int isBerTlv, GWEN_BUFFER *mbuf)
GWENHYWFAR_API GWEN_TLV * GWEN_TLV_fromBuffer(GWEN_BUFFER *mbuf, int isBerTlv)
GWENHYWFAR_API const void * GWEN_TLV_GetTagData(const GWEN_TLV *tlv)