# Adler-32 chunks verify

`adler32-chunks-verify` · version 1.0.0 · Hashing & signatures · free, no key needed

Verify that an ordered chunk list and a whole message have identical Adler-32 checksums.

**Use when you need to: verify adler32 chunks against whole message · compare streaming adler checksum to complete data · check ordered adler chunks.**

## Decide before calling

Read the [versioned contract](/v1/tools/adler32-chunks-verify/versions/1.0.0) and the supported scope below. Reuse `adler32-chunks-verify@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 `adler32-chunks-verify@1.0.0` for verify adler32 chunks against whole message. 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

- verify adler32 chunks against whole message
- compare streaming adler checksum to complete data
- check ordered adler chunks
- validate chunk list checksum against message
- audit incremental adler checksum result
- confirm chunk boundaries preserve adler checksum

## Not supported

- proving byte equality despite checksum collisions
- reordering or repairing chunks

## Behavior

- Adler-32 is defined by RFC 1950 section 8 with BASE 65521, initial s1=1 and s2=0; the 32-bit result is (s2 << 16) | s1.
- Every result identifies its reference as "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior".
- Disclaimer: format transform only; provides no confidentiality, integrity, or authenticity.
- Chunks are decoded in array order and combined algebraically; whole is decoded separately. A well-typed checksum mismatch returns match=false and does not throw.

## Input

- `chunks` (array of string, required): min items 0; max items 1024; each max length 262144
- `whole` (string, required): max length 262144
- `input_encoding` (one of "utf8", "hex", "base64", "base64url", optional): default `"utf8"`

## Output

- `algorithm` (one of "adler32", required)
- `chunks_checksum` (string, required): pattern `^[0-9a-f]{8}$`
- `whole_checksum` (string, required): pattern `^[0-9a-f]{8}$`
- `match` (boolean, required)
- `standard` (one of "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior", required)

## Limits

- max input bytes: 65536
- max chunks: 1024

## Example

Request input:

```json
{
  "chunks": [
    "abc",
    "def"
  ],
  "whole": "abcdef"
}
```

Response:

```json
{
  "result": {
    "algorithm": "adler32",
    "chunks_checksum": "081e0256",
    "whole_checksum": "081e0256",
    "match": true,
    "standard": "RFC 1950 section 8; zlib 1.3.1 adler32/adler32_combine behavior"
  }
}
```

## How to call it

### MCP

Connect `https://computefirst.net/mcp` ([setup](/docs#connect)), then call `execute` with:

```json
{
  "id": "adler32-chunks-verify",
  "version": "1.0.0",
  "input": {
    "chunks": [
      "abc",
      "def"
    ],
    "whole": "abcdef"
  }
}
```

### HTTP (no key)

```sh
curl -X POST https://computefirst.net/v1/tools/adler32-chunks-verify/versions/1.0.0/execute \
  -H "Content-Type: application/json" \
  -d '{"chunks":["abc","def"],"whole":"abcdef"}'
```

The machine-readable contract is at [/v1/tools/adler32-chunks-verify/versions/1.0.0](/v1/tools/adler32-chunks-verify/versions/1.0.0).

### CLI

```sh
node cli.mjs run adler32-chunks-verify 1.0.0 --input input.json --base-url https://computefirst.net
```

Get the client at [/clients/cli/](/clients/cli/).

## Related tools

- [Hash digest verify](/tools/hash-digest-verify): Recompute a fixed-length digest over encoded input bytes and compare it to an expected digest given in any encoding.
- [Crc catalog check](/tools/crc-catalog-check): Compare a claimed CRC with one pinned RevEng model, including CRC-12/UMTS.
- [Oci descriptor verify](/tools/oci-descriptor-verify): Verify supplied bytes against an OCI descriptor digest and size.
- [Checksum manifest verify](/tools/checksum-manifest-verify): Parse a GNU/BSD checksum manifest (sha256sum -c, tagged form) and verify caller-supplied file contents against it.
- [Crc check value verify](/tools/crc-check-value-verify): Recompute a pinned catalogue CRC of ASCII 123456789 and compare an observed check.
- [Crc parameters validate](/tools/crc-parameters-validate): Validate a Rocksoft CRC parameter tuple against the pinned CRC RevEng catalogue.
