diff --git a/pycatfile.py b/pycatfile.py index c64b204..2a8eac0 100755 --- a/pycatfile.py +++ b/pycatfile.py @@ -1952,7 +1952,7 @@ def ReadFileHeaderDataWithContent(fp, listonly=False, uncompress=True, skipcheck return False fp.seek(len(delimiter), 1) newfcs = GetHeaderChecksum( - HeaderOut[:-2] + [fprejsoncontent], HeaderOut[-4].lower(), True, formatspecs) + HeaderOut[:-2], HeaderOut[-4].lower(), True, formatspecs) HeaderOut.append(fjsoncontent) if(fcs != newfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + @@ -2127,7 +2127,7 @@ def ReadFileHeaderDataWithContentToArray(fp, listonly=False, contentasfile=True, fcs = HeaderOut[-2].lower() fccs = HeaderOut[-1].lower() newfcs = GetHeaderChecksum( - HeaderOut[:-2] + [fprejsoncontent], HeaderOut[-4].lower(), True, formatspecs) + HeaderOut[:-2], HeaderOut[-4].lower(), True, formatspecs) if(fcs != newfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + fname + " at offset " + str(fheaderstart)) @@ -2311,7 +2311,7 @@ def ReadFileHeaderDataWithContentToList(fp, listonly=False, contentasfile=False, fcs = HeaderOut[-2].lower() fccs = HeaderOut[-1].lower() newfcs = GetHeaderChecksum( - HeaderOut[:-2] + [fprejsoncontent], HeaderOut[-4].lower(), True, formatspecs) + HeaderOut[:-2], HeaderOut[-4].lower(), True, formatspecs) if(fcs != newfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + fname + " at offset " + str(fheaderstart)) @@ -2533,7 +2533,7 @@ def ReadFileDataWithContentToArray(fp, seekstart=0, seekend=0, listonly=False, c VerbosePrintOut("'" + prefjsonchecksum + "' != " + "'" + prejsonfcs + "'") return False prenewfcs = GetHeaderChecksum( - preheaderdata[:-2] + prefprejsoncontent, preheaderdata[-4].lower(), True, formatspecs) + preheaderdata[:-2], preheaderdata[-4].lower(), True, formatspecs) prefcs = preheaderdata[-2] if(prefcs != prenewfcs and not skipchecksum): VVerbosePrintOut("File Header Checksum Error with file " + @@ -3322,7 +3322,7 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi extrasizestr = extrasizestr + \ AppendNullBytes(extradata, formatspecs['format_delimiter']) extrasizelen = format(len(extrasizestr), 'x').lower() - tmpoutlen = len(filevalues) + len(extradata) + 12 + tmpoutlen = len(filevalues) + len(extradata) + 11 tmpoutlenhex = format(tmpoutlen, 'x').lower() tmpoutlist = filevalues fjsontype = "json" @@ -3341,9 +3341,10 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi tmpoutlist.append(fjsonsize) if(len(jsondata) > 0): tmpoutlist.append(checksumtype[2]) + tmpoutlist.append(GetFileChecksum(fjsoncontent, checksumtype[2], True, formatspecs)) else: tmpoutlist.append("none") - tmpoutlist.append(GetFileChecksum(fjsoncontent, checksumtype[2], True, formatspecs)) + tmpoutlist.append(GetFileChecksum(fjsoncontent, "none", True, formatspecs)) tmpoutlist.append(extrasizelen) tmpoutlist.append(extrafields) outfileoutstr = AppendNullBytes( @@ -3359,7 +3360,7 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi AppendNullBytes(checksumlist, formatspecs['format_delimiter']) nullstrecd = formatspecs['format_delimiter'].encode('UTF-8') outfileheadercshex = GetFileChecksum( - outfileoutstr + fjsoncontent + nullstrecd, checksumtype[0], True, formatspecs) + outfileoutstr, checksumtype[0], True, formatspecs) if(len(filecontent) == 0): outfilecontentcshex = GetFileChecksum( filecontent, "none", False, formatspecs) @@ -3373,7 +3374,7 @@ def AppendFileHeaderWithContent(fp, filevalues=[], extradata=[], jsondata={}, fi outfileoutstr = AppendNullByte( formheaersize, formatspecs['format_delimiter']) + outfileoutstr outfileheadercshex = GetFileChecksum( - outfileoutstr + fjsoncontent + nullstrecd, checksumtype[0], True, formatspecs) + outfileoutstr, checksumtype[0], True, formatspecs) outfileoutstr = outfileoutstr + \ AppendNullBytes([outfileheadercshex, outfilecontentcshex], formatspecs['format_delimiter']) @@ -6626,7 +6627,7 @@ def CatFileSeekToFileNum(infile, fmttype="auto", seekto=0, listonly=False, conte prefcs = preheaderdata[-2].lower() prenewfcs = preheaderdata[-1].lower() prenewfcs = GetHeaderChecksum( - preheaderdata[:-2] + [prefjoutfprejsoncontent], preheaderdata[-4].lower(), True, formatspecs) + preheaderdata[:-2], preheaderdata[-4].lower(), True, formatspecs) if(prefcs != prenewfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + prefname + " at offset " + str(prefhstart)) @@ -6938,7 +6939,7 @@ def CatFileSeekToFileName(infile, fmttype="auto", seekfile=None, listonly=False, prefcs = preheaderdata[-2].lower() prenewfcs = preheaderdata[-1].lower() prenewfcs = GetHeaderChecksum( - preheaderdata[:-2] + [prefjoutfprejsoncontent], preheaderdata[-4].lower(), True, formatspecs) + preheaderdata[:-2], preheaderdata[-4].lower(), True, formatspecs) if(prefcs != prenewfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + prefname + " at offset " + str(prefhstart)) @@ -7260,7 +7261,7 @@ def CatFileValidate(infile, fmttype="auto", formatspecs=__file_format_multi_dict outfcs = inheaderdata[-2].lower() outfccs = inheaderdata[-1].lower() infcs = GetHeaderChecksum( - inheaderdata[:-2] + [outfprejsoncontent], inheaderdata[-4].lower(), True, formatspecs) + inheaderdata[:-2], inheaderdata[-4].lower(), True, formatspecs) if(verbose): VerbosePrintOut(outfname) VerbosePrintOut("Record Number " + str(il) + "; File ID " + @@ -7594,7 +7595,7 @@ def CatFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=Fals prefcs = preheaderdata[-2].lower() prenewfcs = preheaderdata[-1].lower() prenewfcs = GetHeaderChecksum( - preheaderdata[:-2] + [prefjoutfprejsoncontent], preheaderdata[-4].lower(), True, formatspecs) + preheaderdata[:-2], preheaderdata[-4].lower(), True, formatspecs) if(prefcs != prenewfcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + prefname + " at offset " + str(prefhstart)) @@ -7753,7 +7754,7 @@ def CatFileToArray(infile, fmttype="auto", seekstart=0, seekend=0, listonly=Fals outfcs = inheaderdata[-2].lower() outfccs = inheaderdata[-1].lower() infcs = GetHeaderChecksum( - inheaderdata[:-2] + [outfprejsoncontent], inheaderdata[-4].lower(), True, formatspecs) + inheaderdata[:-2], inheaderdata[-4].lower(), True, formatspecs) if(outfcs != infcs and not skipchecksum): VerbosePrintOut("File Header Checksum Error with file " + outfname + " at offset " + str(outfhstart))