14#define DISABLE_DEBUGLOG
17#include "crypthead_p.h"
19#include <gwenhywfar/misc.h>
20#include <gwenhywfar/debug.h>
21#include <gwenhywfar/tag16.h>
42 if (ch->pKey &&ch->lKey)
67 const char *subtagPtr;
79 if (subtagLen && subtagPtr) {
82 case GWEN_CRYPTHEAD_TLV_KEYNAME:
83 ch->keyName=(
char *)malloc(subtagLen+1);
84 memmove(ch->keyName, subtagPtr, subtagLen);
85 ch->keyName[subtagLen]=0;
88 case GWEN_CRYPTHEAD_TLV_KEYNUM:
89 if (sscanf(subtagPtr,
"%d", &i)==1)
93 case GWEN_CRYPTHEAD_TLV_KEYVER:
94 if (sscanf(subtagPtr,
"%d", &i)==1)
98 case GWEN_CRYPTHEAD_TLV_KEY:
99 ch->pKey=(uint8_t *)malloc(subtagLen);
101 memmove(ch->pKey, subtagPtr, subtagLen);
105 case GWEN_CRYPTHEAD_TLV_CRYPTPROFILE:
106 if (sscanf(subtagPtr,
"%d", &i)==1)
142 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->keyNumber);
145 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->keyVersion);
147 if (ch->pKey && ch->lKey)
149 (
const char *)ch->pKey,
153 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->cryptProfile);
180 ch->keyName=strdup(s);
190 return ch->keyNumber;
206 return ch->keyVersion;
222 return ch->cryptProfile;
254 if (ch->pKey && ch->lKey)
257 ch->pKey=(uint8_t *)malloc(l);
259 memmove(ch->pKey, p, l);
uint32_t GWEN_Buffer_GetPos(const GWEN_BUFFER *bf)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
GWEN_CRYPTHEAD * GWEN_CryptHead_new(void)
void GWEN_CryptHead_SetKey(GWEN_CRYPTHEAD *ch, const uint8_t *p, uint32_t l)
int GWEN_CryptHead_toBuffer(const GWEN_CRYPTHEAD *ch, GWEN_BUFFER *buf, uint8_t tagType)
void GWEN_CryptHead_free(GWEN_CRYPTHEAD *ch)
GWEN_CRYPTHEAD * GWEN_CryptHead_fromBuffer(const uint8_t *p, uint32_t l)
int GWEN_CryptHead_GetCryptProfile(const GWEN_CRYPTHEAD *ch)
int GWEN_CryptHead_GetKeyVersion(const GWEN_CRYPTHEAD *ch)
const char * GWEN_CryptHead_GetKeyName(const GWEN_CRYPTHEAD *ch)
int GWEN_CryptHead_GetKeyNumber(const GWEN_CRYPTHEAD *ch)
void GWEN_CryptHead_SetKeyVersion(GWEN_CRYPTHEAD *ch, int i)
uint32_t GWEN_CryptHead_GetKeyLen(const GWEN_CRYPTHEAD *ch)
const uint8_t * GWEN_CryptHead_GetKeyPtr(const GWEN_CRYPTHEAD *ch)
void GWEN_CryptHead_SetKeyName(GWEN_CRYPTHEAD *ch, const char *s)
void GWEN_CryptHead_SetKeyNumber(GWEN_CRYPTHEAD *ch, int i)
void GWEN_CryptHead_SetCryptProfile(GWEN_CRYPTHEAD *ch, int i)
struct GWEN_CRYPTHEAD GWEN_CRYPTHEAD
#define DBG_WARN(dbg_logger, format, args...)
#define DBG_INFO(dbg_logger, format, args...)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
#define GWEN_LIST_FUNCTIONS(t, pr)
#define GWEN_FREE_OBJECT(varname)
#define GWEN_NEW_OBJECT(typ, varname)
void GWEN_Tag16_DirectlyToBuffer(unsigned int tagType, const char *p, int size, GWEN_BUFFER *buf)
GWEN_TAG16 * GWEN_Tag16_fromBuffer2(const uint8_t *p, uint32_t l, int doCopy)
const void * GWEN_Tag16_GetTagData(const GWEN_TAG16 *tlv)
unsigned int GWEN_Tag16_GetTagType(const GWEN_TAG16 *tlv)
unsigned int GWEN_Tag16_GetTagLength(const GWEN_TAG16 *tlv)
void GWEN_Tag16_free(GWEN_TAG16 *tlv)
unsigned int GWEN_Tag16_GetTagSize(const GWEN_TAG16 *tlv)
struct GWEN_TAG16 GWEN_TAG16