Crc catalog compute
crc-catalog-compute · version 1.0.0 · Hashing & signatures · free, no key needed
Compute a pinned RevEng CRC of hex bytes, including crossed-endian CRC-12/UMTS.
Use when you need to: pinned reveng catalogue crc of hex bytes · crc-12 umts checksum with output reflection · augment a catalogue crc by its width.
Decide before calling
Read the versioned contract and the supported scope below. Reuse crc-catalog-compute@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use crc-catalog-compute@1.0.0 for pinned reveng catalogue crc of hex bytes. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- pinned reveng catalogue crc of hex bytes
- crc-12 umts checksum with output reflection
- augment a catalogue crc by its width
- crc-4 interlaken of a hex frame
- unsigned crc-64 xz catalogue digest
- gsm crc-3 of this payload
- checksum using a pinned crc name
Not supported
- custom poly, init or xorout outside the 27 pinned names
- the single-preset UTF-8 crc32 text checksum
Behavior
- refin and refout are independent. refin false reads each input byte most-significant bit first; refin true reads each input byte least-significant bit first. After the message bits and any width-bit zero augmentation, refout true reverses the whole width-bit register and refout false leaves it unreflected. refout is not taken from refin. CRC-12/UMTS (alias CRC-12/3GPP) is the pinned crossed-endian record: refin is false and refout is true, so its bytes are read most-significant bit first and its register is still reflected before xorout.
- Catalogue names, aliases and list queries match by ASCII case-folding only: code units U+0061 through U+007A map to U+0041 through U+005A and every other code unit is unchanged. There is no trimming and no Unicode normalization. crc-8/smbus and the alias crc-8 select CRC-8/SMBUS. CRC-8/SMBU followed by U+017F does not select CRC-8/SMBUS.
- poly, init, xorout and the running register are kept inside the unsigned mask 2^width-1 after every shift and after xorout. Hex is lowercase, zero-padded to ceil(width/4) digits, with no sign and no 0x prefix. Integers wider than 53 bits are returned as base-10 strings.
- augment may be omitted; omission means false. When augment is true, the engine reads exactly width extra zero bits after the message bytes and before refout and xorout. Those bits are not an extra zero byte.
- data_version is the pinned catalogue version reveng-catalogue-2024-12-11 (CRC RevEng catalogue page last updated 11 December 2024, retrieved 2026-10-21). The pin has 27 named records, widths 3 through 64, each with its published check and residue.
- algorithm and message_hex are required. crc_hex and crc_uint are the CRC of message_hex. residue_hex is the catalogue residue of the selected model, not a residue computed from message_hex. No custom polynomial is accepted.
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.
Input
algorithm(string, required): min length 1; max length 16message_hex(string, required): min length 0; max length 4096; pattern^(?:[0-9a-fA-F]{2})*$augment(boolean, optional)
Output
data_version(constant "reveng-catalogue-2024-12-11", required)algorithm(string, required): pattern^[A-Z0-9][A-Z0-9/-]*$width(one of 3, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 21, 24, 31, 32, 40, 64, required)refin(boolean, required)refout(boolean, required)augmented(boolean, required)crc_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$crc_uint(string, required): min length 1; max length 20; pattern^(0|[1-9][0-9]*)$residue_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$
Limits
- max message hex bytes: 4096
- max algorithm bytes: 16
Example
Request input:
{
"algorithm": "CRC-12/UMTS",
"message_hex": "313233343536373839"
}
Response:
{
"result": {
"data_version": "reveng-catalogue-2024-12-11",
"algorithm": "CRC-12/UMTS",
"width": 12,
"refin": false,
"refout": true,
"augmented": false,
"crc_hex": "daf",
"crc_uint": "3503",
"residue_hex": "000"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "crc-catalog-compute",
"version": "1.0.0",
"input": {
"algorithm": "CRC-12/UMTS",
"message_hex": "313233343536373839"
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/crc-catalog-compute/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"algorithm":"CRC-12/UMTS","message_hex":"313233343536373839"}'
The machine-readable contract is at /v1/tools/crc-catalog-compute/versions/1.0.0.
CLI
node cli.mjs run crc-catalog-compute 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Crc catalog describe: Describe one pinned RevEng CRC model, including independent refin and refout.
- Crc catalog check: Compare a claimed CRC with one pinned RevEng model, including CRC-12/UMTS.
- Crc catalog identify: Identify pinned CRC RevEng algorithms that match every explicit message and check sample.
- Crc catalog list: List the pinned RevEng CRC models with check values, residues, and reflection.
- Crc parameters validate: Validate a Rocksoft CRC parameter tuple against the pinned CRC RevEng catalogue.
- Xxh3 64 compute: Compute the bit-exact XXH3 64-bit hash with a uint64 seed or public 192-byte custom secret.