NEW: added new marker processing, added print markers metadata CLI, added print markers image CLI
This commit is contained in:
parent
e0d7466730
commit
498070a48e
|
@ -0,0 +1,17 @@
|
||||||
|
***** ***** ***** *****
|
||||||
|
*** Picseal ***
|
||||||
|
***** ***** ***** *****
|
||||||
|
|
||||||
|
Your Photo is your Crypto Key
|
||||||
|
Generate a new Crypto Key to share with every photo
|
||||||
|
|
||||||
|
|
||||||
|
[[ Requirements ]]
|
||||||
|
Python 3
|
||||||
|
pycrypto==2.6.1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[[ Usage ]]
|
||||||
|
|
||||||
|
|
|
@ -143,12 +143,11 @@ class JpgBin:
|
||||||
# rec_len = self.calcSeekBytes()
|
# rec_len = self.calcSeekBytes()
|
||||||
self.__addImgData(marker_hex, "SOS ")
|
self.__addImgData(marker_hex, "SOS ")
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
def markerRST(self, marker_hex):
|
def markerRST(self, marker_hex):
|
||||||
self.__addImgData(marker_hex, "RST ")
|
self.__addImgData(marker_hex, "RST ")
|
||||||
|
|
||||||
|
#
|
||||||
def markerDQT(self, marker_hex):
|
def markerDQT(self, marker_hex):
|
||||||
fpos = self.fh.tell()
|
fpos = self.fh.tell()
|
||||||
rec_len = self.calcSeekBytes()
|
rec_len = self.calcSeekBytes()
|
||||||
|
@ -190,7 +189,7 @@ class JpgBin:
|
||||||
cur_fpos = (fpos - (self.data_len - self.data_idx))
|
cur_fpos = (fpos - (self.data_len - self.data_idx))
|
||||||
if (self.prev_fpos > 0):
|
if (self.prev_fpos > 0):
|
||||||
rec_len = cur_fpos - self.prev_fpos
|
rec_len = cur_fpos - self.prev_fpos
|
||||||
self.jpg_fp.addImgMetadata(self.prev_mhex, self.prev_fpos, rec_len, self.prev_mstr)
|
self.jpg_fp.addImgData(self.prev_mhex, self.prev_fpos, rec_len, self.prev_mstr)
|
||||||
|
|
||||||
self.prev_mhex = mhex
|
self.prev_mhex = mhex
|
||||||
self.prev_mstr = mstr
|
self.prev_mstr = mstr
|
||||||
|
@ -245,15 +244,24 @@ class JpgBin:
|
||||||
self.getMoreBytes(True)
|
self.getMoreBytes(True)
|
||||||
return pos
|
return pos
|
||||||
|
|
||||||
|
#
|
||||||
|
def printMarkerImg(self):
|
||||||
|
return self.jpg_fp.printImgMarkers()
|
||||||
|
|
||||||
|
#
|
||||||
|
def printMarkerMeta(self):
|
||||||
|
return self.jpg_fp.printMDMarkers()
|
||||||
|
|
||||||
#
|
#
|
||||||
def findMarker(self, marker):
|
def findMarker(self, marker):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
#
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
|
||||||
return repr(self.jpg_fp)
|
return repr(self.jpg_fp)
|
||||||
|
|
||||||
|
#
|
||||||
def findMarkers222(self):
|
def findMarkers222(self):
|
||||||
last_idx = len(self.data_buf)
|
last_idx = len(self.data_buf)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ class JpgFingerprint:
|
||||||
self.markers_a = []
|
self.markers_a = []
|
||||||
self.markers_img = []
|
self.markers_img = []
|
||||||
self.markers_meta = []
|
self.markers_meta = []
|
||||||
self.markers_h = {}
|
# self.markers_h = {}
|
||||||
|
|
||||||
|
|
||||||
def addImgMetadata(self, mhex, mpos, mlen, mstr):
|
def addImgMetadata(self, mhex, mpos, mlen, mstr):
|
||||||
|
@ -15,24 +15,33 @@ class JpgFingerprint:
|
||||||
self.markers_a.append(marker)
|
self.markers_a.append(marker)
|
||||||
self.markers_meta.append(marker)
|
self.markers_meta.append(marker)
|
||||||
|
|
||||||
|
#
|
||||||
def addImgData(self, mhex, mpos, mlen, mstr):
|
def addImgData(self, mhex, mpos, mlen, mstr):
|
||||||
marker = JpgMarker(mhex, mpos, mlen, mstr)
|
marker = JpgMarker(mhex, mpos, mlen, mstr)
|
||||||
self.markers_a.append(marker)
|
self.markers_a.append(marker)
|
||||||
self.markers_img.append(marker)
|
self.markers_img.append(marker)
|
||||||
|
|
||||||
|
#
|
||||||
def printImgMarkers(self):
|
def printImgMarkers(self):
|
||||||
pass
|
# print ("Got here dummies")
|
||||||
|
# print ("len=={}".format(len(self.markers_img)))
|
||||||
|
# print ("*** *** *** ***\n{}".format(retstr))
|
||||||
|
return JpgFingerprint.__printMarker(self.markers_img)
|
||||||
|
|
||||||
|
#
|
||||||
def printMDMarkers(self):
|
def printMDMarkers(self):
|
||||||
pass
|
return JpgFingerprint.__printMarker(self.markers_meta)
|
||||||
|
|
||||||
#
|
#
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
return JpgFingerprint.__printMarker(self.markers_a)
|
||||||
|
|
||||||
|
#
|
||||||
|
@staticmethod
|
||||||
|
def __printMarker(markers):
|
||||||
str = ""
|
str = ""
|
||||||
total = 0
|
total = 0
|
||||||
for marker in self.markers_a:
|
for marker in markers:
|
||||||
str += repr(marker) + "\n"
|
str += repr(marker) + "\n"
|
||||||
total += marker.marker_size
|
total += marker.marker_size
|
||||||
str += "[TOT ] bytes=={}".format(total)
|
str += "[TOT ] bytes=={}".format(total)
|
||||||
|
@ -54,7 +63,7 @@ class JpgMarker:
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "[{}] {} {}-len {}-fpos".format(self.marker_cat, self.marker_hexstr, self.marker_size, self.marker_filepos)
|
return "[{}] {} {}(len) {}(fpos)".format(self.marker_cat, self.marker_hexstr, self.marker_size, self.marker_filepos)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
import logging
|
import logging
|
||||||
from PIL import Image
|
# from PIL import Image
|
||||||
from libs.jpg_bin import JpgBin
|
from libs.jpg_bin import JpgBin
|
||||||
|
|
||||||
|
|
||||||
|
|
29
picseal.py
29
picseal.py
|
@ -11,6 +11,9 @@ from libs.toolbox import Toolbox
|
||||||
from libs.jpg_tools import JpgTools
|
from libs.jpg_tools import JpgTools
|
||||||
|
|
||||||
fingerprint = False
|
fingerprint = False
|
||||||
|
printmeta = False
|
||||||
|
printimage = False
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parseArgs()
|
parseArgs()
|
||||||
|
@ -23,8 +26,8 @@ def processImage(image_fn):
|
||||||
jpg = JpgTools()
|
jpg = JpgTools()
|
||||||
jpg_bin = jpg.getJpgBin(image_fn)
|
jpg_bin = jpg.getJpgBin(image_fn)
|
||||||
|
|
||||||
if (fingerprint):
|
printImageInfo(jpg_bin)
|
||||||
print( str(jpg_bin) )
|
|
||||||
# sig = Signature()
|
# sig = Signature()
|
||||||
# sig.genSig(img_bin)
|
# sig.genSig(img_bin)
|
||||||
|
|
||||||
|
@ -59,6 +62,17 @@ def copyImage(image_fn):
|
||||||
copyfile(image_fn, newFileName)
|
copyfile(image_fn, newFileName)
|
||||||
return (pubFileName, privFileName)
|
return (pubFileName, privFileName)
|
||||||
|
|
||||||
|
#
|
||||||
|
def printImageInfo(jpg_bin2):
|
||||||
|
if (fingerprint):
|
||||||
|
print( str(jpg_bin2) )
|
||||||
|
|
||||||
|
if (printimage):
|
||||||
|
print( jpg_bin2.printMarkerImg())
|
||||||
|
|
||||||
|
if (printmeta):
|
||||||
|
print( jpg_bin2.printMarkerMeta())
|
||||||
|
|
||||||
|
|
||||||
def parseArgs():
|
def parseArgs():
|
||||||
print("***** ***** ***** *****")
|
print("***** ***** ***** *****")
|
||||||
|
@ -69,6 +83,8 @@ def parseArgs():
|
||||||
parser.add_argument('-v', '--verbose', action='store_true', help="will set logging level to INFO")
|
parser.add_argument('-v', '--verbose', action='store_true', help="will set logging level to INFO")
|
||||||
parser.add_argument('-vv', '--vverbose', action='store_true', help="will set logging level to DEBUG")
|
parser.add_argument('-vv', '--vverbose', action='store_true', help="will set logging level to DEBUG")
|
||||||
parser.add_argument('-l', '--logging', action='store_true', help="will supercede the -v option and send all logging to a file, logging.DEBUG")
|
parser.add_argument('-l', '--logging', action='store_true', help="will supercede the -v option and send all logging to a file, logging.DEBUG")
|
||||||
|
parser.add_argument('-pm', '--printmeta', action='store_true', help="print the metadata markers")
|
||||||
|
parser.add_argument('-pi', '--printimage', action='store_true', help="print the image markers")
|
||||||
parser.add_argument('-fp', '--fingerprint', action='store_true', help="fingerprint")
|
parser.add_argument('-fp', '--fingerprint', action='store_true', help="fingerprint")
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
@ -83,8 +99,17 @@ def parseArgs():
|
||||||
logging.basicConfig(level=logging.CRITICAL)
|
logging.basicConfig(level=logging.CRITICAL)
|
||||||
|
|
||||||
if (args.fingerprint):
|
if (args.fingerprint):
|
||||||
|
global fingerprint
|
||||||
fingerprint = True
|
fingerprint = True
|
||||||
|
|
||||||
|
if (args.printmeta):
|
||||||
|
global printmeta
|
||||||
|
printmeta = True
|
||||||
|
|
||||||
|
if (args.printimage):
|
||||||
|
global printimage
|
||||||
|
printimage = True
|
||||||
|
|
||||||
if (args.image):
|
if (args.image):
|
||||||
processImage(args.image)
|
processImage(args.image)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -1,4 +1,2 @@
|
||||||
Pillow==3.3.1
|
|
||||||
pycrypto==2.6.1
|
pycrypto==2.6.1
|
||||||
requests==2.11.0
|
|
||||||
shellescape==3.4.1
|
|
||||||
|
|
Loading…
Reference in New Issue