diff options
author | Alex Gaynor <alex.gaynor@gmail.com> | 2013-08-08 22:05:20 -0700 |
---|---|---|
committer | Alex Gaynor <alex.gaynor@gmail.com> | 2013-08-08 22:05:20 -0700 |
commit | 3c6da26a73d02f74e731badbd878fbbfb62c4289 (patch) | |
tree | b6f432a202b169d81d26a89e980357b655a1b8a5 /tests/utils.py | |
parent | 95b8620e738b36a1e6e4bd015149bcb0851b3da9 (diff) | |
parent | 80bb237b06ce5cf5180e4a44874685e3571e813c (diff) | |
download | cryptography-3c6da26a73d02f74e731badbd878fbbfb62c4289.tar.gz cryptography-3c6da26a73d02f74e731badbd878fbbfb62c4289.tar.bz2 cryptography-3c6da26a73d02f74e731badbd878fbbfb62c4289.zip |
Merge branch 'master' into simple-symmetric-encryption
Diffstat (limited to 'tests/utils.py')
-rw-r--r-- | tests/utils.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/utils.py b/tests/utils.py new file mode 100644 index 00000000..9fe35311 --- /dev/null +++ b/tests/utils.py @@ -0,0 +1,48 @@ +import os.path + + +def load_nist_vectors(vector_data, op, fields): + section, count, data = None, None, {} + + for line in vector_data: + line = line.strip() + + # Blank lines are ignored + if not line: + continue + + # Lines starting with # are comments + if line.startswith("#"): + continue + + # Look for section headers + if line.startswith("[") and line.endswith("]"): + section = line[1:-1] + data[section] = {} + continue + + # Build our data using a simple Key = Value format + name, value = line.split(" = ") + + # COUNT is a special token that indicates a new block of data + if name.upper() == "COUNT": + count = value + data[section][count] = {} + # For all other tokens we simply want the name, value stored in + # the dictionary + else: + data[section][count][name.lower()] = value + + # We want to test only for a particular operation + return [ + tuple(vector[1][f] for f in fields) + for vector in sorted(data[op].items(), key=lambda v: v[0]) + ] + + +def load_nist_vectors_from_file(filename, op, fields): + base = os.path.join( + os.path.dirname(__file__), "primitives", "vectors", "NIST", + ) + with open(os.path.join(base, filename), "r") as vector_file: + return load_nist_vectors(vector_file, op, fields) |