Coverage Report

Created: 2025-07-01 06:59

/src/sleuthkit/tsk/fs/btrfs_csum.cpp
Line
Count
Source
1
/*
2
** The Sleuth Kit
3
**
4
** Brian Carrier [carrier <at> sleuthkit [dot] org]
5
** Copyright (c) 2003-2011 Brian Carrier.  All rights reserved
6
**
7
** TASK
8
** Copyright (c) 2015 Stefan Pöschel.  All rights reserved
9
**
10
** This software is distributed under the Common Public License 1.0
11
*/
12
13
/*
14
 * Contains the checksum part for Btrfs file system support.
15
 */
16
17
#include "tsk/base/crc.h"
18
19
/**
20
 * Returns the CRC32C checksum of a specific amount of data.
21
 * @param a_data pointer to data
22
 * @param a_len data len
23
 * @return calculated checksum
24
 */
25
extern "C" unsigned long
26
btrfs_csum_crc32c(const unsigned char *a_data, const int a_len)
27
105
{
28
105
    cm_t cm;
29
105
    cm.cm_width = 32;
30
105
    cm.cm_poly = 0x1EDC6F41;
31
105
    cm.cm_init = 0xFFFFFFFF;
32
105
    cm.cm_refin = true;
33
105
    cm.cm_refot = true;
34
105
    cm.cm_xorot = 0xFFFFFFFF;
35
36
105
    cm_ini(&cm);
37
105
    cm_blk(&cm, (unsigned char *) a_data, a_len);
38
105
    return cm_crc(&cm);
39
105
}