def test_rgba_image_file_can_have_data_encoded_and_extracted_using_valid_png_image_no_encryption(self): sut.create_stegano_image( original_image="tests/test_resources/rgba_image.png", data_to_hide="tests/test_resources/small_rgba.png" ).save("tests/test_resources/encoded_img.png") extracted_content = sut.extract_data_from_stegano_image("tests/test_resources/encoded_img.png") self.write_extracted_content_to_file(extracted_content) self.assertTrue(filecmp.cmp("tests/test_resources/small_rgba.png", "tests/test_resources/extracted_content"))
def test_text_file_can_not_be_decoded_if_encrypted_and_incorrect_password_provided(self): sut.create_stegano_image( original_image="tests/test_resources/rgb_image.png", data_to_hide="tests/test_resources/hide_me.txt", cipher_key="JarrodCT" ).save("tests/test_resources/encoded_img.png") extracted_content = sut.extract_data_from_stegano_image("tests/test_resources/encoded_img.png", "BadPassX") self.write_extracted_content_to_file(extracted_content) self.assertFalse(filecmp.cmp("tests/test_resources/hide_me.txt", "tests/test_resources/extracted_content"))
def test_text_file_can_have_data_encoded_and_extracted_using_valid_png_image_with_encryption(self): sut.create_stegano_image( original_image="tests/test_resources/rgb_image.png", data_to_hide="tests/test_resources/hide_me.txt", cipher_key="12345678" ).save("tests/test_resources/encoded_img.png") extracted_content = sut.extract_data_from_stegano_image("tests/test_resources/encoded_img.png", "12345678") self.write_extracted_content_to_file(extracted_content) self.assertTrue(filecmp.cmp("tests/test_resources/hide_me.txt", "tests/test_resources/extracted_content"))
def encode(self, message, cover_file, data_file, new_file, password): self.resources.update_status_box(message) output_dir = sep.join([expanduser('~'), "Downloads"]) try: image_file = create_stegano_image(original_image=cover_file, data_to_hide=data_file, cipher_key=password) image_file.save("{0}{1}{2}.png".format(output_dir, sep, new_file.replace(".png", ""))) self.resources.update_status_box('{0}.pdf succssfully saved in Downloads folder'.format(new_file.replace(".png", ""))) except Exception as e: self.resources.update_status_box(e)