Home | History | Annotate | Download | only in courgette
      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