rem: for (i = 0; i < 16; i++) sprintf(hexdigest + 2 * i, "%02x", digest[i]);
add: for (i = 0;  i < 16;  i++) { c = digest[i]; *hexdigest++ = (c > 0x9F ? 'a'-10 : '0')+(c>>4); *hexdigest++ = ((c&0x0F) > 9 ? 'a'-10 : '0')+(c&0x0F); } *hexdigest = '\0';
context: MD5HexHmac(char *hexdigest,	     const unsigned char* text, int text_len,	     const unsigned char* key, int key_len){	unsigned char digest[16];	int i;	MD5Hmac(digest, text, text_len, key, key_len);	for (i = 0; i < 16; i++)		sprintf(hexdigest + 2 * i, "%02x", digest[i]);}