gwenhywfar 5.12.0
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
19typedef struct GWEN_TLV GWEN_TLV;
20
22
23
28
30GWEN_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
44int 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
54
56unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv);
58unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv);
60const void *GWEN_TLV_GetTagData(const GWEN_TLV *tlv);
61
65unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv);
67unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv);
68
69
80int GWEN_TLV_ReadHeader(GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv);
81
82
93int GWEN_TLV_WriteHeader(unsigned int tagType,
94 unsigned int tagMode,
95 uint64_t tagLength,
96 int isBerTlv,
97 GWEN_BUFFER *mbuf);
98
99
109int GWEN_TLV_Buffer_To_DB(GWEN_DB_NODE *dbRecord, GWEN_BUFFER *mbuf, int len);
110
119uint32_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
#define GWEN_LIST_FUNCTION_LIB_DEFS(t, pr, decl)
Definition list1.h:349
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 const void * GWEN_TLV_GetTagData(const 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 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_create(unsigned int tagType, unsigned int tagMode, const void *p, unsigned int dlen, int isBerTlv)
GWENHYWFAR_API GWEN_TLV * GWEN_TLV_fromBuffer(GWEN_BUFFER *mbuf, int isBerTlv)
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)