diff options
author | David Reid <dreid@dreid.org> | 2014-01-20 16:05:53 -0800 |
---|---|---|
committer | David Reid <dreid@dreid.org> | 2014-02-03 10:05:26 -0800 |
commit | 66c9cd928601725e27aa64255e56b3a7e481a08d (patch) | |
tree | 2d746623c5bdb603d62ec28a3a765a5b9fd4d20d /tests/utils.py | |
parent | ab33266b16d9a1cd3cf6abcf0a7b80e86f915d95 (diff) | |
download | cryptography-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.py | 44 |
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 |