Check if the generator is implemented in Stegano.

This commit is contained in:
Cédric Bonhomme 2016-05-22 00:13:29 +02:00
parent d850bbd8a0
commit a0f6f24d7c
No known key found for this signature in database
GPG key ID: A1CB94DE57B7A70D
3 changed files with 13 additions and 5 deletions

View file

@ -64,7 +64,7 @@ def hide(input_image_file, message, auto_convert_rgb=False):
npixels = width * height npixels = width * height
len_message_bits = len(message_bits) len_message_bits = len(message_bits)
if len_message_bits > npixels * 3: if len_message_bits > npixels * 3:
raise Exception("The message you want to hide is too long: {}).". \ raise Exception("The message you want to hide is too long: {}". \
format(message_length)) format(message_length))
for row in range(height): for row in range(height):
for col in range(width): for col in range(width):

View file

@ -66,9 +66,13 @@ def hide(input_image_file, message, generator_function, auto_convert_rgb=False):
npixels = width * height npixels = width * height
len_message_bits = len(message_bits) len_message_bits = len(message_bits)
if len_message_bits > npixels * 3: if len_message_bits > npixels * 3:
raise Exception("""The message you want to hide is too long (%s > %s).""" % (len_message_bits, npixels * 3)) raise Exception("The message you want to hide is too long: {}".\
format(message_length))
generator = getattr(generators, generator_function)() try:
generator = getattr(generators, generator_function)()
except AttributeError as e:
raise e
while index + 3 <= len_message_bits : while index + 3 <= len_message_bits :
generated_number = next(generator) generated_number = next(generator)

View file

@ -41,7 +41,6 @@ class TestLSBSet(unittest.TestCase):
def test_hide_and_reveal(self): def test_hide_and_reveal(self):
messages_to_hide = ["a", "foo", "Hello World!", ":Python:"] messages_to_hide = ["a", "foo", "Hello World!", ":Python:"]
for message in messages_to_hide: for message in messages_to_hide:
secret = lsbset.hide("./tests/sample-files/Lenna.png", message, secret = lsbset.hide("./tests/sample-files/Lenna.png", message,
"eratosthenes") "eratosthenes")
@ -53,7 +52,6 @@ class TestLSBSet(unittest.TestCase):
def test_hide_and_reveal_with_bad_generator(self): def test_hide_and_reveal_with_bad_generator(self):
message_to_hide = "Hello World!" message_to_hide = "Hello World!"
secret = lsbset.hide("./tests/sample-files/Lenna.png", message_to_hide, secret = lsbset.hide("./tests/sample-files/Lenna.png", message_to_hide,
"eratosthenes") "eratosthenes")
secret.save("./image.png") secret.save("./image.png")
@ -61,6 +59,12 @@ class TestLSBSet(unittest.TestCase):
with self.assertRaises(IndexError): with self.assertRaises(IndexError):
clear_message = lsbset.reveal("./image.png", "identity") clear_message = lsbset.reveal("./image.png", "identity")
def test_with_unknown_generator(self):
message_to_hide = "Hello World!"
with self.assertRaises(AttributeError):
secret = lsbset.hide("./tests/sample-files/Lenna.png",
message_to_hide, "eratosthene")
def tearDown(self): def tearDown(self):
try: try:
os.unlink("./image.png") os.unlink("./image.png")