Crc catalog identify
crc-catalog-identify · version 1.0.0 · Hashing & signatures · free, no key needed
Identify pinned CRC RevEng algorithms that match every explicit message and check sample.
Use when you need to: which pinned crc algorithm matches these samples · identify catalogue crc from an observed check · intersect crc candidates across several packets.
Decide before calling
Read the versioned contract and the supported scope below. Reuse crc-catalog-identify@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-identify@1.0.0 for which pinned crc algorithm matches these samples. 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
- which pinned crc algorithm matches these samples
- identify catalogue crc from an observed check
- intersect crc candidates across several packets
- find the reveng crc name for a frame check
- narrow a crc variant using message and checksum pairs
- lookup a named crc from explicit sample encodings
- איתור אלגוריתם מהקטלוג לפי דוגמאות
Not supported
- compute a crc when no observed check is supplied
- search algorithms outside the pinned reveng catalogue
- guess the message encoding when the caller omits it
Behavior
- Search only the pinned CRC RevEng catalogue subset (data_version crc-reveng-catalogue-2026-10-21). A candidate is kept only when its width equals the sample width and its CRC of the sample message equals check_hex, for every sample.
- message_encoding is required on every sample and is one of ascii, utf8, or hex. There is no default encoding, no trimming, no BOM stripping, and no Unicode normalization.
- ascii accepts code points U+0000 through U+007F. utf8 uses the UTF-8 bytes of a well-formed string. hex is an even number of hexadecimal digits, case-insensitive, with no spaces or 0x prefix.
- check_hex is case-insensitive and must be exactly width/4 hexadecimal digits. Candidates are sorted by canonical catalogue name in ascending UTF-16 code unit order, then cut to candidate_limit.
- Omitting candidate_limit means 8, the declared maximum. A smaller positive limit returns the first names in that order and sets truncated when match_count is larger. match_count is the full intersection size.
- An empty message is zero bytes and is a valid sample. Zero matches return an empty candidates array, not an error.
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.
Input
samples(array of object, required): min items 1; max items 8candidate_limit(integer, optional): min 1; max 8
Output
data_version(constant "crc-reveng-catalogue-2026-10-21", required)match_count(integer, required): min 0; max 64returned_count(integer, required): min 0; max 8truncated(boolean, required)candidates(array of object, required): max items 8
Limits
- max samples: 8
- max sample bytes: 256
- max total message bytes: 1024
- max candidates: 8
Example
Request input:
{
"samples": [
{
"message_encoding": "ascii",
"message": "123456789",
"width": 32,
"check_hex": "cbf43926"
}
]
}
Response:
{
"result": {
"data_version": "crc-reveng-catalogue-2026-10-21",
"match_count": 1,
"returned_count": 1,
"truncated": false,
"candidates": [
{
"name": "CRC-32/ISO-HDLC",
"aliases": [
"CRC-32",
"CRC-32/ADCCP",
"CRC-32/V-42",
"CRC-32/XZ",
"PKZIP"
],
"width": 32,
"poly_hex": "04c11db7",
"init_hex": "ffffffff",
"refin": true,
"refout": true,
"xorout_hex": "ffffffff",
"check_hex": "cbf43926",
"residue_hex": "debb20e3"
}
]
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "crc-catalog-identify",
"version": "1.0.0",
"input": {
"samples": [
{
"message_encoding": "ascii",
"message": "123456789",
"width": 32,
"check_hex": "cbf43926"
}
]
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/crc-catalog-identify/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"samples":[{"message_encoding":"ascii","message":"123456789","width":32,"check_hex":"cbf43926"}]}'
The machine-readable contract is at /v1/tools/crc-catalog-identify/versions/1.0.0.
CLI
node cli.mjs run crc-catalog-identify 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- 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.
- Crc catalog compute: Compute a pinned RevEng CRC of hex bytes, including crossed-endian CRC-12/UMTS.
- 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 check value verify: Recompute a pinned catalogue CRC of ASCII 123456789 and compare an observed check.