class HybridCryptoTestCase(unittest.TestCase): def setUp(self): self._fixtures_dir = pjoin(BASE_DIR, 'fixtures/') self._dir1 = pjoin(self._fixtures_dir, 'public/') self._dir2 = pjoin(self._fixtures_dir, 'private/') self._encrypter = HybridCryptoEncrypter(keys_path=self._dir1) self._decrypter = HybridCryptoDecrypter(keys_path=self._dir2) def test_aes_encrypt_and_decrypt_round_trip(self): test_data = [ 'foo', 'foo bar ponies', 'ponies bar foo ponies', 'abcd12345' 'test99', 'a' * 500 + 'b' * 500 + 'c' * 1000 ] key = RandBytes(n=(256/8)) for plain_text in test_data: encrypted = self._encrypter._aes_encrypt(key=key, data=plain_text) self.assertNotEqual(encrypted, plain_text) decrypted = self._decrypter._aes_decrypt(key=key, data=encrypted) self.assertEqual(decrypted, plain_text) def test_encrypt_and_decrypt_round_trip(self): test_data = [ # Short messages (only public-key cryptography is used) 'foo', 'foo bar ponies', 'ponies bar foo ponies', 'abcd12345' 'test99', 'a' * 214, # 2048 / 8 - 41 # Long messages (PKC + AES CBC is used) 'a' * 500 + 'b' * 500 + 'c' * 500, 'test' * 100 ] for data in test_data: encrypted = self._encrypter.encrypt(data=data) self.assertNotEqual(encrypted, data) decrypted = self._decrypter.decrypt(data=encrypted) self.assertEqual(decrypted, data)
class HybridCryptoTestCase(unittest.TestCase): def setUp(self): self._fixtures_dir = pjoin(BASE_DIR, 'fixtures/') self._dir1 = pjoin(self._fixtures_dir, 'public/') self._dir2 = pjoin(self._fixtures_dir, 'private/') self._encrypter = HybridCryptoEncrypter(keys_path=self._dir1) self._decrypter = HybridCryptoDecrypter(keys_path=self._dir2) def test_aes_encrypt_and_decrypt_round_trip(self): test_data = [ 'foo', 'foo bar ponies', 'ponies bar foo ponies', 'abcd12345' 'test99', 'a' * 500 + 'b' * 500 + 'c' * 1000 ] key = RandBytes(n=(256 / 8)) for plain_text in test_data: encrypted = self._encrypter._aes_encrypt(key=key, data=plain_text) self.assertNotEqual(encrypted, plain_text) decrypted = self._decrypter._aes_decrypt(key=key, data=encrypted) self.assertEqual(decrypted, plain_text) def test_encrypt_and_decrypt_round_trip(self): test_data = [ # Short messages (only public-key cryptography is used) 'foo', 'foo bar ponies', 'ponies bar foo ponies', 'abcd12345' 'test99', 'a' * 214, # 2048 / 8 - 41 # Long messages (PKC + AES CBC is used) 'a' * 500 + 'b' * 500 + 'c' * 500, 'test' * 100 ] for data in test_data: encrypted = self._encrypter.encrypt(data=data) self.assertNotEqual(encrypted, data) decrypted = self._decrypter.decrypt(data=encrypted) self.assertEqual(decrypted, data)