diff --git a/cper-parse.c b/cper-parse.c
index 128b768..27ca4b2 100644
--- a/cper-parse.c
+++ b/cper-parse.c
@@ -22,6 +22,21 @@
 json_object *cper_section_to_ir(FILE *handle, long base_pos,
 				EFI_ERROR_SECTION_DESCRIPTOR *descriptor);
 
+json_object *cper_buf_to_ir(void *cper_buf, size_t size)
+{
+	// TODO, this really should avoid the overhead of fmemopen()
+	// but doing so would require a lot of code changes to evict FILE* from
+	// The internals of libcper
+	FILE *cper_file = fmemopen(cper_buf, size, "r");
+	if (!cper_file) {
+		printf("Failed to open CPER buffer.\n");
+		return NULL;
+	}
+	json_object *ir = cper_to_ir(cper_file);
+	fclose(cper_file);
+	return ir;
+}
+
 //Reads a CPER log file at the given file location, and returns an intermediate
 //JSON representation of this CPER record.
 json_object *cper_to_ir(FILE *cper_file)
@@ -376,6 +391,21 @@
 	return result;
 }
 
+json_object *cper_buf_single_section_to_ir(void *cper_buf, size_t size)
+{
+	// TODO, this really should avoid the overhead of fmemopen()
+	// but doing so would require a lot of code changes to evict FILE* from
+	// The internals of libcper.
+	FILE *cper_file = fmemopen(cper_buf, size, "r");
+	if (!cper_file) {
+		printf("Failed to open CPER buffer.\n");
+		return NULL;
+	}
+	json_object *ir = cper_to_ir(cper_file);
+	fclose(cper_file);
+	return ir;
+}
+
 //Converts a single CPER section, without a header but with a section descriptor, to JSON.
 json_object *cper_single_section_to_ir(FILE *cper_section_file)
 {
diff --git a/include/libcper/cper-parse.h b/include/libcper/cper-parse.h
index 123c83e..bb9d831 100644
--- a/include/libcper/cper-parse.h
+++ b/include/libcper/cper-parse.h
@@ -29,7 +29,10 @@
 			  "HW_ERROR_FLAGS_SIMULATED" }
 
 json_object *cper_to_ir(FILE *cper_file);
+json_object *cper_buf_to_ir(void *cper_buf, size_t size);
 json_object *cper_single_section_to_ir(FILE *cper_section_file);
+json_object *cper_buf_single_section_to_ir(void *cper_buf, size_t size);
+
 void ir_to_cper(json_object *ir, FILE *out);
 void ir_single_section_to_cper(json_object *ir, FILE *out);
 
