bool hex_encode(const void *buf, size_t bufsize, char *dest, size_t destsize)
{
- size_t used = 0;
+ size_t i;
- if (destsize < 1)
+ if (destsize < hex_str_size(bufsize))
return false;
- while (used < bufsize) {
- unsigned int c = ((const unsigned char *)buf)[used];
- if (destsize < 3)
- return false;
+ for (i = 0; i < bufsize; i++) {
+ unsigned int c = ((const unsigned char *)buf)[i];
*(dest++) = hexchar(c >> 4);
*(dest++) = hexchar(c & 0xF);
- used++;
- destsize -= 2;
}
*dest = '\0';
- return used + 1;
+ return true;
}