diff --git a/cper-parse.c b/cper-parse.c
index 4181a64..8c8722d 100644
--- a/cper-parse.c
+++ b/cper-parse.c
@@ -6,10 +6,12 @@
  **/
 
 #include <stdio.h>
+#include <string.h>
 #include <json.h>
 #include "base64.h"
 #include "edk/Cper.h"
 #include "cper-parse.h"
+#include "cper-parse-str.h"
 #include "cper-utils.h"
 #include "sections/cper-section.h"
 
@@ -81,6 +83,22 @@
 	return parent;
 }
 
+char *cper_to_str_ir(FILE *cper_file)
+{
+	json_object *jobj = cper_to_ir(cper_file);
+	char *str = jobj ? strdup(json_object_to_json_string(jobj)) : NULL;
+
+	json_object_put(jobj);
+	return str;
+}
+
+char *cperbuf_to_str_ir(const unsigned char *cper, size_t size)
+{
+	FILE *cper_file = fmemopen((void *)cper, size, "r");
+
+	return cper_file ? cper_to_str_ir(cper_file) : NULL;
+}
+
 //Converts a parsed CPER record header into intermediate JSON object format.
 json_object *cper_header_to_ir(EFI_COMMON_ERROR_RECORD_HEADER *header)
 {
@@ -385,3 +403,22 @@
 
 	return ir;
 }
+
+char *cper_single_section_to_str_ir(FILE *cper_section_file)
+{
+	json_object *jobj = cper_single_section_to_ir(cper_section_file);
+	char *str = jobj ? strdup(json_object_to_json_string(jobj)) : NULL;
+
+	json_object_put(jobj);
+	return str;
+}
+
+char *cperbuf_single_section_to_str_ir(const unsigned char *cper_section,
+				       size_t size)
+{
+	FILE *cper_section_file = fmemopen((void *)cper_section, size, "r");
+
+	return cper_section_file ?
+		       cper_single_section_to_str_ir(cper_section_file) :
+		       NULL;
+}
