Import 'hexparse' function from OpenBSC
diff --git a/src/utils.c b/src/utils.c
index 4dab064..05381c8 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -48,3 +48,30 @@
 {
 	return c - 0x30;
 }
+
+int hexparse(const char *str, uint8_t *b, int max_len)
+
+{
+	int i, l, v;
+
+	l = strlen(str);
+	if ((l&1) || ((l>>1) > max_len))
+		return -1;
+
+	memset(b, 0x00, max_len);
+
+	for (i=0; i<l; i++) {
+		char c = str[i];
+		if (c >= '0' && c <= '9')
+			v = c - '0';
+		else if (c >= 'a' && c <= 'f')
+			v = 10 + (c - 'a');
+		else if (c >= 'A' && c <= 'F')
+			v = 10 + (c - 'A');
+		else
+			return -1;
+		b[i>>1] |= v << (i&1 ? 0 : 4);
+	}
+
+	return i>>1;
+}