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 10extern "C" { 11# include "third_party/lzma_sdk/7zCrc.h" 12} 13#endif 14 15#include "base/basictypes.h" 16 17namespace courgette { 18 19uint32 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