public static int Main(string[] args) { if (args.Length == 0) { ShowHelp(); return 1; } var parser = new ArgumentParser(args); if (!File.Exists(file_)) { Console.Error.WriteLine("Cannot find file {0}", file_); ShowHelp(); return 1; } using (FileStream checksumStream = File.OpenRead(file_)) { byte[] buffer = new byte[4096]; int bytesRead; switch (parser.Command) { case Command.Help: ShowHelp(); break; case Command.Crc32: var currentCrc = new Crc32(); while ((bytesRead = checksumStream.Read(buffer, 0, buffer.Length)) > 0) { currentCrc.Update(buffer, 0, bytesRead); } Console.WriteLine("CRC32 for {0} is 0x{1:X8}", args[0], currentCrc.Value); break; case Command.BZip2: var currentBZip2Crc = new BZip2Crc(); while ((bytesRead = checksumStream.Read(buffer, 0, buffer.Length)) > 0) { currentBZip2Crc.Update(buffer, 0, bytesRead); } Console.WriteLine("BZip2CRC32 for {0} is 0x{1:X8}", args[0], currentBZip2Crc.Value); break; case Command.Adler: var currentAdler = new Adler32(); while ((bytesRead = checksumStream.Read(buffer, 0, buffer.Length)) > 0) { currentAdler.Update(buffer, 0, bytesRead); } Console.WriteLine("Adler32 for {0} is 0x{1:X8}", args[0], currentAdler.Value); break; } } return 0; }
public void Adler_32() { var underTestAdler32 = new Adler32(); Assert.AreEqual(0x00000001, underTestAdler32.Value); underTestAdler32.Update(check); Assert.AreEqual(0x091E01DE, underTestAdler32.Value); underTestAdler32.Reset(); Assert.AreEqual(0x00000001, underTestAdler32.Value); exceptionTesting(underTestAdler32); }
/// <summary> /// Creates a new inflater. /// </summary> /// <param name="noHeader"> /// True if no RFC1950/Zlib header and footer fields are expected in the input data /// /// This is used for GZIPed/Zipped input. /// /// For compatibility with /// Sun JDK you should provide one byte of input more than needed in /// this case. /// </param> public Inflater(bool noHeader) { this.noHeader = noHeader; this.adler = new Adler32(); input = new StreamManipulator(); outputWindow = new OutputWindow(); mode = noHeader ? DECODE_BLOCKS : DECODE_HEADER; }
/// <summary> /// Construct instance with pending buffer /// </summary> /// <param name="pending"> /// Pending buffer to use /// </param>> public DeflaterEngine(DeflaterPending pending) { this.pending = pending; huffman = new DeflaterHuffman(pending); adler = new Adler32(); window = new byte[2 * DeflaterConstants.WSIZE]; head = new short[DeflaterConstants.HASH_SIZE]; prev = new short[DeflaterConstants.WSIZE]; // We start at index 1, to avoid an implementation deficiency, that // we cannot build a repeat pattern at index 0. blockStart = strstart = 1; }