diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2013-10-18 23:58:33 -0700 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2013-10-18 23:58:33 -0700 |
commit | 2984b3f8fb433b4cbe5ec6712886db32f597e8af (patch) | |
tree | f682add3b8906c8df68895d74ba278ad06f7099d /tests/utils.py | |
parent | 5762647e8d7f53ed9f4abed90626382b6c903ee2 (diff) | |
parent | c21f968301b0d4cc848ea554403e9d9239327803 (diff) | |
download | cryptography-2984b3f8fb433b4cbe5ec6712886db32f597e8af.tar.gz cryptography-2984b3f8fb433b4cbe5ec6712886db32f597e8af.tar.bz2 cryptography-2984b3f8fb433b4cbe5ec6712886db32f597e8af.zip |
Merge branch 'master' into bind-pkcs12
Conflicts:
cryptography/bindings/openssl/api.py
Diffstat (limited to 'tests/utils.py')
-rw-r--r-- | tests/utils.py | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py index 6b1cfd79..03b780f8 100644 --- a/tests/utils.py +++ b/tests/utils.py @@ -119,3 +119,38 @@ def load_openssl_vectors(vector_data): "ciphertext": vector[4].encode("ascii"), }) return vectors + + +def load_hash_vectors(vector_data): + vectors = [] + + for line in vector_data: + line = line.strip() + + if not line or line.startswith("#") or line.startswith("["): + continue + + if line.startswith("Len"): + length = int(line.split(" = ")[1]) + 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. + """ + 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)) + else: + raise ValueError("Unknown line in hash vector") + return vectors + + +def load_hash_vectors_from_file(filename): + base = os.path.join( + os.path.dirname(__file__), "primitives", "vectors" + ) + with open(os.path.join(base, filename), "r") as vector_file: + return load_hash_vectors(vector_file) |