gwenhywfar 5.14.1
tag16.h File Reference
#include <gwenhywfar/buffer.h>
#include <gwenhywfar/misc.h>
Include dependency graph for tag16.h:

Go to the source code of this file.

Typedefs

typedef struct GWEN_TAG16 GWEN_TAG16

Functions

GWENHYWFAR_API void GWEN_Tag16_DirectlyToBuffer (unsigned int tagType, const char *p, int size, GWEN_BUFFER *buf)
GWENHYWFAR_API int GWEN_Tag16_EndTagInBuffer (int startPos, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_free (GWEN_TAG16 *tag)
GWENHYWFAR_API GWEN_TAG16GWEN_Tag16_fromBuffer (GWEN_BUFFER *mbuf, int isBerTlv)
GWENHYWFAR_API GWEN_TAG16GWEN_Tag16_fromBuffer2 (const uint8_t *p, uint32_t l, int doCopy)
GWENHYWFAR_API const void * GWEN_Tag16_GetTagData (const GWEN_TAG16 *tag)
GWENHYWFAR_API double GWEN_Tag16_GetTagDataAsDouble (const GWEN_TAG16 *tag, double defaultValue)
GWENHYWFAR_API char * GWEN_Tag16_GetTagDataAsNewString (const GWEN_TAG16 *tag, const char *defaultValue)
GWENHYWFAR_API uint16_t GWEN_Tag16_GetTagDataAsUint16 (const GWEN_TAG16 *tag, uint16_t defaultValue)
GWENHYWFAR_API uint32_t GWEN_Tag16_GetTagDataAsUint32 (const GWEN_TAG16 *tag, uint32_t defaultValue)
GWENHYWFAR_API uint64_t GWEN_Tag16_GetTagDataAsUint64 (const GWEN_TAG16 *tag, uint64_t defaultValue)
GWENHYWFAR_API uint8_t GWEN_Tag16_GetTagDataAsUint8 (const GWEN_TAG16 *tag, uint8_t defaultValue)
GWENHYWFAR_API unsigned int GWEN_Tag16_GetTagLength (const GWEN_TAG16 *tag)
GWENHYWFAR_API unsigned int GWEN_Tag16_GetTagSize (const GWEN_TAG16 *tag)
GWENHYWFAR_API unsigned int GWEN_Tag16_GetTagType (const GWEN_TAG16 *tag)
GWENHYWFAR_API const GWEN_TAG16GWEN_Tag16_List_FindFirstByTagType (const GWEN_TAG16_LIST *tagList, unsigned int tagType)
GWENHYWFAR_API const GWEN_TAG16GWEN_Tag16_List_FindNextByTagType (const GWEN_TAG16 *tag, unsigned int tagType)
GWENHYWFAR_API GWEN_TAG16_LISTGWEN_Tag16_List_fromBuffer (const uint8_t *p, uint32_t l, int doCopy)
GWENHYWFAR_API GWEN_TAG16GWEN_Tag16_new (void)
GWENHYWFAR_API GWEN_TAG16GWEN_Tag16_newCopy (unsigned int tagType, unsigned int tagLength, const uint8_t *tagData)
GWENHYWFAR_API GWEN_TAG16GWEN_Tag16_newNoCopy (unsigned int tagType, unsigned int tagLength, const uint8_t *tagData)
GWENHYWFAR_API int GWEN_Tag16_StartTagInBuffer (unsigned int tagType, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteDoubleTagToBuffer (unsigned int tagType, double data, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteStringTagToBuffer (unsigned int tagType, const char *s, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteTagToBuffer (unsigned int tagType, const uint8_t *s, int size, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteUint16TagToBuffer (unsigned int tagType, uint16_t data, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteUint32TagToBuffer (unsigned int tagType, uint32_t data, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteUint64TagToBuffer (unsigned int tagType, uint64_t data, GWEN_BUFFER *buf)
GWENHYWFAR_API void GWEN_Tag16_WriteUint8TagToBuffer (unsigned int tagType, uint8_t data, GWEN_BUFFER *buf)

Typedef Documentation

◆ GWEN_TAG16

typedef struct GWEN_TAG16 GWEN_TAG16

Definition at line 35 of file tag16.h.

Function Documentation

◆ GWEN_Tag16_DirectlyToBuffer()

GWENHYWFAR_API void GWEN_Tag16_DirectlyToBuffer ( unsigned int tagType,
const char * p,
int size,
GWEN_BUFFER * buf )

Definition at line 240 of file tag16.c.

References _writeTagToBuffer().

Referenced by GWEN_Crypt_TokenOHBCI__EncodeKey(), GWEN_Crypt_TokenOHBCI_Encode(), GWEN_Crypt_TokenOHBCI_Write(), GWEN_CryptHead_toBuffer(), GWEN_CryptMgr_Encrypt(), GWEN_CryptMgr_Sign(), GWEN_SigHead_toBuffer(), and GWEN_SigTail_toBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_Tag16_EndTagInBuffer()

GWENHYWFAR_API int GWEN_Tag16_EndTagInBuffer ( int startPos,
GWEN_BUFFER * buf )

Use this to finish a tag16 structure in buffer you started with GWEN_Tag16_StartTagInBuffer.

Internally this function adjusts the size element of the tag16 object in the buffer.

Returns
0 if okay, <0 on error
Parameters
startPosvalue returned by GWEN_Tag16_StartTagInBuffer (i.e. start of the tag in buffer)
bufbuffer to write into

Definition at line 437 of file tag16.c.

References DBG_ERROR, GWEN_Buffer_GetPos(), GWEN_Buffer_GetStart(), GWEN_ERROR_GENERIC, and GWEN_LOGDOMAIN.

Here is the call graph for this function:

◆ GWEN_Tag16_free()

◆ GWEN_Tag16_fromBuffer()

GWENHYWFAR_API GWEN_TAG16 * GWEN_Tag16_fromBuffer ( GWEN_BUFFER * mbuf,
int isBerTlv )

References GWENHYWFAR_API.

◆ GWEN_Tag16_fromBuffer2()

GWENHYWFAR_API GWEN_TAG16 * GWEN_Tag16_fromBuffer2 ( const uint8_t * p,
uint32_t l,
int doCopy )

Definition at line 156 of file tag16.c.

References DBG_ERROR, GWEN_LOGDOMAIN, GWEN_Tag16_newCopy(), GWEN_Tag16_newNoCopy(), and NULL.

Referenced by GWEN_CryptHead_fromBuffer(), GWEN_CryptMgr_Decrypt(), GWEN_CryptMgr_Verify(), GWEN_SigHead_fromBuffer(), GWEN_SigTail_fromBuffer(), GWEN_Tag16_fromBuffer(), and GWEN_Tag16_List_fromBuffer().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_Tag16_GetTagData()

◆ GWEN_Tag16_GetTagDataAsDouble()

GWENHYWFAR_API double GWEN_Tag16_GetTagDataAsDouble ( const GWEN_TAG16 * tag,
double defaultValue )

Definition at line 286 of file tag16.c.

◆ GWEN_Tag16_GetTagDataAsNewString()

GWENHYWFAR_API char * GWEN_Tag16_GetTagDataAsNewString ( const GWEN_TAG16 * tag,
const char * defaultValue )

Definition at line 302 of file tag16.c.

References GWEN_Text_strndup(), and NULL.

Here is the call graph for this function:

◆ GWEN_Tag16_GetTagDataAsUint16()

GWENHYWFAR_API uint16_t GWEN_Tag16_GetTagDataAsUint16 ( const GWEN_TAG16 * tag,
uint16_t defaultValue )

Definition at line 259 of file tag16.c.

◆ GWEN_Tag16_GetTagDataAsUint32()

GWENHYWFAR_API uint32_t GWEN_Tag16_GetTagDataAsUint32 ( const GWEN_TAG16 * tag,
uint32_t defaultValue )

Definition at line 268 of file tag16.c.

◆ GWEN_Tag16_GetTagDataAsUint64()

GWENHYWFAR_API uint64_t GWEN_Tag16_GetTagDataAsUint64 ( const GWEN_TAG16 * tag,
uint64_t defaultValue )

Definition at line 277 of file tag16.c.

◆ GWEN_Tag16_GetTagDataAsUint8()

GWENHYWFAR_API uint8_t GWEN_Tag16_GetTagDataAsUint8 ( const GWEN_TAG16 * tag,
uint8_t defaultValue )

Definition at line 250 of file tag16.c.

◆ GWEN_Tag16_GetTagLength()

◆ GWEN_Tag16_GetTagSize()

GWENHYWFAR_API unsigned int GWEN_Tag16_GetTagSize ( const GWEN_TAG16 * tag)

Return the full size of the complete tag including type, length and data fields.

Definition at line 129 of file tag16.c.

Referenced by GWEN_CryptHead_fromBuffer(), GWEN_CryptMgr_Decrypt(), GWEN_CryptMgr_Verify(), GWEN_SigHead_fromBuffer(), and GWEN_SigTail_fromBuffer().

Here is the caller graph for this function:

◆ GWEN_Tag16_GetTagType()

◆ GWEN_Tag16_List_FindFirstByTagType()

GWENHYWFAR_API const GWEN_TAG16 * GWEN_Tag16_List_FindFirstByTagType ( const GWEN_TAG16_LIST * tagList,
unsigned int tagType )

Definition at line 311 of file tag16.c.

References GWEN_Tag16_List_First(), GWEN_Tag16_List_Next(), and NULL.

Here is the call graph for this function:

◆ GWEN_Tag16_List_FindNextByTagType()

GWENHYWFAR_API const GWEN_TAG16 * GWEN_Tag16_List_FindNextByTagType ( const GWEN_TAG16 * tag,
unsigned int tagType )

Definition at line 327 of file tag16.c.

References GWEN_Tag16_List_Next(), and NULL.

Here is the call graph for this function:

◆ GWEN_Tag16_List_fromBuffer()

GWENHYWFAR_API GWEN_TAG16_LIST * GWEN_Tag16_List_fromBuffer ( const uint8_t * p,
uint32_t l,
int doCopy )

Definition at line 343 of file tag16.c.

References DBG_ERROR, DBG_INFO, GWEN_LOGDOMAIN, GWEN_Tag16_fromBuffer2(), GWEN_Tag16_List_Add(), GWEN_Tag16_List_free(), GWEN_Tag16_List_GetCount(), GWEN_Tag16_List_new(), and NULL.

Here is the call graph for this function:

◆ GWEN_Tag16_new()

GWENHYWFAR_API GWEN_TAG16 * GWEN_Tag16_new ( void )

Definition at line 48 of file tag16.c.

References GWEN_LIST_INIT, and GWEN_NEW_OBJECT.

Referenced by GWEN_Tag16_newCopy(), and GWEN_Tag16_newNoCopy().

Here is the caller graph for this function:

◆ GWEN_Tag16_newCopy()

GWENHYWFAR_API GWEN_TAG16 * GWEN_Tag16_newCopy ( unsigned int tagType,
unsigned int tagLength,
const uint8_t * tagData )

Definition at line 78 of file tag16.c.

References GWEN_Tag16_new().

Referenced by GWEN_Tag16_fromBuffer2().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_Tag16_newNoCopy()

GWENHYWFAR_API GWEN_TAG16 * GWEN_Tag16_newNoCopy ( unsigned int tagType,
unsigned int tagLength,
const uint8_t * tagData )

Definition at line 60 of file tag16.c.

References GWEN_Tag16_new().

Referenced by GWEN_Tag16_fromBuffer2().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ GWEN_Tag16_StartTagInBuffer()

GWENHYWFAR_API int GWEN_Tag16_StartTagInBuffer ( unsigned int tagType,
GWEN_BUFFER * buf )

Use this function together with GWEN_Tag16_EndTagInBuffer to create complex tags in a buffer. This can be used to cascade tags into a buffer.

Internally this function writes the begin of a TAG16 structure into buffer. After that you can add as many bytes as you like. Finally call GWEN_Tag16_EndTagInBuffer to finish the tag by correcting the size element of the tag16 in the buffer.

Returns
start position of the newly created tag in buffer (<0 on error)
Parameters
tagType8-bit type code/name/id of the tag (meaning of this code is up to the caller)
bufbuffer to write into

Definition at line 405 of file tag16.c.

References DBG_INFO, GWEN_Buffer_AdjustUsedBytes(), GWEN_Buffer_AllocRoom(), GWEN_Buffer_GetPos(), GWEN_Buffer_GetPosPointer(), GWEN_Buffer_IncrementPos(), GWEN_ERROR_INVALID, and GWEN_LOGDOMAIN.

Here is the call graph for this function:

◆ GWEN_Tag16_WriteDoubleTagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteDoubleTagToBuffer ( unsigned int tagType,
double data,
GWEN_BUFFER * buf )

Definition at line 225 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteStringTagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteStringTagToBuffer ( unsigned int tagType,
const char * s,
GWEN_BUFFER * buf )

Definition at line 181 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteTagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteTagToBuffer ( unsigned int tagType,
const uint8_t * s,
int size,
GWEN_BUFFER * buf )

Definition at line 377 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteUint16TagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteUint16TagToBuffer ( unsigned int tagType,
uint16_t data,
GWEN_BUFFER * buf )

Definition at line 195 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteUint32TagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteUint32TagToBuffer ( unsigned int tagType,
uint32_t data,
GWEN_BUFFER * buf )

Definition at line 205 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteUint64TagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteUint64TagToBuffer ( unsigned int tagType,
uint64_t data,
GWEN_BUFFER * buf )

Definition at line 215 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function:

◆ GWEN_Tag16_WriteUint8TagToBuffer()

GWENHYWFAR_API void GWEN_Tag16_WriteUint8TagToBuffer ( unsigned int tagType,
uint8_t data,
GWEN_BUFFER * buf )

Definition at line 188 of file tag16.c.

References _writeTagToBuffer().

Here is the call graph for this function: