def test_socket_wrapper(self): secret = generate_shared_secret() cipher = create_AES_cipher(secret) encryptor = cipher.encryptor() decryptor = cipher.decryptor() server_cipher = create_AES_cipher(secret) server_encryptor = server_cipher.encryptor() server_decryptor = server_cipher.decryptor() mock_socket = MockSocket(server_encryptor, server_decryptor) wrapper = EncryptedSocketWrapper(mock_socket, encryptor, decryptor) self.assertEqual(wrapper.fileno(), 0) # Ensure that the 12 bytes we receive are the same as the 12 bytes # sent by the server, after undergoing encryption self.assertEqual(wrapper.recv(12), mock_socket.raw_data[:12]) # Ensure that hello reaches the server properly after undergoing # encryption test_data = "hello".encode('utf-8') wrapper.send(test_data) self.assertEqual(test_data, mock_socket.received)
def setUp(self): with open(os.path.join(KEY_LOCATION, "priv_key.bin"), "rb") as f: self.private_key = f.read() self.private_key = load_der_private_key(self.private_key, None, default_backend()) with open(os.path.join(KEY_LOCATION, "pub_key.bin"), "rb") as f: self.public_key = f.read() self.token = generate_shared_secret()
def test_token_secret_encryption(self): secret = generate_shared_secret() encrypted_token, encrypted_secret = encrypt_token_and_secret( public_key, token, secret) decrypted_token = private_key.decrypt(encrypted_token, PKCS1v15()) decrypted_secret = private_key.decrypt(encrypted_secret, PKCS1v15()) self.assertEquals(token, decrypted_token) self.assertEquals(secret, decrypted_secret)
def test_token_secret_encryption(self): secret = generate_shared_secret() encrypted_token, encrypted_secret = \ encrypt_token_and_secret(public_key, token, secret) decrypted_token = private_key.decrypt(encrypted_token, PKCS1v15()) decrypted_secret = private_key.decrypt(encrypted_secret, PKCS1v15()) self.assertEquals(token, decrypted_token) self.assertEquals(secret, decrypted_secret)
def setUpModule(): global private_key, public_key, token with open(os.path.join(KEY_LOCATION, "priv_key.bin"), "rb") as f: private_key = f.read() private_key = load_der_private_key(private_key, None, default_backend()) with open(os.path.join(KEY_LOCATION, "pub_key.bin"), "rb") as f: public_key = f.read() token = generate_shared_secret()
def test_file_object_wrapper(self): cipher = create_AES_cipher(generate_shared_secret()) encryptor = cipher.encryptor() decryptor = cipher.decryptor() test_data = "hello".encode('utf-8') io = BytesIO() io.write(encryptor.update(test_data)) io.seek(0) file_object_wrapper = EncryptedFileObjectWrapper(io, decryptor) decrypted_data = file_object_wrapper.read(len(test_data)) self.assertEqual(test_data, decrypted_data)