From 646b80024567a6245c598be3374653fa1fa09a12 Mon Sep 17 00:00:00 2001
From: Paul Barker <paul@paulbarker.me.uk>
Date: Sat, 7 Nov 2015 10:23:49 +0000
Subject: [PATCH 1/4] string_util: New file with bin_to_hex function

This function does very simple conversion from binary data to a hex string.

Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
Signed-off-by: Alejandro del Castillo <alejandro.delcastillo@ni.com>

Upstream-Status: Accepted
---
 libopkg/Makefile.am   |  4 ++--
 libopkg/string_util.c | 42 ++++++++++++++++++++++++++++++++++++++++++
 libopkg/string_util.h | 24 ++++++++++++++++++++++++
 3 files changed, 68 insertions(+), 2 deletions(-)
 create mode 100644 libopkg/string_util.c
 create mode 100644 libopkg/string_util.h

diff --git a/libopkg/Makefile.am b/libopkg/Makefile.am
index ee3fbee..3e62c24 100644
--- a/libopkg/Makefile.am
+++ b/libopkg/Makefile.am
@@ -13,7 +13,7 @@ opkg_headers = active_list.h cksum_list.h conffile.h conffile_list.h \
 	pkg_depends.h pkg_dest.h pkg_dest_list.h pkg_extract.h pkg_hash.h \
 	pkg_parse.h pkg_src.h pkg_src_list.h pkg_vec.h release.h \
 	release_parse.h sha256.h sprintf_alloc.h str_list.h void_list.h \
-	xregex.h xsystem.h xfuncs.h opkg_verify.h
+	xregex.h xsystem.h xfuncs.h opkg_verify.h string_util.h
 
 opkg_sources = opkg_cmd.c opkg_configure.c opkg_download.c \
 	opkg_install.c opkg_remove.c opkg_conf.c release.c \
@@ -23,7 +23,7 @@ opkg_sources = opkg_cmd.c opkg_configure.c opkg_download.c \
 	pkg_src.c pkg_src_list.c str_list.c void_list.c active_list.c \
 	file_util.c opkg_message.c md5.c parse_util.c cksum_list.c \
 	sprintf_alloc.c xregex.c xsystem.c xfuncs.c opkg_archive.c \
-	opkg_verify.c
+	opkg_verify.c string_util.c
 
 if HAVE_CURL
 opkg_sources += opkg_download_curl.c
diff --git a/libopkg/string_util.c b/libopkg/string_util.c
new file mode 100644
index 0000000..822cab6
--- /dev/null
+++ b/libopkg/string_util.c
@@ -0,0 +1,42 @@
+/* vi: set expandtab sw=4 sts=4: */
+/* string_util.c - convenience routines for common string operations
+
+   Copyright (C) 2015 Paul Barker
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+*/
+
+#include "config.h"
+
+#include "string_util.h"
+#include "xfuncs.h"
+
+char *bin_to_hex(const void *bin_data, size_t len)
+{
+    const unsigned char *src = (const unsigned char *)bin_data;
+    char *buf = xmalloc(2 * len + 1);
+    int i;
+
+    static const unsigned char bin2hex[16] = {
+        '0', '1', '2', '3',
+        '4', '5', '6', '7',
+        '8', '9', 'a', 'b',
+        'c', 'd', 'e', 'f'
+    };
+
+    for (i = 0; i < len; i++) {
+        buf[i * 2] = bin2hex[src[i] >> 4];
+        buf[i * 2 + 1] = bin2hex[src[i] & 0xf];
+    }
+
+    buf[len * 2] = '\0';
+    return buf;
+}
diff --git a/libopkg/string_util.h b/libopkg/string_util.h
new file mode 100644
index 0000000..a920e2a
--- /dev/null
+++ b/libopkg/string_util.h
@@ -0,0 +1,24 @@
+/* vi: set expandtab sw=4 sts=4: */
+/* string_util.h - convenience routines for common file operations
+
+   Copyright (C) 2015 Paul Barker
+
+   This program is free software; you can redistribute it and/or
+   modify it under the terms of the GNU General Public License as
+   published by the Free Software Foundation; either version 2, or (at
+   your option) any later version.
+
+   This program is distributed in the hope that it will be useful, but
+   WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   General Public License for more details.
+*/
+
+#ifndef STRING_UTIL_H
+#define STRING_UTIL_H
+
+#include <stddef.h>
+
+char *bin_to_hex(const void *bin_data, size_t len);
+
+#endif /* STRING_UTIL_H */
-- 
1.9.1

