From: Praveen K Paladugu Date: Tue, 11 Feb 2025 19:18:19 +0000 (-0600) Subject: util: Introduce virStringFormatHex X-Git-Tag: v11.2.0-rc1~207 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=695a4f38b5f3e942797b081c23aa039c0ce07723;p=thirdparty%2Flibvirt.git util: Introduce virStringFormatHex virStringFormatHex converts an input byte array into hex string and returns it. Signed-off-by: Praveen K Paladugu Signed-off-by: Michal Privoznik Reviewed-by: Michal Privoznik --- diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index d9e60c946d..e63939e2b5 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -3464,6 +3464,7 @@ virSkipToDigit; virStrcpy; virStringBufferIsPrintable; virStringFilterChars; +virStringFormatHex; virStringHasCaseSuffix; virStringHasChars; virStringHasControlChars; diff --git a/src/util/virstring.c b/src/util/virstring.c index 15c3f7bdd1..7249ab4e7c 100644 --- a/src/util/virstring.c +++ b/src/util/virstring.c @@ -1092,3 +1092,23 @@ virStringListRemoveDuplicates(char ***list) g_free(*list); *list = g_renew(char *, unique, n + 1); } + +/** + * virStringFormatHex: + * @buf: buffer to format + * @len: length of the buffer + * + * Format a byte array into a hexadecimal string and return it. It's caller's + * responsibility to free returned string. + */ +char * +virStringFormatHex(const unsigned char *buf, size_t len) +{ + char *hex = g_new0(char, len * 2 + 1); + size_t i; + + for (i = 0; i < len; i++) + g_snprintf(hex + i * 2, 3, "%02x", buf[i]); + + return g_steal_pointer(&hex); +} diff --git a/src/util/virstring.h b/src/util/virstring.h index 31a404e106..3d880faf0c 100644 --- a/src/util/virstring.h +++ b/src/util/virstring.h @@ -140,3 +140,4 @@ int virStringParseVersion(unsigned long long *version, bool allowMissing); void virStringListRemoveDuplicates(char ***list); +char *virStringFormatHex(const unsigned char *buf, size_t len);