diff --git a/MANIFEST.in b/MANIFEST.in
index e12e430..2f2bca7 100644
--- a/MANIFEST.in
+++ b/MANIFEST.in
@@ -5,6 +5,8 @@
 include README.rst
 
 recursive-include docs *
+recursive-include cryptography/hazmat/primitives/src *.c
+recursive-include cryptography/hazmat/primitives/src *.h
 prune docs/_build
 recursive-include tests *.py
 recursive-exclude vectors *
diff --git a/cryptography/hazmat/primitives/constant_time.py b/cryptography/hazmat/primitives/constant_time.py
index 9789851..d75528a 100644
--- a/cryptography/hazmat/primitives/constant_time.py
+++ b/cryptography/hazmat/primitives/constant_time.py
@@ -14,37 +14,20 @@
 from __future__ import absolute_import, division, print_function
 
 import hmac
+import os
 import sys
 
 import cffi
 
 from cryptography.hazmat.bindings.utils import _create_modulename
 
-TYPES = """
-uint8_t Cryptography_constant_time_bytes_eq(uint8_t *, size_t, uint8_t *,
-                                            size_t);
-"""
 
-FUNCTIONS = """
-uint8_t Cryptography_constant_time_bytes_eq(uint8_t *a, size_t len_a,
-                                            uint8_t *b, size_t len_b) {
-    size_t i = 0;
-    uint8_t mismatch = 0;
-    if (len_a != len_b) {
-        return 0;
-    }
-    for (i = 0; i < len_a; i++) {
-        mismatch |= a[i] ^ b[i];
-    }
+with open(os.path.join(os.path.dirname(__file__), "src/constant_time.h")) as f:
+    TYPES = f.read()
 
-    /* Make sure any bits set are copied to the lowest bit */
-    mismatch |= mismatch >> 4;
-    mismatch |= mismatch >> 2;
-    mismatch |= mismatch >> 1;
-    /* Now check the low bit to see if it's set */
-    return (mismatch & 1) == 0;
-}
-"""
+with open(os.path.join(os.path.dirname(__file__), "src/constant_time.c")) as f:
+    FUNCTIONS = f.read()
+
 
 _ffi = cffi.FFI()
 _ffi.cdef(TYPES)
diff --git a/cryptography/hazmat/primitives/src/constant_time.c b/cryptography/hazmat/primitives/src/constant_time.c
new file mode 100644
index 0000000..aaed11a
--- /dev/null
+++ b/cryptography/hazmat/primitives/src/constant_time.c
@@ -0,0 +1,18 @@
+uint8_t Cryptography_constant_time_bytes_eq(uint8_t *a, size_t len_a,
+                                            uint8_t *b, size_t len_b) {
+    size_t i = 0;
+    uint8_t mismatch = 0;
+    if (len_a != len_b) {
+        return 0;
+    }
+    for (i = 0; i < len_a; i++) {
+        mismatch |= a[i] ^ b[i];
+    }
+
+    /* Make sure any bits set are copied to the lowest bit */
+    mismatch |= mismatch >> 4;
+    mismatch |= mismatch >> 2;
+    mismatch |= mismatch >> 1;
+    /* Now check the low bit to see if it's set */
+    return (mismatch & 1) == 0;
+}
diff --git a/cryptography/hazmat/primitives/src/constant_time.h b/cryptography/hazmat/primitives/src/constant_time.h
new file mode 100644
index 0000000..2cc2580
--- /dev/null
+++ b/cryptography/hazmat/primitives/src/constant_time.h
@@ -0,0 +1,2 @@
+uint8_t Cryptography_constant_time_bytes_eq(uint8_t *, size_t, uint8_t *,
+                                            size_t);
