gwenhywfar
4.3.1
|
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