aboutsummaryrefslogtreecommitdiffstats
path: root/tests/utils.py
diff options
context:
space:
mode:
authorErik Trauschke <erik.trauschke@gmail.com>2015-09-25 08:17:13 -0700
committerErik Trauschke <erik.trauschke@gmail.com>2015-09-25 08:17:13 -0700
commitf1e0c30d143f31e4562a7bb9cc5b3d43354da681 (patch)
tree40f4a74bb2badabf4d852e4ac41434ac5a4373f9 /tests/utils.py
parentdc57040a59ce4211a6ab6db843c497a87a825509 (diff)
parent1bcc7dad52619e2ce9e56d1b2cc20ec195276f43 (diff)
downloadcryptography-f1e0c30d143f31e4562a7bb9cc5b3d43354da681.tar.gz
cryptography-f1e0c30d143f31e4562a7bb9cc5b3d43354da681.tar.bz2
cryptography-f1e0c30d143f31e4562a7bb9cc5b3d43354da681.zip
Merge branch 'master' into crl_ossl_backend
Diffstat (limited to 'tests/utils.py')
-rw-r--r--tests/utils.py59
1 files changed, 54 insertions, 5 deletions
diff --git a/tests/utils.py b/tests/utils.py
index 7e7abdf1..cc3f9fcc 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -6,6 +6,7 @@ from __future__ import absolute_import, division, print_function
import binascii
import collections
+import math
import re
from contextlib import contextmanager
@@ -670,7 +671,7 @@ def load_kasvs_ecdh_vectors(vector_data):
result_rx = re.compile(r"([FP]) \(([0-9]+) -")
tags = []
- sets = dict()
+ sets = {}
vectors = []
# find info in header
@@ -708,8 +709,8 @@ def load_kasvs_ecdh_vectors(vector_data):
# Data
data = {
- "CAVS": dict(),
- "IUT": dict(),
+ "CAVS": {},
+ "IUT": {},
}
tag = None
for line in vector_data:
@@ -755,8 +756,56 @@ def load_kasvs_ecdh_vectors(vector_data):
vectors.append(data)
data = {
- "CAVS": dict(),
- "IUT": dict(),
+ "CAVS": {},
+ "IUT": {},
}
return vectors
+
+
+def load_x963_vectors(vector_data):
+ """
+ Loads data out of the X9.63 vector data
+ """
+
+ vectors = []
+
+ # Sets Metadata
+ hashname = None
+ vector = {}
+ for line in vector_data:
+ line = line.strip()
+
+ if line.startswith("[SHA"):
+ hashname = line[1:-1]
+ shared_secret_len = 0
+ shared_info_len = 0
+ key_data_len = 0
+ elif line.startswith("[shared secret length"):
+ shared_secret_len = int(line[1:-1].split("=")[1].strip())
+ elif line.startswith("[SharedInfo length"):
+ shared_info_len = int(line[1:-1].split("=")[1].strip())
+ elif line.startswith("[key data length"):
+ key_data_len = int(line[1:-1].split("=")[1].strip())
+ elif line.startswith("COUNT"):
+ count = int(line.split("=")[1].strip())
+ vector["hash"] = hashname
+ vector["count"] = count
+ vector["shared_secret_length"] = shared_secret_len
+ vector["sharedinfo_length"] = shared_info_len
+ vector["key_data_length"] = key_data_len
+ elif line.startswith("Z"):
+ vector["Z"] = line.split("=")[1].strip()
+ assert math.ceil(shared_secret_len / 8) * 2 == len(vector["Z"])
+ elif line.startswith("SharedInfo"):
+ if shared_info_len != 0:
+ vector["sharedinfo"] = line.split("=")[1].strip()
+ silen = len(vector["sharedinfo"])
+ assert math.ceil(shared_info_len / 8) * 2 == silen
+ elif line.startswith("key_data"):
+ vector["key_data"] = line.split("=")[1].strip()
+ assert math.ceil(key_data_len / 8) * 2 == len(vector["key_data"])
+ vectors.append(vector)
+ vector = {}
+
+ return vectors