1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "courgette/crc.h" 6 7 #ifdef COURGETTE_USE_CRC_LIB 8 # include "zlib.h" 9 #else 10 extern "C" { 11 # include "third_party/lzma_sdk/7zCrc.h" 12 } 13 #endif 14 15 #include "base/basictypes.h" 16 17 namespace courgette { 18 19 uint32 CalculateCrc(const uint8* buffer, size_t size) { 20 uint32 crc; 21 22 #ifdef COURGETTE_USE_CRC_LIB 23 // Calculate Crc by calling CRC method in zlib 24 crc = crc32(0, buffer, size); 25 #else 26 // Calculate Crc by calling CRC method in LZMA SDK 27 CrcGenerateTable(); 28 crc = CrcCalc(buffer, size); 29 #endif 30 31 return ~crc; 32 } 33 34 } // namespace 35