Fixed some bugs.

This commit is contained in:
Cédric Bonhomme 2015-10-06 07:49:11 +02:00
parent cda0578448
commit 28ba1e54cf
6 changed files with 23 additions and 35 deletions

View file

@ -27,7 +27,7 @@ __license__ = "GPLv3"
try: try:
from stegano import slsb from stegano import slsb
except: except:
print "Install stegano: python setup.py install" print("Install Stegano: sudo pip install Stegano")
from stegano import tools from stegano import tools
@ -71,9 +71,9 @@ if options.hide:
img_encoded = slsb.hide(options.input_image_file, secret) img_encoded = slsb.hide(options.input_image_file, secret)
try: try:
img_encoded.save(options.output_image_file) img_encoded.save(options.output_image_file)
except Exception, e: except Exception as e:
# If hide() returns an error (Too long message). # If hide() returns an error (Too long message).
print e print(e)
elif options.reveal: elif options.reveal:
secret = slsb.reveal(options.input_image_file) secret = slsb.reveal(options.input_image_file)
@ -82,4 +82,4 @@ elif options.reveal:
with open(options.secret_binary, "w") as f: with open(options.secret_binary, "w") as f:
f.write(data) f.write(data)
else: else:
print secret print(secret)

View file

@ -27,7 +27,7 @@ __license__ = "GPLv3"
try: try:
from stegano import slsbset from stegano import slsbset
except: except:
print "Install stegano: python setup.py install" print("Install stegano: sudo pip install Stegano")
from stegano import tools from stegano import tools
@ -77,19 +77,19 @@ if options.hide:
img_encoded = slsbset.hide(options.input_image_file, secret, options.generator_function) img_encoded = slsbset.hide(options.input_image_file, secret, options.generator_function)
try: try:
img_encoded.save(options.output_image_file) img_encoded.save(options.output_image_file)
except Exception, e: except Exception as e:
# If hide() returns an error (Too long message). # If hide() returns an error (Too long message).
print e print(e)
elif options.reveal: elif options.reveal:
try: try:
secret = slsbset.reveal(options.input_image_file, options.generator_function) secret = slsbset.reveal(options.input_image_file, options.generator_function)
except IndexError: except IndexError:
print "Impossible to detect message." print("Impossible to detect message.")
exit(0) exit(0)
if options.secret_binary != "": if options.secret_binary != "":
data = tools.base642binary(secret) data = tools.base642binary(secret)
with open(options.secret_binary, "w") as f: with open(options.secret_binary, "w") as f:
f.write(data) f.write(data)
else: else:
print secret print(secret)

View file

@ -27,7 +27,7 @@ __license__ = "GPLv3"
try: try:
from stegano import steganalysisParity from stegano import steganalysisParity
except: except:
print "Install stegano: python setup.py install" print("Install Stegano: sudo pip install Stegano")
from PIL import Image from PIL import Image
@ -43,4 +43,4 @@ parser.set_defaults(input_image_file = './pictures/Lenna.png',
input_image_file = Image.open(options.input_image_file) input_image_file = Image.open(options.input_image_file)
output_image = steganalysisParity.steganalyse(input_image_file) output_image = steganalysisParity.steganalyse(input_image_file)
output_image.save(options.output_image_file) output_image.save(options.output_image_file)

View file

@ -12,8 +12,7 @@ except ImportError:
packages = [ packages = [
'stegano', 'stegano',
'stegano.exif', 'stegano.exif'
'bin'
] ]
requires = ['pillow'] requires = ['pillow']
@ -23,12 +22,12 @@ with open('README.md', 'r') as f:
setup( setup(
name='Stegano', name='Stegano',
version='0.4.2', version='0.4.3',
author='Cédric Bonhomme', author='Cédric Bonhomme',
author_email='cedric@cedricbonhomme.org', author_email='cedric@cedricbonhomme.org',
packages=packages, packages=packages,
include_package_data=True, include_package_data=True,
#scripts=[''], scripts=['bin/slsb', 'bin/slsb-set', 'bin/steganalysis-parity'],
url='https://bitbucket.org/cedricbonhomme/stegano', url='https://bitbucket.org/cedricbonhomme/stegano',
description='A Python Steganography module.', description='A Python Steganography module.',
long_description=readme, long_description=readme,
@ -46,14 +45,3 @@ setup(
"License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)" "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)"
] ]
) )
if sys.argv[-1] == "install":
print("Installing binaries")
shutil.copy2("./bin/slsb-set", "/bin/slsb-set")
shutil.copymode("./bin/slsb-set", "/bin/slsb-set")
shutil.copy2("./bin/slsb", "/bin/slsb")
shutil.copymode("./bin/slsb", "/bin/slsb")
shutil.copy2("./bin/steganalysis-parity", "/bin/steganalysis-parity")
shutil.copymode("./bin/steganalysis-parity", "/bin/steganalysis-parity")

View file

@ -28,7 +28,7 @@ import sys
from PIL import Image from PIL import Image
import tools from . import tools
def hide(input_image_file, message): def hide(input_image_file, message):
""" """

View file

@ -28,8 +28,8 @@ import sys
from PIL import Image from PIL import Image
import tools from . import tools
import generators from . import generators
def hide(input_image_file, message, generator_function): def hide(input_image_file, message, generator_function):
""" """
@ -50,7 +50,7 @@ def hide(input_image_file, message, generator_function):
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 (%s > %s).""" % (len(message_bits), npixels * 3))
generator = getattr(generators, generator_function)() generator = getattr(generators, generator_function)()
while index + 3 <= len(message_bits) : while index + 3 <= len(message_bits) :
generated_number = next(generator) generated_number = next(generator)
(r, g, b) = img_list[generated_number] (r, g, b) = img_list[generated_number]
@ -62,17 +62,17 @@ def hide(input_image_file, message, generator_function):
# Save the new pixel # Save the new pixel
img_list[generated_number] = (r, g , b) img_list[generated_number] = (r, g , b)
index += 3 index += 3
# create empty new image of appropriate format # create empty new image of appropriate format
encoded = Image.new('RGB', (img.size)) encoded = Image.new('RGB', (img.size))
# insert saved data into the image # insert saved data into the image
encoded.putdata(img_list) encoded.putdata(img_list)
return encoded return encoded
def reveal(input_image_file, generator_function): def reveal(input_image_file, generator_function):
@ -132,7 +132,7 @@ if __name__ == '__main__':
# Generator # Generator
parser.add_option("-g", "--generator", dest="generator_function", parser.add_option("-g", "--generator", dest="generator_function",
help="Generator") help="Generator")
# Image containing the secret # Image containing the secret
parser.add_option("-o", "--output", dest="output_image_file", parser.add_option("-o", "--output", dest="output_image_file",
help="Output image containing the secret.") help="Output image containing the secret.")