From: Nikos Mavrogiannopoulos Date: Tue, 21 Jul 2015 06:34:52 +0000 (+0200) Subject: DN decoding: use gnutls_hex_encode X-Git-Tag: gnutls_3_5_0~793 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=30b1f936e26afe1f58acbc7141ced0c99b2c3efb;p=thirdparty%2Fgnutls.git DN decoding: use gnutls_hex_encode --- diff --git a/lib/x509/common.c b/lib/x509/common.c index c7993b69fa..5952b4b972 100644 --- a/lib/x509/common.c +++ b/lib/x509/common.c @@ -30,6 +30,7 @@ #include #include #include "x509_int.h" +#include "extras/hex.h" #include #include @@ -488,24 +489,29 @@ static int data2hex(const void *data, size_t data_size, gnutls_datum_t *out) { - char *res; + gnutls_datum_t tmp; + int ret; + size_t size; - out->size = data_size * 2 + 2; /* +1 for null +1 for '#' */ + out->size = hex_str_size(data_size) + 1; /* +1 for '#' */ out->data = gnutls_malloc(out->size); if (out->data == NULL) return gnutls_assert_val(GNUTLS_E_MEMORY_ERROR); + tmp.data = (void*)data; + tmp.size = data_size; + out->data[0] = '#'; - res = - _gnutls_bin2hex(data, data_size, - (char*)&out->data[1], (out->size)-2, - NULL); - if (!res) { + size = out->size-1; /* don't include '#' */ + ret = + gnutls_hex_encode(&tmp, + (char*)&out->data[1], &size); + if (ret < 0) { gnutls_assert(); return GNUTLS_E_SHORT_MEMORY_BUFFER; } - out->size = strlen(res); + out->size--; /* don't include null */ return 0; }