From 0317b04b119ceb55e11cf1be28c5223bad240c26 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Mon, 28 Oct 2013 17:34:27 -0500 Subject: HMAC support Conflicts: docs/primitives/index.rst tests/hazmat/primitives/utils.py --- tests/utils.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'tests/utils.py') diff --git a/tests/utils.py b/tests/utils.py index 9d01746a..a97cdf7a 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -136,6 +136,11 @@ def load_hash_vectors(vector_data): if line.startswith("Len"): length = int(line.split(" = ")[1]) + elif line.startswith("Key"): + """ + HMAC vectors contain a key attribute. Hash vectors do not. + """ + key = line.split(" = ")[1].encode("ascii") elif line.startswith("Msg"): """ In the NIST vectors they have chosen to represent an empty @@ -145,8 +150,11 @@ def load_hash_vectors(vector_data): msg = line.split(" = ")[1].encode("ascii") if length > 0 else b"" elif line.startswith("MD"): md = line.split(" = ")[1] - # after MD is found the Msg+MD tuple is complete - vectors.append((msg, md)) + # after MD is found the Msg+MD (+ potential key) tuple is complete + try: + vectors.append((msg, md, key)) + except: + vectors.append((msg, md)) else: raise ValueError("Unknown line in hash vector") return vectors -- cgit v1.2.3 From 00dd509f180b6229cfd4b913274a94df3bc05a00 Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Wed, 23 Oct 2013 09:41:49 -0500 Subject: address initial review comments --- tests/utils.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'tests/utils.py') diff --git a/tests/utils.py b/tests/utils.py index a97cdf7a..25291d55 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -127,6 +127,7 @@ def load_openssl_vectors(vector_data): def load_hash_vectors(vector_data): vectors = [] + key, msg, md = None, None, None for line in vector_data: line = line.strip() @@ -151,9 +152,9 @@ def load_hash_vectors(vector_data): elif line.startswith("MD"): md = line.split(" = ")[1] # after MD is found the Msg+MD (+ potential key) tuple is complete - try: + if key is not None: vectors.append((msg, md, key)) - except: + else: vectors.append((msg, md)) else: raise ValueError("Unknown line in hash vector") -- cgit v1.2.3 From 1bb8b710d444012b7218a08f098a85c4a31ca1bc Mon Sep 17 00:00:00 2001 From: Paul Kehrer Date: Sun, 27 Oct 2013 17:00:14 -0500 Subject: clean up loader and make docs default to hmac sha256 --- tests/utils.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests/utils.py') diff --git a/tests/utils.py b/tests/utils.py index 25291d55..ad676c04 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -127,7 +127,9 @@ def load_openssl_vectors(vector_data): def load_hash_vectors(vector_data): vectors = [] - key, msg, md = None, None, None + key = None + msg = None + md = None for line in vector_data: line = line.strip() @@ -154,8 +156,13 @@ def load_hash_vectors(vector_data): # after MD is found the Msg+MD (+ potential key) tuple is complete if key is not None: vectors.append((msg, md, key)) + key = None + msg = None + md = None else: vectors.append((msg, md)) + msg = None + md = None else: raise ValueError("Unknown line in hash vector") return vectors -- cgit v1.2.3