def _do_test(key_name, num_bytes, num_iterations): p = os.path.join(DATA_PATH, key_name) f = open(p, 'r') json_str = f.read() f.close() m0 = json.dumps(json.loads(json_str), separators=(',', ':')) a = Spinner.loads(json_str) self.assertEqual(a.num_bytes, num_bytes) self.assertEqual(a.num_iterations, num_iterations) m1 = json.dumps(json.loads(a.dumps()), separators=(',', ':')) self.assertEqual(m0, m1)
def test_encdec_pre(self): # pre-defined key: 256 bytes, 10 iterations p = os.path.join(DATA_PATH, 'key_recommended.json') f = open(p, 'r') json_str = f.read() f.close() a = Spinner.loads(json_str) pt = bytearray(b'abcdABCD') ct = a.encrypt(pt) self.assertEqual(ct, bytearray([9, 57, 116, 178, 64, 63, 43, 131])) self.assertNotEqual(pt, ct) self.assertEqual(len(pt), len(ct)) pt0 = a.decrypt(ct) self.assertEqual(pt, pt0)
def test_proximity(self): # pre-defined key: 256 bytes, 10 iterations p = os.path.join(DATA_PATH, 'key_recommended.json') f = open(p, 'r') json_str = f.read() f.close() a = Spinner.loads(json_str) pt1 = bytearray(b'Test1') pt2 = bytearray(b'Test2') ct1 = a.encrypt(pt1) ct2 = a.encrypt(pt2) # check there are no common bytes s1 = bytearray_to_set(ct1) s2 = bytearray_to_set(ct2) num_common = len(s1.intersection(s2)) self.assertEqual(num_common, 0)