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)
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)
def setUp(self): client_cert = pjoin(THIS_DIR, '../fixtures/client/certs/client1.crt') client_key = pjoin(THIS_DIR, '../fixtures/client/keys/client1.key') ca_certs = pjoin(THIS_DIR, '../fixtures/ca/myCA.crt') kwargs = {'client_cert': client_cert, 'client_key': client_key, 'ca_certs': ca_certs} keys_path = pjoin(THIS_DIR, '../fixtures/keys/public') self.encrypter = HybridCryptoEncrypter(keys_path=keys_path) self.get_client = GetClient(server_urls=['https://localhost:8888'], **kwargs) self.set_client = SetClient(server_urls=['https://localhost:9999'], **kwargs)
class ClientTestCase(unittest.TestCase): def setUp(self): client_cert = pjoin(THIS_DIR, '../fixtures/client/certs/client1.crt') client_key = pjoin(THIS_DIR, '../fixtures/client/keys/client1.key') ca_certs = pjoin(THIS_DIR, '../fixtures/ca/myCA.crt') kwargs = {'client_cert': client_cert, 'client_key': client_key, 'ca_certs': ca_certs} keys_path = pjoin(THIS_DIR, '../fixtures/keys/public') self.encrypter = HybridCryptoEncrypter(keys_path=keys_path) self.get_client = GetClient(server_urls=['https://localhost:8888'], **kwargs) self.set_client = SetClient(server_urls=['https://localhost:9999'], **kwargs) def test_get_refresh_token_doesnt_exist(self): self.assertRaises(UserDoesNotExist, self.get_client.get_refresh_token, account_uuid='inexistent') def test_get_access_token_doesnt_exist(self): self.assertRaises(UserDoesNotExist, self.get_client.get_access_token, account_uuid='inexistent') def test_set_refresh_token(self): self.assertRaises(UserDoesNotExist, self.get_client.get_refresh_token, account_uuid='user1') # get_refresh_token token = self.encrypter.encrypt(data='footoken1') self.assertTrue(self.set_client.set_refresh_token('user1', token)) token = self.get_client.get_refresh_token('user1') self.assertEqual(token, 'footoken1') token = self.encrypter.encrypt(data='footoken2') self.assertTrue(self.set_client.set_refresh_token('user1', token)) token = self.get_client.get_refresh_token('user1') self.assertEqual(token, 'footoken2') # get_access_token # TODO: mock google api server url def test_delete(self): account_uuid = '68bdf92f-64a4-45ea-a20a-5a31cb92c204' self.assertRaises(UserDoesNotExist, self.get_client.get_refresh_token, account_uuid=account_uuid) token = self.encrypter.encrypt(data='footoken2') self.assertTrue(self.set_client.delete(account_uuid)) self.assertTrue(self.set_client.set_refresh_token(account_uuid, token)) token = self.get_client.get_refresh_token(account_uuid) self.assertEqual(token, 'footoken2') self.assertTrue(self.set_client.delete(account_uuid)) self.assertRaises(UserDoesNotExist, self.get_client.get_refresh_token, account_uuid=account_uuid)