public static bool VerifyChecksum(byte[] fileBytes, out uint checksum) { uint computedChecksum = CaesarReader.ComputeFileChecksumLazy(fileBytes); uint providedChecksum = ReadFileChecksum(fileBytes); checksum = providedChecksum; if (computedChecksum != providedChecksum) { Console.WriteLine($"WARNING: Checksum mismatch : computed/provided: {computedChecksum:X8}/{providedChecksum:X8}"); return(false); } return(true); }
public CaesarFlashContainer(byte[] fileBytes) { FileBytes = fileBytes; // from DIOpenCFF using (BinaryReader reader = new BinaryReader(new MemoryStream(fileBytes))) { byte[] header = reader.ReadBytes(StubHeader.StubHeaderSize); int cffHeaderSize = reader.ReadInt32(); byte[] cffHeaderData = reader.ReadBytes(cffHeaderSize); uint computedChecksum = CaesarReader.ComputeFileChecksumLazy(fileBytes); uint providedChecksum = ReadFileChecksum(fileBytes); if (computedChecksum != providedChecksum) { Console.WriteLine($"WARNING: Checksum mismatch : computed/provided: {computedChecksum:X8}/{providedChecksum:X8}"); } ReadFlashCFF(reader); // fix this ReadCTF(reader); } }