Library and CLI tool for calculating and verifying CRC checksums.
Project description
Overview
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
- docopt >= 0.6.2
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
Release history Release notifications | RSS feed
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.1.tar.gz
(6.1 kB
view hashes)