Esempio n. 1
0
void MD5Builder::addHexString(const char * data){
  uint16_t i, len = strlen(data);
  uint8_t * tmp = (uint8_t*)malloc(len/2);
  if(tmp == NULL)
    return;
  for(i=0; i<len; i+=2) tmp[i/2] = (hex_char_to_byte(data[i]) & 0x0F) << 4 | (hex_char_to_byte(data[i+1]) & 0x0F);
  add(tmp, len/2);
  free(tmp);
}
Esempio n. 2
0
BOOL 
parse_ndas_device_id(NDAS_DEVICE_ID& deviceID, LPCTSTR lpszHexString)
{
	NDAS_DEVICE_ID id = {0};
	LPCTSTR p = lpszHexString;
	for (DWORD i = 0; i < 6; ++i) 
	{
		if (_T('\0') == *p )
		{
			return FALSE;
		}

		BYTE low = 0, high = 0;
		BOOL fSuccess = 
			hex_char_to_byte(*p++, high) && 
			hex_char_to_byte(*p++, low);
		if (!fSuccess) 
		{
			return FALSE;
		}

		// delimiter
		if (_T('-') == *p || _T(':') == *p)
		{
			++p;
		}

		id.Node[i] = (high << 4) + low;
	}

	if (_T('\0') != *p) return FALSE;

#ifdef _DEBUG
	_tprintf(_T("%02X:%02X:%02X:%02X:%02X:%02X\n"), 
		id.Node[0], id.Node[1], id.Node[2], 
		id.Node[3], id.Node[4], id.Node[5]);
#endif

	deviceID = id;
	return TRUE;
}