Crc catalog describe
crc-catalog-describe · version 1.0.0 · Hashing & signatures · free, no key needed
Describe one pinned RevEng CRC model, including independent refin and refout.
Use when you need to: describe a pinned reveng crc model · crc-12 umts polynomial init and residue · aliases of a catalogue crc name.
Decide before calling
Read the versioned contract and the supported scope below. Reuse crc-catalog-describe@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-describe@1.0.0 for describe a pinned reveng crc model. 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
- describe a pinned reveng crc model
- crc-12 umts polynomial init and residue
- aliases of a catalogue crc name
- rocksoft parameters for pkzip
- is crc-32 xz the 32-bit iso model
- show refin and refout for a crc name
- catalogue residue of crc-40 gsm
Not supported
- computing a checksum of a caller message
- accepting a custom polynomial in place of a pinned name
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.
- 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.
- check_hex is the CRC of the nine-byte UTF-8 string 123456789. residue_hex is the catalogue residue: load xorout, reflect the register when refout is true, read width zero bits, then reflect when refin is true. xorout is not applied again. This is the CRC RevEng legend, including crossed-endian CRC-12/UMTS.
- The argument is one pinned name or alias. name in the output is always the canonical catalogue name, and aliases stay in catalogue order. CRC-32/XZ is an alias of CRC-32/ISO-HDLC (width 32), not a 64-bit model. evidence_class is the catalogue evidence class.
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.
Input
algorithm(string, required): min length 1; max length 16
Output
data_version(constant "reveng-catalogue-2024-12-11", required)name(string, required): pattern^[A-Z0-9][A-Z0-9/-]*$aliases(array of string, required): each 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)poly_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$init_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$xorout_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$refin(boolean, required)refout(boolean, required)crossed_endian(boolean, required)evidence_class(one of "academic", "attested", "confirmed", required)check_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$residue_hex(string, required): min length 1; max length 16; pattern^[0-9a-f]+$check_message(constant "123456789", required)
Limits
- max algorithm bytes: 16
Example
Request input:
{
"algorithm": "CRC-12/UMTS"
}
Response:
{
"result": {
"data_version": "reveng-catalogue-2024-12-11",
"name": "CRC-12/UMTS",
"aliases": [
"CRC-12/3GPP"
],
"width": 12,
"poly_hex": "80f",
"init_hex": "000",
"xorout_hex": "000",
"refin": false,
"refout": true,
"crossed_endian": true,
"evidence_class": "academic",
"check_hex": "daf",
"residue_hex": "000",
"check_message": "123456789"
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "crc-catalog-describe",
"version": "1.0.0",
"input": {
"algorithm": "CRC-12/UMTS"
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/crc-catalog-describe/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"algorithm":"CRC-12/UMTS"}'
The machine-readable contract is at /v1/tools/crc-catalog-describe/versions/1.0.0.
CLI
node cli.mjs run crc-catalog-describe 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Crc parameters validate: Validate a Rocksoft CRC parameter tuple against the pinned CRC RevEng catalogue.
- Crc catalog compute: Compute a pinned RevEng CRC of hex bytes, including crossed-endian CRC-12/UMTS.
- Crc catalog list: List the pinned RevEng CRC models with check values, residues, and reflection.
- 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 parametric compute: Compute a CRC using a named catalogue preset (CRC-8, CRC-16/ARC, CRC-32/ISO-HDLC, ...) or an explicit Rocksoft model.