mirror of
https://github.com/cedricbonhomme/Stegano.git
synced 2025-05-12 17:18:30 +02:00
Check if the generator is implemented in Stegano.
This commit is contained in:
parent
d850bbd8a0
commit
a0f6f24d7c
3 changed files with 13 additions and 5 deletions
|
@ -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):
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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")
|
||||||
|
|
Loading…
Add table
Reference in a new issue