diff --git a/libpldm/utils.c b/libpldm/utils.c
index 2edb65a..398a5da 100644
--- a/libpldm/utils.c
+++ b/libpldm/utils.c
@@ -1,5 +1,7 @@
 #include "utils.h"
 
+#include <stdio.h>
+
 /** CRC32 code derived from work by Gary S. Brown.
  *  http://web.mit.edu/freebsd/head/sys/libkern/crc32.c
  *
@@ -59,4 +61,50 @@
 	while (size--)
 		crc = crc32_tab[(crc ^ *p++) & 0xff] ^ (crc >> 8);
 	return crc ^ ~0U;
+}
+
+static int print_version_field(uint8_t bcd, char *buffer, size_t buffer_size)
+{
+	int v;
+	if (bcd == 0xff)
+		return 0;
+	if ((bcd & 0xf0) == 0xf0) {
+		v = bcd & 0x0f;
+		return snprintf(buffer, buffer_size, "%d", v);
+	}
+	v = ((bcd >> 4) * 10) + (bcd & 0x0f);
+	return snprintf(buffer, buffer_size, "%02d", v);
+}
+
+#define POINTER_MOVE(rc, buffer, buffer_size, original_size)                   \
+	do {                                                                   \
+		if (rc < 0)                                                    \
+			return rc;                                             \
+		if ((size_t)rc >= buffer_size)                                 \
+			return original_size - 1;                              \
+		buffer += rc;                                                  \
+		buffer_size -= rc;                                             \
+	} while (0)
+
+int ver2str(const ver32_t *version, char *buffer, size_t buffer_size)
+{
+	int rc;
+	size_t original_size = buffer_size;
+	rc = print_version_field(version->major, buffer, buffer_size);
+	POINTER_MOVE(rc, buffer, buffer_size, original_size);
+	rc = snprintf(buffer, buffer_size, ".");
+	POINTER_MOVE(rc, buffer, buffer_size, original_size);
+	rc = print_version_field(version->minor, buffer, buffer_size);
+	POINTER_MOVE(rc, buffer, buffer_size, original_size);
+	if (version->update != 0xff) {
+		rc = snprintf(buffer, buffer_size, ".");
+		POINTER_MOVE(rc, buffer, buffer_size, original_size);
+		rc = print_version_field(version->update, buffer, buffer_size);
+		POINTER_MOVE(rc, buffer, buffer_size, original_size);
+	}
+	if (version->alpha != 0) {
+		rc = snprintf(buffer, buffer_size, "%c", version->alpha);
+		POINTER_MOVE(rc, buffer, buffer_size, original_size);
+	}
+	return original_size - buffer_size;
 }
\ No newline at end of file
diff --git a/libpldm/utils.h b/libpldm/utils.h
index 7a347d4..2c2d365 100644
--- a/libpldm/utils.h
+++ b/libpldm/utils.h
@@ -5,6 +5,7 @@
 extern "C" {
 #endif
 
+#include "pldm_types.h"
 #include <stddef.h>
 #include <stdint.h>
 
@@ -16,8 +17,17 @@
  */
 uint32_t crc32(const void *data, size_t size);
 
+/** @brief Convert ver32_t to string
+ *  @param[in] version - Pointer to ver32_t
+ *  @param[out] buffer - Pointer to the buffer
+ *  @param[in] buffer_size - Size of the buffer
+ *  @return The number of characters(excluding the null byte) or negative if
+ * error is encountered
+ */
+int ver2str(const ver32_t *version, char *buffer, size_t buffer_size);
+
 #ifdef __cplusplus
 }
 #endif
 
-#endif
\ No newline at end of file
+#endif
