diff --git a/tools/Makefile.am b/tools/Makefile.am
index acc6657..96feeb1 100644
--- a/tools/Makefile.am
+++ b/tools/Makefile.am
@@ -12,4 +12,5 @@
 	bt.cpp \
 	lpc.cpp \
 	blob_handler.cpp \
-	ipmi_handler.cpp
+	ipmi_handler.cpp \
+	crc.cpp
diff --git a/tools/crc.cpp b/tools/crc.cpp
new file mode 100644
index 0000000..4ed307b
--- /dev/null
+++ b/tools/crc.cpp
@@ -0,0 +1,39 @@
+#include "crc.hpp"
+
+/*
+ * This implementation tracks the specification given at
+ * http://srecord.sourceforge.net/crc16-ccitt.html
+ * Code copied from internal portable sources.
+ */
+std::uint16_t generateCrc(const std::vector<std::uint8_t>& data)
+{
+    const std::uint16_t kPoly = 0x1021;
+    const std::uint16_t kLeftBit = 0x8000;
+    const int kExtraRounds = 2;
+    const std::uint8_t* bytes = data.data();
+    std::uint16_t crc = 0xFFFF;
+    size_t i;
+    size_t j;
+    size_t size = data.size();
+
+    for (i = 0; i < size + kExtraRounds; ++i)
+    {
+        for (j = 0; j < 8; ++j)
+        {
+            bool xor_flag = (crc & kLeftBit) ? 1 : 0;
+            crc <<= 1;
+            // If this isn't an extra round and the current byte's j'th bit from
+            // the left is set, increment the CRC.
+            if (i < size && (bytes[i] & (1 << (7 - j))))
+            {
+                crc++;
+            }
+            if (xor_flag)
+            {
+                crc ^= kPoly;
+            }
+        }
+    }
+
+    return crc;
+}
diff --git a/tools/crc.hpp b/tools/crc.hpp
new file mode 100644
index 0000000..f377a20
--- /dev/null
+++ b/tools/crc.hpp
@@ -0,0 +1,15 @@
+#pragma once
+
+#include <cstdint>
+#include <vector>
+
+/**
+ * Generate the CRC for a payload (really any bytes).
+ *
+ * This is meant to only be called on the payload and not the CRC or the OEM
+ * header, etc.
+ *
+ * @param[in] data - the bytes against to run the CRC
+ * @return the CRC value
+ */
+std::uint16_t generateCrc(const std::vector<std::uint8_t>& data);
