* Given a string of hex digits convert to a buffer
*/
int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen,
- const char *str)
+ const char *str, const char sep)
{
- return hexstr2buf_sep(buf, buf_n, buflen, str, DEFAULT_SEPARATOR);
+ return hexstr2buf_sep(buf, buf_n, buflen, str, sep);
}
unsigned char *openssl_hexstr2buf_sep(const char *str, long *buflen,
}
int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlen,
- const unsigned char *buf, size_t buflen)
+ const unsigned char *buf, size_t buflen,
+ const char sep)
{
- return buf2hexstr_sep(str, str_n, strlen, buf, buflen, DEFAULT_SEPARATOR);
+ return buf2hexstr_sep(str, str_n, strlen, buf, buflen, sep);
}
char *openssl_buf2hexstr_sep(const unsigned char *buf, long buflen, char sep)
if (ishex) {
size_t l = 0;
- if (!OPENSSL_hexstr2buf_ex(buf, buf_n, &l, value))
+ if (!OPENSSL_hexstr2buf_ex(buf, buf_n, &l, value, ':'))
return 0;
} else {
memcpy(buf, value, buf_n);
int OPENSSL_hexchar2int(unsigned char c);
int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, long *buflen,
- const char *str);
+ const char *str, const char sep);
unsigned char *OPENSSL_hexstr2buf(const char *str, long *len);
int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlen,
- const unsigned char *buf, long buflen);
+ const unsigned char *buf, long buflen, const char sep);
char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen);
=head1 DESCRIPTION
OPENSSL_hexstr2buf_ex() decodes the hex string B<str> and places the
resulting string of bytes in the given I<buf>.
+The character I<sep> is the separator between the bytes, which is normally ':',
+Setting this to '\0' means that there is no seperator.
I<buf_n> gives the size of the buffer.
If I<buflen> is not NULL, it is filled in with the result length.
To find out how large the result will be, call this function with NULL
OPENSSL_buf2hexstr_ex() encodes the contents of the given I<buf> with
length I<buflen> and places the resulting hexadecimal character string
in the given I<str>.
+The character I<sep> is the separator between the bytes, which is normally ':',
+Setting this to '\0' means that there is no seperator.
I<str_n> gives the size of the of the string buffer.
If I<strlen> is not NULL, it is filled in with the result length.
To find out how large the result will be, call this function with NULL
size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz);
size_t OPENSSL_strnlen(const char *str, size_t maxlen);
int OPENSSL_buf2hexstr_ex(char *str, size_t str_n, size_t *strlen,
- const unsigned char *buf, size_t buflen);
+ const unsigned char *buf, size_t buflen,
+ const char sep);
char *OPENSSL_buf2hexstr(const unsigned char *buf, long buflen);
int OPENSSL_hexstr2buf_ex(unsigned char *buf, size_t buf_n, size_t *buflen,
- const char *str);
+ const char *str, const char sep);
unsigned char *OPENSSL_hexstr2buf(const char *str, long *buflen);
int OPENSSL_hexchar2int(unsigned char c);
unsigned char buf[64];
struct testdata *test = &tbl_testdata[test_index];
- return TEST_true(OPENSSL_hexstr2buf_ex(buf, sizeof(buf), &len, test->in))
+ return TEST_true(OPENSSL_hexstr2buf_ex(buf, sizeof(buf), &len, test->in, ':'))
&& TEST_mem_eq(buf, len, test->expected, test->expected_len)
- && TEST_true(OPENSSL_buf2hexstr_ex(out, sizeof(out), NULL, buf, len))
+ && TEST_true(OPENSSL_buf2hexstr_ex(out, sizeof(out), NULL, buf, len,
+ ':'))
&& TEST_str_eq(out, test->in);
}