diff --git a/cryptography/hazmat/primitives/kdf/hkdf.py b/cryptography/hazmat/primitives/kdf/hkdf.py
index c7999f1..71c277f 100644
--- a/cryptography/hazmat/primitives/kdf/hkdf.py
+++ b/cryptography/hazmat/primitives/kdf/hkdf.py
@@ -15,6 +15,7 @@
 
 from cryptography import exceptions
 from cryptography.hazmat.primitives import hmac
+from cryptography.hazmat.primitives import constant_time
 
 
 class HKDF(object):
@@ -44,11 +45,27 @@
 
         self._used = False
 
+    def extract(self, key_material):
+        if self._used:
+            raise exceptions.AlreadyFinalized
+
+        self._used = True
+
+        return self._extract(key_material)
+
     def _extract(self, key_material):
         h = hmac.HMAC(self._salt, self._algorithm, backend=self._backend)
         h.update(key_material)
         return h.finalize()
 
+    def expand(self, key_material):
+        if self._used:
+            raise exceptions.AlreadyFinalized
+
+        self._used = True
+
+        return self._expand(key_material)
+
     def _expand(self, key_material):
         output = [b'']
         counter = 1
@@ -71,7 +88,5 @@
         return self._expand(self._extract(key_material))
 
     def verify(self, key_material, expected_key):
-        if self._used:
-            raise exceptions.AlreadyFinalized
-
-        self._used = True
+        if not constant_time.bytes_eq(self.derive(key_material), expected_key):
+            raise exceptions.InvalidKey
