aboutsummaryrefslogtreecommitdiffstats
path: root/tests/utils.py
diff options
context:
space:
mode:
authorDavid Reid <dreid@dreid.org>2014-01-20 16:05:53 -0800
committerDavid Reid <dreid@dreid.org>2014-02-03 10:05:26 -0800
commit66c9cd928601725e27aa64255e56b3a7e481a08d (patch)
tree2d746623c5bdb603d62ec28a3a765a5b9fd4d20d /tests/utils.py
parentab33266b16d9a1cd3cf6abcf0a7b80e86f915d95 (diff)
downloadcryptography-66c9cd928601725e27aa64255e56b3a7e481a08d.tar.gz
cryptography-66c9cd928601725e27aa64255e56b3a7e481a08d.tar.bz2
cryptography-66c9cd928601725e27aa64255e56b3a7e481a08d.zip
Refactor HKDF support and provide vectors for tests.
Diffstat (limited to 'tests/utils.py')
-rw-r--r--tests/utils.py44
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py
index 5c0e524f..5f2c6ff6 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -191,3 +191,47 @@ def load_hash_vectors(vector_data):
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