| 468 * Converts raw data to a pretty, null-terminated base16 string. |
468 * Converts raw data to a pretty, null-terminated base16 string. |
| 469 */ |
469 */ |
| 470 char *tobase16(const char *data, int length) |
470 char *tobase16(const char *data, int length) |
| 471 { |
471 { |
| 472 int i; |
472 int i; |
| 473 char *ascii = NULL; |
473 unsigned char *ascii = NULL; |
| 474 |
474 |
| 475 if (!data || !length) |
475 if (!data || !length) |
| 476 return NULL; |
476 return NULL; |
| 477 |
477 |
| 478 ascii = (char *)malloc(length*2 + 1); |
478 ascii = malloc(length*2 + 1); |
| 479 |
479 |
| 480 for (i=0; i<length; i++) |
480 for (i=0; i<length; i++) |
| 481 snprintf(&ascii[i*2], 3, "%02hhx", data[i]); |
481 snprintf(&ascii[i*2], 3, "%02hhx", data[i]); |
| 482 |
482 |
| 483 return ascii; |
483 return ascii; |