Refactor HKDF support and provide vectors for tests.
diff --git a/tests/utils.py b/tests/utils.py
index 5c0e524..5f2c6ff 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -191,3 +191,47 @@
         else:
             raise ValueError("Unknown line in hash vector")
     return vectors
+
+
+def load_hkdf_vectors(vector_data):
+    vectors = []
+
+    ikm = None
+    salt = None
+    info = None
+    length = None
+    okm = None
+
+    for line in vector_data:
+        line = line.strip()
+
+        if not line or line.startswith("#"):
+            continue
+
+        elif line.startswith("IKM"):
+            ikm = line.split(" = ")[1].encode("ascii")
+        elif line.startswith("salt"):
+            l = line.split(" =")
+            if len(l) == 1:
+                salt = b""
+            else:
+                salt = l[1].strip().encode("ascii")
+        elif line.startswith("info"):
+            l = line.split(" =")
+            if len(l) == 1:
+                info = b""
+            else:
+                info = l[1].strip().encode("ascii")
+        elif line.startswith("L"):
+            length = int(line.split(" = ")[1])
+        elif line.startswith("OKM"):
+            okm = line.split(" = ")[1].encode("ascii")
+
+            vectors.append((ikm, salt, info, length, okm))
+            ikm = None
+            salt = None
+            info = None
+            length = None
+            okm = None
+
+    return vectors