libpldm: utils: Add crc implementation

Add crc implementation,copied from
http://web.mit.edu/freebsd/head/sys/libkern/crc32.c

Signed-off-by: John Wang <wangzqbj@inspur.com>
Change-Id: I82e3f7e556b10fba2956b294b14e8396e50f49e2
diff --git a/libpldm/utils.h b/libpldm/utils.h
new file mode 100644
index 0000000..7a347d4
--- /dev/null
+++ b/libpldm/utils.h
@@ -0,0 +1,23 @@
+#ifndef UTILS_H__
+#define UTILS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stddef.h>
+#include <stdint.h>
+
+/** @brief Compute Crc32(same as the one used by IEEE802.3)
+ *
+ *  @param[in] data - Pointer to the target data
+ *  @param[in] size - Size of the data
+ *  @return The checksum
+ */
+uint32_t crc32(const void *data, size_t size);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
\ No newline at end of file