From 66c9cd928601725e27aa64255e56b3a7e481a08d Mon Sep 17 00:00:00 2001 From: David Reid Date: Mon, 20 Jan 2014 16:05:53 -0800 Subject: Refactor HKDF support and provide vectors for tests. --- tests/utils.py | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'tests/utils.py') 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 -- cgit v1.2.3