Skip to main content

Library and CLI tool for calculating and verifying CRC checksums.

Project description

Overview

travis-ci appveyor coveralls

Library and CLI tool for calculating and verifying CRC checksums.

Provided Default Configuration(s) of CRC Algorithms:

CRC8 CRC16 CRC32 CRC64
CCITT CCITT CRC32 CRC64
AUTOSAR GSM AUTOSAR
SAJ1850 PROFIBUS BZIP2
BLUETOOTH POSIX

Requirements

  • Python 3.6 and newer

Examples

Calculate crc using the CrcCalculator

from crc import CrcCalculator, Crc8
data = [0, 1, 2, 3, 4, 5 ]
expected_checksum = 0xff
crc_calculator = CrcCalculator(Crc8.CCITT)

checksum = crc_calculator.calculate_checksum(data)

assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

Speed up the calculation by using a table based CrcCalculator

from crc import CrcCalculator, Crc8

data = [0, 1, 2, 3, 4, 5 ]
expected_checksum = 0xff
use_table = True
crc_calculator = CrcCalculator(Crc8.CCITT, use_table)

checksum = crc_calculator.calculate_checksum(data)

assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

Create a custom crc configuration for the crc calculation

from crc import CrcCalculator, Configuration

data = [0, 1, 2, 3, 4, 5 ]
expected_checksum = 0xff

width = 8
poly=0x07,
init_value=0x00,
final_xor_value=0x00,
reverse_input=False,
reverse_output=False
configuration = Configuration(width, poly, init_value, final_xor_value, reverse_input, reverse_output)

use_table = True
crc_calculator = CrcCalculator(configuration, use_table)

checksum = crc_calculator.calculate_checksum(data)
assert checksum == expected_checksum
assert crc_calculator.verify_checksum(data, expected_checksum)

Use bare bones crc registers

from crc import Crc8, TableBasedCrcRegister, CrcRegister

data = [0, 1, 2, 3, 4, 5 ]
expected_checksum = 0xff

reg = CrcRegister(Crc8.CCITT)
table_reg = TableBasedCrcRegister(Crc8.CCITT)

reg.init()
reg.update(data)
assert expected_checksum == reg.digest()

table_reg.init()
table_reg.update(data)
assert expected_checksum == table_reg.digest()

Command line tool

See crc --help

subcommand(s)

table

Subcommand to pre-compute crc lookup tables. See also crc table --help.

checksum

Subcommand to calculate crc checksums of input file(s). See also crc checksum --help.

References & Resources

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

crc-0.9.2.tar.gz (6.1 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page