diff options
Diffstat (limited to 'xs_encdec.h')
-rw-r--r-- | xs_encdec.h | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/xs_encdec.h b/xs_encdec.h index f4ffe22..14cb36e 100644 --- a/xs_encdec.h +++ b/xs_encdec.h @@ -4,9 +4,6 @@ #define _XS_ENCDEC_H - xs_str *xs_hex_enc(const xs_val *data, int size); - xs_val *xs_hex_dec(const xs_str *hex, int *size); - int xs_is_hex(const char *str); xs_str *xs_base64_enc(const xs_val *data, int sz); xs_val *xs_base64_dec(const xs_str *data, int *size); int xs_is_base64(const char *str); @@ -14,72 +11,6 @@ #ifdef XS_IMPLEMENTATION -/** hex **/ - -xs_str *xs_hex_enc(const xs_val *data, int size) -/* returns an hexdump of data */ -{ - xs_str *s; - char *p; - int n; - - p = s = xs_realloc(NULL, _xs_blk_size(size * 2 + 1)); - - for (n = 0; n < size; n++) { - snprintf(p, 3, "%02x", (unsigned char)data[n]); - p += 2; - } - - *p = '\0'; - - return s; -} - - -xs_val *xs_hex_dec(const xs_str *hex, int *size) -/* decodes an hexdump into data */ -{ - int sz = strlen(hex); - xs_val *s = NULL; - char *p; - int n; - - if (sz % 2) - return NULL; - - p = s = xs_realloc(NULL, _xs_blk_size(sz / 2 + 1)); - - for (n = 0; n < sz; n += 2) { - int i; - if (sscanf(&hex[n], "%02x", &i) == 0) { - /* decoding error */ - return xs_free(s); - } - else - *p = i; - - p++; - } - - *p = '\0'; - *size = sz / 2; - - return s; -} - - -int xs_is_hex(const char *str) -/* returns 1 if str is an hex string */ -{ - while (*str) { - if (strchr("0123456789abcdefABCDEF", *str++) == NULL) - return 0; - } - - return 1; -} - - /** base64 */ static char *xs_b64_tbl = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" |