14 #define DISABLE_DEBUGLOG
17 #include "crypthead_p.h"
19 #include <gwenhywfar/misc.h>
20 #include <gwenhywfar/debug.h>
21 #include <gwenhywfar/tag16.h>
40 if (ch->pKey &&ch->lKey)
64 const char *subtagPtr;
76 if (subtagLen && subtagPtr) {
79 case GWEN_CRYPTHEAD_TLV_KEYNAME:
80 ch->keyName=(
char*)malloc(subtagLen+1);
81 memmove(ch->keyName, subtagPtr, subtagLen);
82 ch->keyName[subtagLen]=0;
85 case GWEN_CRYPTHEAD_TLV_KEYNUM:
86 if (sscanf(subtagPtr,
"%d", &i)==1)
90 case GWEN_CRYPTHEAD_TLV_KEYVER:
91 if (sscanf(subtagPtr,
"%d", &i)==1)
95 case GWEN_CRYPTHEAD_TLV_KEY:
96 ch->pKey=(uint8_t*)malloc(subtagLen);
98 memmove(ch->pKey, subtagPtr, subtagLen);
102 case GWEN_CRYPTHEAD_TLV_CRYPTPROFILE:
103 if (sscanf(subtagPtr,
"%d", &i)==1)
138 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->keyNumber);
141 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->keyVersion);
143 if (ch->pKey && ch->lKey)
145 (
const char*)ch->pKey,
149 snprintf(numbuf,
sizeof(numbuf),
"%d", ch->cryptProfile);
173 if (s) ch->keyName=strdup(s);
174 else ch->keyName=
NULL;
181 return ch->keyNumber;
195 return ch->keyVersion;
209 return ch->cryptProfile;
237 if (ch->pKey && ch->lKey)
240 ch->pKey=(uint8_t*)malloc(l);
242 memmove(ch->pKey, p, l);
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_CryptHead_GetKeyVersion(const GWEN_CRYPTHEAD *ch)
GWEN_CRYPTHEAD * GWEN_CryptHead_fromBuffer(const uint8_t *p, uint32_t l)
void GWEN_CryptHead_SetKeyName(GWEN_CRYPTHEAD *ch, const char *s)
int GWEN_CryptHead_toBuffer(const GWEN_CRYPTHEAD *ch, GWEN_BUFFER *buf, uint8_t tagType)
struct GWEN_CRYPTHEAD GWEN_CRYPTHEAD
#define GWEN_FREE_OBJECT(varname)
#define DBG_WARN(dbg_logger, format, args...)
unsigned int GWEN_Tag16_GetTagSize(const GWEN_TAG16 *tlv)
uint32_t GWEN_Buffer_GetPos(const GWEN_BUFFER *bf)
struct GWEN_TAG16 GWEN_TAG16
void GWEN_CryptHead_SetKeyNumber(GWEN_CRYPTHEAD *ch, int i)
void GWEN_Tag16_DirectlyToBuffer(unsigned int tagType, const char *p, int size, GWEN_BUFFER *buf)
int GWEN_CryptHead_GetKeyNumber(const GWEN_CRYPTHEAD *ch)
const void * GWEN_Tag16_GetTagData(const GWEN_TAG16 *tlv)
#define GWEN_NEW_OBJECT(typ, varname)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
void GWEN_CryptHead_free(GWEN_CRYPTHEAD *ch)
unsigned int GWEN_Tag16_GetTagLength(const GWEN_TAG16 *tlv)
unsigned int GWEN_Tag16_GetTagType(const GWEN_TAG16 *tlv)
void GWEN_CryptHead_SetKeyVersion(GWEN_CRYPTHEAD *ch, int i)
const char * GWEN_CryptHead_GetKeyName(const GWEN_CRYPTHEAD *ch)
void GWEN_CryptHead_SetCryptProfile(GWEN_CRYPTHEAD *ch, int i)
int GWEN_CryptHead_GetCryptProfile(const GWEN_CRYPTHEAD *ch)
uint32_t GWEN_CryptHead_GetKeyLen(const GWEN_CRYPTHEAD *ch)
#define DBG_INFO(dbg_logger, format, args...)
#define GWEN_LIST_FUNCTIONS(t, pr)
GWEN_CRYPTHEAD * GWEN_CryptHead_new(void)
void GWEN_CryptHead_SetKey(GWEN_CRYPTHEAD *ch, const uint8_t *p, uint32_t l)
void GWEN_Tag16_free(GWEN_TAG16 *tlv)
const uint8_t * GWEN_CryptHead_GetKeyPtr(const GWEN_CRYPTHEAD *ch)
GWEN_TAG16 * GWEN_Tag16_fromBuffer2(const uint8_t *p, uint32_t l, int doCopy)