Datasheet

API in C using winsock
74
/********************************************************************
* MD5 helper function to calculate and return hex representation
* of an MD5 digest stored in binary.
********************************************************************/
char *md5DigestToHexString(md5_byte_t *binaryDigest)
{
int di;
char *szReturn;
// allocate 32 + 1 bytes for our return string
szReturn = malloc((32 + 1) * sizeof *szReturn);
for (di = 0; di < 16; ++di)
{
sprintf(szReturn + di * 2, "%02x", binaryDigest[di]);
}
return szReturn;
}
/********************************************************************
* Quick and dirty function to convert hex string to char...
* the toConvert string MUST BE 2 characters + null terminated.
********************************************************************/
char hexStringToChar(char *cToConvert)
{
char cConverted;
unsigned int iAccumulated=0;
char cString0[2] = {cToConvert[0], 0};
char cString1[2] = {cToConvert[1], 0};
// look @ first char in the 16^1 place
if (cToConvert[0] == 'f' || cToConvert[0] == 'F')
{
iAccumulated += 16*15;
}
else if (cToConvert[0] == 'e' || cToConvert[0] == 'E')
{
iAccumulated += 16*14;
}
else if (cToConvert[0] == 'd' || cToConvert[0] == 'D')
{
iAccumulated += 16*13;
}