{"id":"crc-catalog-check","version":"1.0.0","description":"Compare a claimed CRC with one pinned RevEng model, including CRC-12/UMTS.","supported_operations":["compare a claimed crc with the catalogue","does this hex crc match crc-12 umts","detect a catalogue crc mismatch","check an augmented crc claim","verify pkzip crc against the pinned model","test a crc-16 modbus claim","confirm a crc-8 smbus checksum"],"unsupported_operations":["repairing or searching for an unknown polynomial","cryptographic signature verification"],"semantics":["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.","crc_hex is a claim of ceil(width/4) ASCII hex digits. A different length, or a non-hex character, is invalid_input rather than a mismatch. valid is false and reason is crc_mismatch when the claim differs from the CRC of message_hex under the same augment flag; that mismatch is a normal result. claimed_crc_hex folds only ASCII A-F.","Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity."],"limits":{"max_message_hex_bytes":4096,"max_algorithm_bytes":16,"max_crc_hex_bytes":16},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["algorithm","message_hex","crc_hex"],"properties":{"algorithm":{"type":"string","minLength":1,"maxLength":16},"message_hex":{"type":"string","minLength":0,"maxLength":4096,"pattern":"^(?:[0-9a-fA-F]{2})*$"},"crc_hex":{"type":"string","minLength":1,"maxLength":16,"pattern":"^[0-9a-fA-F]+$"},"augment":{"type":"boolean"}}},"output_schema":{"type":"object","additionalProperties":false,"required":["data_version","algorithm","width","refin","refout","crossed_endian","augmented","valid","reason","expected_crc_hex","claimed_crc_hex","residue_hex"],"properties":{"data_version":{"type":"string","const":"reveng-catalogue-2024-12-11"},"algorithm":{"type":"string","pattern":"^[A-Z0-9][A-Z0-9/-]*$"},"width":{"type":"integer","enum":[3,4,5,6,7,8,10,11,12,13,14,15,16,17,21,24,31,32,40,64]},"refin":{"type":"boolean"},"refout":{"type":"boolean"},"crossed_endian":{"type":"boolean"},"augmented":{"type":"boolean"},"valid":{"type":"boolean"},"reason":{"type":"string","enum":["match","crc_mismatch"]},"expected_crc_hex":{"type":"string","pattern":"^[0-9a-f]+$","minLength":1,"maxLength":16},"claimed_crc_hex":{"type":"string","pattern":"^[0-9a-f]+$","minLength":1,"maxLength":16},"residue_hex":{"type":"string","pattern":"^[0-9a-f]+$","minLength":1,"maxLength":16}}},"examples":[{"input":{"algorithm":"CRC-12/UMTS","message_hex":"313233343536373839","crc_hex":"DAF"},"output":{"data_version":"reveng-catalogue-2024-12-11","algorithm":"CRC-12/UMTS","width":12,"refin":false,"refout":true,"crossed_endian":true,"augmented":false,"valid":true,"reason":"match","expected_crc_hex":"daf","claimed_crc_hex":"daf","residue_hex":"000"}},{"input":{"algorithm":"crc-8","message_hex":"313233343536373839","crc_hex":"00"},"output":{"data_version":"reveng-catalogue-2024-12-11","algorithm":"CRC-8/SMBUS","width":8,"refin":false,"refout":false,"crossed_endian":false,"augmented":false,"valid":false,"reason":"crc_mismatch","expected_crc_hex":"f4","claimed_crc_hex":"00","residue_hex":"00"}}],"execute_url":"/v1/tools/crc-catalog-check/versions/1.0.0/execute"}