gwenhywfar  4.3.3
tlv.h
Go to the documentation of this file.
00001 /***************************************************************************
00002     begin       : Sun Jun 13 2004
00003     copyright   : (C) 2004-2011 by Martin Preuss
00004     email       : martin@libchipcard.de
00005 
00006  ***************************************************************************
00007  *          Please see toplevel file COPYING for license details           *
00008  ***************************************************************************/
00009 
00010 
00011 #ifndef GWENHYWFAR_TLV_H
00012 #define GWENHYWFAR_TLV_H
00013 
00014 #include <gwenhywfar/buffer.h>
00015 #include <gwenhywfar/misc.h>
00016 
00017 
00018 typedef struct GWEN_TLV GWEN_TLV;
00019 
00020 GWEN_LIST_FUNCTION_LIB_DEFS(GWEN_TLV, GWEN_TLV, GWENHYWFAR_API)
00021 
00022 
00023 GWENHYWFAR_API
00024 GWEN_TLV *GWEN_TLV_new(void);
00025 GWENHYWFAR_API
00026 void GWEN_TLV_free(GWEN_TLV *tlv);
00027 
00028 GWENHYWFAR_API
00029 GWEN_TLV *GWEN_TLV_create(unsigned int tagType,
00030                           unsigned int tagMode,
00031                           const void *p,
00032                           unsigned int dlen,
00033                           int isBerTlv);
00034 
00035 
00036 GWENHYWFAR_API
00037 GWEN_TLV *GWEN_TLV_fromBuffer(GWEN_BUFFER *mbuf, int isBerTlv);
00038 
00039 GWENHYWFAR_API
00040 int GWEN_TLV_toBuffer(GWEN_TLV *tlv, GWEN_BUFFER *mbuf);
00041 
00042 GWENHYWFAR_API
00043 int GWEN_TLV_DirectlyToBuffer(unsigned int tagType,
00044                               unsigned int tagMode,
00045                               const void *tagData,
00046                               int tagLength,
00047                               int isBerTlv,
00048                               GWEN_BUFFER *mbuf);
00049 
00050 
00051 GWENHYWFAR_API
00052 int GWEN_TLV_IsBerTlv(const GWEN_TLV *tlv);
00053 
00054 GWENHYWFAR_API
00055 unsigned int GWEN_TLV_GetTagType(const GWEN_TLV *tlv);
00056 GWENHYWFAR_API
00057 unsigned int GWEN_TLV_GetTagLength(const GWEN_TLV *tlv);
00058 GWENHYWFAR_API
00059 const void *GWEN_TLV_GetTagData(const GWEN_TLV *tlv);
00060 
00061 GWENHYWFAR_API
00062 int GWEN_TLV_IsContructed(const GWEN_TLV *tlv);
00063 GWENHYWFAR_API
00064 unsigned int GWEN_TLV_GetClass(const GWEN_TLV *tlv);
00065 GWENHYWFAR_API
00066 unsigned int GWEN_TLV_GetTagSize(const GWEN_TLV *tlv);
00067 
00068 
00078 GWENHYWFAR_API
00079 int GWEN_TLV_ReadHeader(GWEN_TLV *tlv, const uint8_t *p, uint32_t size, int isBerTlv);
00080 
00081 
00091 GWENHYWFAR_API
00092 int GWEN_TLV_WriteHeader(unsigned int tagType,
00093                          unsigned int tagMode,
00094                          uint64_t tagLength,
00095                          int isBerTlv,
00096                          GWEN_BUFFER *mbuf);
00097 
00098 
00099 #endif /* GWENHYWFAR_TLV_H */
00100