// // GCFChecksumModule.cs - implements module for calculating checksum used in Valve GCF archives // // Author: // Michael Becker // // Copyright (c) 2011-2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; namespace UniversalEditor.Checksum.Modules.GCF { /// /// Implements module for calculating checksum used in Valve GCF archives. /// public class GCFChecksumModule : ChecksumModule { public override string Name { get { return "GCF"; } } public override void Update(byte[] buffer, int offset, int count) { Adler32.Adler32 adler32 = new Adler32.Adler32(); CRC32.CRC32ChecksumModule crc32 = new CRC32.CRC32ChecksumModule(); Value = (adler32.Calculate(buffer) ^ crc32.Calculate(buffer)); } public override void Update(int value) { throw new NotImplementedException(); } } }