diff options
author | David Reid <dreid@dreid.org> | 2014-01-27 11:07:02 -0800 |
---|---|---|
committer | David Reid <dreid@dreid.org> | 2014-01-27 11:07:02 -0800 |
commit | 904cd21bb5bff75b358d0fd7605acd374a2ad341 (patch) | |
tree | 43a719e4fd31ad54a7fa4ef37da3cdfbc42765a9 /tests/utils.py | |
parent | 6b4f32311e038a60ed496e2f44558b8803f9e033 (diff) | |
parent | 36e651c00aaa8f9016aed73bf30061fbd1bdf6e7 (diff) | |
download | cryptography-904cd21bb5bff75b358d0fd7605acd374a2ad341.tar.gz cryptography-904cd21bb5bff75b358d0fd7605acd374a2ad341.tar.bz2 cryptography-904cd21bb5bff75b358d0fd7605acd374a2ad341.zip |
Merge pull request #512 from alex/hash-cleanup
Represent the hash vectors more cleanly
Diffstat (limited to 'tests/utils.py')
-rw-r--r-- | tests/utils.py | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/tests/utils.py b/tests/utils.py index a2432256..507bc421 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -11,11 +11,18 @@ # See the License for the specific language governing permissions and # limitations under the License. +import collections import os import pytest +HashVector = collections.namedtuple("HashVector", ["message", "digest"]) +KeyedHashVector = collections.namedtuple( + "KeyedHashVector", ["message", "digest", "key"] +) + + def select_backends(names, backend_list): if names is None: return backend_list @@ -158,27 +165,23 @@ 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. - """ + # 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 - string as hex 00, which is of course not actually an empty - string. So we parse the provided length and catch this edge case. - """ + # In the NIST vectors they have chosen to represent an empty + # string as hex 00, which is of course not actually an empty + # string. So we parse the provided length and catch this edge case. 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 (+ potential key) tuple is complete if key is not None: - vectors.append((msg, md, key)) + vectors.append(KeyedHashVector(msg, md, key)) key = None msg = None md = None else: - vectors.append((msg, md)) + vectors.append(HashVector(msg, md)) msg = None md = None else: |