mirror of
https://github.com/gchq/CyberChef.git
synced 2025-04-24 00:36:16 -04:00
Add Custom CRC
This commit is contained in:
parent
3025391821
commit
1b4760c447
2 changed files with 805 additions and 172 deletions
|
@ -27,180 +27,731 @@ class CRCChecksum extends Operation {
|
|||
this.args = [
|
||||
{
|
||||
name: "Algorithm",
|
||||
type: "option",
|
||||
type: "argSelector",
|
||||
value: [
|
||||
"CRC-3/GSM",
|
||||
"CRC-3/ROHC",
|
||||
"CRC-4/G-704",
|
||||
"CRC-4/INTERLAKEN",
|
||||
"CRC-4/ITU",
|
||||
"CRC-5/EPC",
|
||||
"CRC-5/EPC-C1G2",
|
||||
"CRC-5/G-704",
|
||||
"CRC-5/ITU",
|
||||
"CRC-5/USB",
|
||||
"CRC-6/CDMA2000-A",
|
||||
"CRC-6/CDMA2000-B",
|
||||
"CRC-6/DARC",
|
||||
"CRC-6/G-704",
|
||||
"CRC-6/GSM",
|
||||
"CRC-6/ITU",
|
||||
"CRC-7/MMC",
|
||||
"CRC-7/ROHC",
|
||||
"CRC-7/UMTS",
|
||||
"CRC-8",
|
||||
"CRC-8/8H2F",
|
||||
"CRC-8/AES",
|
||||
"CRC-8/AUTOSAR",
|
||||
"CRC-8/BLUETOOTH",
|
||||
"CRC-8/CDMA2000",
|
||||
"CRC-8/DARC",
|
||||
"CRC-8/DVB-S2",
|
||||
"CRC-8/EBU",
|
||||
"CRC-8/GSM-A",
|
||||
"CRC-8/GSM-B",
|
||||
"CRC-8/HITAG",
|
||||
"CRC-8/I-432-1",
|
||||
"CRC-8/I-CODE",
|
||||
"CRC-8/ITU",
|
||||
"CRC-8/LTE",
|
||||
"CRC-8/MAXIM",
|
||||
"CRC-8/MAXIM-DOW",
|
||||
"CRC-8/MIFARE-MAD",
|
||||
"CRC-8/NRSC-5",
|
||||
"CRC-8/OPENSAFETY",
|
||||
"CRC-8/ROHC",
|
||||
"CRC-8/SAE-J1850",
|
||||
"CRC-8/SAE-J1850-ZERO",
|
||||
"CRC-8/SMBUS",
|
||||
"CRC-8/TECH-3250",
|
||||
"CRC-8/WCDMA",
|
||||
"CRC-10/ATM",
|
||||
"CRC-10/CDMA2000",
|
||||
"CRC-10/GSM",
|
||||
"CRC-10/I-610",
|
||||
"CRC-11/FLEXRAY",
|
||||
"CRC-11/UMTS",
|
||||
"CRC-12/3GPP",
|
||||
"CRC-12/CDMA2000",
|
||||
"CRC-12/DECT",
|
||||
"CRC-12/GSM",
|
||||
"CRC-12/UMTS",
|
||||
"CRC-13/BBC",
|
||||
"CRC-14/DARC",
|
||||
"CRC-14/GSM",
|
||||
"CRC-15/CAN",
|
||||
"CRC-15/MPT1327",
|
||||
"CRC-16",
|
||||
"CRC-16/A",
|
||||
"CRC-16/ACORN",
|
||||
"CRC-16/ARC",
|
||||
"CRC-16/AUG-CCITT",
|
||||
"CRC-16/AUTOSAR",
|
||||
"CRC-16/B",
|
||||
"CRC-16/BLUETOOTH",
|
||||
"CRC-16/BUYPASS",
|
||||
"CRC-16/CCITT",
|
||||
"CRC-16/CCITT-FALSE",
|
||||
"CRC-16/CCITT-TRUE",
|
||||
"CRC-16/CCITT-ZERO",
|
||||
"CRC-16/CDMA2000",
|
||||
"CRC-16/CMS",
|
||||
"CRC-16/DARC",
|
||||
"CRC-16/DDS-110",
|
||||
"CRC-16/DECT-R",
|
||||
"CRC-16/DECT-X",
|
||||
"CRC-16/DNP",
|
||||
"CRC-16/EN-13757",
|
||||
"CRC-16/EPC",
|
||||
"CRC-16/EPC-C1G2",
|
||||
"CRC-16/GENIBUS",
|
||||
"CRC-16/GSM",
|
||||
"CRC-16/I-CODE",
|
||||
"CRC-16/IBM",
|
||||
"CRC-16/IBM-3740",
|
||||
"CRC-16/IBM-SDLC",
|
||||
"CRC-16/IEC-61158-2",
|
||||
"CRC-16/ISO-HDLC",
|
||||
"CRC-16/ISO-IEC-14443-3-A",
|
||||
"CRC-16/ISO-IEC-14443-3-B",
|
||||
"CRC-16/KERMIT",
|
||||
"CRC-16/LHA",
|
||||
"CRC-16/LJ1200",
|
||||
"CRC-16/LTE",
|
||||
"CRC-16/M17",
|
||||
"CRC-16/MAXIM",
|
||||
"CRC-16/MAXIM-DOW",
|
||||
"CRC-16/MCRF4XX",
|
||||
"CRC-16/MODBUS",
|
||||
"CRC-16/NRSC-5",
|
||||
"CRC-16/OPENSAFETY-A",
|
||||
"CRC-16/OPENSAFETY-B",
|
||||
"CRC-16/PROFIBUS",
|
||||
"CRC-16/RIELLO",
|
||||
"CRC-16/SPI-FUJITSU",
|
||||
"CRC-16/T10-DIF",
|
||||
"CRC-16/TELEDISK",
|
||||
"CRC-16/TMS37157",
|
||||
"CRC-16/UMTS",
|
||||
"CRC-16/USB",
|
||||
"CRC-16/V-41-LSB",
|
||||
"CRC-16/V-41-MSB",
|
||||
"CRC-16/VERIFONE",
|
||||
"CRC-16/X-25",
|
||||
"CRC-16/XMODEM",
|
||||
"CRC-16/ZMODEM",
|
||||
"CRC-17/CAN-FD",
|
||||
"CRC-21/CAN-FD",
|
||||
"CRC-24/BLE",
|
||||
"CRC-24/FLEXRAY-A",
|
||||
"CRC-24/FLEXRAY-B",
|
||||
"CRC-24/INTERLAKEN",
|
||||
"CRC-24/LTE-A",
|
||||
"CRC-24/LTE-B",
|
||||
"CRC-24/OPENPGP",
|
||||
"CRC-24/OS-9",
|
||||
"CRC-30/CDMA",
|
||||
"CRC-31/PHILIPS",
|
||||
"CRC-32",
|
||||
"CRC-32/AAL5",
|
||||
"CRC-32/ADCCP",
|
||||
"CRC-32/AIXM",
|
||||
"CRC-32/AUTOSAR",
|
||||
"CRC-32/BASE91-C",
|
||||
"CRC-32/BASE91-D",
|
||||
"CRC-32/BZIP2",
|
||||
"CRC-32/C",
|
||||
"CRC-32/CASTAGNOLI",
|
||||
"CRC-32/CD-ROM-EDC",
|
||||
"CRC-32/CKSUM",
|
||||
"CRC-32/D",
|
||||
"CRC-32/DECT-B",
|
||||
"CRC-32/INTERLAKEN",
|
||||
"CRC-32/ISCSI",
|
||||
"CRC-32/ISO-HDLC",
|
||||
"CRC-32/JAMCRC",
|
||||
"CRC-32/MEF",
|
||||
"CRC-32/MPEG-2",
|
||||
"CRC-32/NVME",
|
||||
"CRC-32/PKZIP",
|
||||
"CRC-32/POSIX",
|
||||
"CRC-32/Q",
|
||||
"CRC-32/SATA",
|
||||
"CRC-32/V-42",
|
||||
"CRC-32/XFER",
|
||||
"CRC-32/XZ",
|
||||
"CRC-40/GSM",
|
||||
"CRC-64/ECMA-182",
|
||||
"CRC-64/GO-ECMA",
|
||||
"CRC-64/GO-ISO",
|
||||
"CRC-64/MS",
|
||||
"CRC-64/NVME",
|
||||
"CRC-64/REDIS",
|
||||
"CRC-64/WE",
|
||||
"CRC-64/XZ",
|
||||
"CRC-82/DARC"
|
||||
{
|
||||
name: "Custom",
|
||||
on: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-3/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-3/ROHC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-4/G-704",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-4/INTERLAKEN",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-4/ITU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-5/EPC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-5/EPC-C1G2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-5/G-704",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-5/ITU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-5/USB",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/CDMA2000-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/CDMA2000-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/DARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/G-704",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-6/ITU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-7/MMC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-7/ROHC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-7/UMTS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/8H2F",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/AES",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/AUTOSAR",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/BLUETOOTH",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/CDMA2000",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/DARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/DVB-S2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/EBU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/GSM-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/GSM-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/HITAG",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/I-432-1",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/I-CODE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/ITU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/LTE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/MAXIM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/MAXIM-DOW",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/MIFARE-MAD",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/NRSC-5",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/OPENSAFETY",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/ROHC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/SAE-J1850",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/SAE-J1850-ZERO",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/SMBUS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/TECH-3250",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-8/WCDMA",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-10/ATM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-10/CDMA2000",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-10/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-10/I-610",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-11/FLEXRAY",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-11/UMTS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-12/3GPP",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-12/CDMA2000",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-12/DECT",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-12/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-12/UMTS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-13/BBC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-14/DARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-14/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-15/CAN",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-15/MPT1327",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ACORN",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/AUG-CCITT",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/AUTOSAR",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/BLUETOOTH",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/BUYPASS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CCITT",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CCITT-FALSE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CCITT-TRUE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CCITT-ZERO",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CDMA2000",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/CMS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/DARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/DDS-110",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/DECT-R",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/DECT-X",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/DNP",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/EN-13757",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/EPC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/EPC-C1G2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/GENIBUS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/I-CODE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/IBM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/IBM-3740",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/IBM-SDLC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/IEC-61158-2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ISO-HDLC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ISO-IEC-14443-3-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ISO-IEC-14443-3-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/KERMIT",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/LHA",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/LJ1200",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/LTE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/M17",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/MAXIM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/MAXIM-DOW",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/MCRF4XX",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/MODBUS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/NRSC-5",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/OPENSAFETY-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/OPENSAFETY-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/PROFIBUS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/RIELLO",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/SPI-FUJITSU",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/T10-DIF",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/TELEDISK",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/TMS37157",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/UMTS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/USB",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/V-41-LSB",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/V-41-MSB",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/VERIFONE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/X-25",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/XMODEM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-16/ZMODEM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-17/CAN-FD",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-21/CAN-FD",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/BLE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/FLEXRAY-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/FLEXRAY-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/INTERLAKEN",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/LTE-A",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/LTE-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/OPENPGP",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-24/OS-9",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-30/CDMA",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-31/PHILIPS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/AAL5",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/ADCCP",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/AIXM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/AUTOSAR",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/BASE91-C",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/BASE91-D",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/BZIP2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/C",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/CASTAGNOLI",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/CD-ROM-EDC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/CKSUM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/D",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/DECT-B",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/INTERLAKEN",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/ISCSI",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/ISO-HDLC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/JAMCRC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/MEF",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/MPEG-2",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/NVME",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/PKZIP",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/POSIX",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/Q",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/SATA",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/V-42",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/XFER",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-32/XZ",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-40/GSM",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/ECMA-182",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/GO-ECMA",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/GO-ISO",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/MS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/NVME",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/REDIS",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/WE",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-64/XZ",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
},
|
||||
{
|
||||
name: "CRC-82/DARC",
|
||||
off: [1, 2, 3, 4, 5, 6]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
name: "Width (bits)",
|
||||
type: "toggleString",
|
||||
value: "0",
|
||||
toggleValues: ["Decimal"]
|
||||
},
|
||||
{
|
||||
name: "Polynomial",
|
||||
type: "toggleString",
|
||||
value: "0",
|
||||
toggleValues: ["Hex"]
|
||||
},
|
||||
{
|
||||
name: "Initialization",
|
||||
type: "toggleString",
|
||||
value: "0",
|
||||
toggleValues: ["Hex"]
|
||||
},
|
||||
{
|
||||
name: "Reflect input",
|
||||
type: "option",
|
||||
value: ["True", "False"]
|
||||
},
|
||||
{
|
||||
name: "Reflect output",
|
||||
type: "option",
|
||||
value: ["True", "False"]
|
||||
},
|
||||
{
|
||||
name: "Xor Output",
|
||||
type: "toggleString",
|
||||
value: "0",
|
||||
toggleValues: ["Hex"]
|
||||
}
|
||||
];
|
||||
}
|
||||
|
@ -340,6 +891,32 @@ class CRCChecksum extends Operation {
|
|||
return VALUE.toString(16).padStart(Math.ceil(Number(width) / 4), "0");
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates user input to perform a custom CRC
|
||||
*
|
||||
* @param {Object} widthObject
|
||||
* @param {ArrayBuffer} input
|
||||
* @param {Object} polyObject
|
||||
* @param {Object} initObject
|
||||
* @param {Object} reflectInObject
|
||||
* @param {Object} reflectOutObject
|
||||
* @param {Object} xorOutObject
|
||||
*/
|
||||
custom(widthObject, input, polyObject, initObject, reflectInObject, reflectOutObject, xorOutObject) {
|
||||
try {
|
||||
const width = BigInt(widthObject.string);
|
||||
const poly = BigInt("0x" + polyObject.string);
|
||||
const init = BigInt("0x" + initObject.string);
|
||||
const reflectIn = reflectInObject.string === "True";
|
||||
const reflectOut = reflectOutObject.string === "True";
|
||||
const xorOut = BigInt("0x" + xorOutObject.string);
|
||||
|
||||
return this.crc(width, input, poly, init, reflectIn, reflectOut, xorOut);
|
||||
} catch (error) {
|
||||
throw new OperationError("Invalid custom CRC arguments");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculation of all known CRCs. Names and constants extracted from https://reveng.sourceforge.io/crc-catalogue/all.htm
|
||||
*
|
||||
|
@ -352,6 +929,7 @@ class CRCChecksum extends Operation {
|
|||
input = new Uint8Array(input);
|
||||
|
||||
switch (algorithm) {
|
||||
case "Custom": return this.custom(args[1], input, args[2], args[3], args[4], args[5], args[6]);
|
||||
case "CRC-3/GSM": return this.crc(3n, input, 0x3n, 0x0n, false, false, 0x7n);
|
||||
case "CRC-3/ROHC": return this.crc(3n, input, 0x3n, 0x7n, true, true, 0x0n);
|
||||
case "CRC-4/G-704": return this.crc(4n, input, 0x3n, 0x0n, true, true, 0x0n);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue