blob: 28a0f9c0d8f1191d575b28c50419d29a4eb44d57 [file] [log] [blame]
Torne (Richard Coles)58218062012-11-14 11:43:16 +00001// 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