CONFORMANCE SUITE v1.3.3 · ANCHORED IN REKOR

UTA Conformance Suite

Verify the verifier — no trust in the publisher required

Canonical test vectors, a reference scorer that is itself under test, a byte-for-byte reproducible build, and digests countersigned by Sigstore's public transparency log. Every artifact is verifiable from live URLs alone.

14
VECTORS
24
BEHAVIOR CHECKS
10
MUTANTS CAUGHT
3
REKOR ENTRIES
8
DIGESTS ANCHORED
0
TRUST REQUIRED
Run the checksGitHub sourceRekor entry #3
node score-runner.mjs·node runner-tests/runner-tests.mjs
Stranger flow — four commands, zero trust

Run the checks yourself

Fetch the files from these URLs (or the GitHub source tree), then:

# 1. Score the reference runner against the 14 fixed vectors
node score-runner.mjs

# 2. Prove the runner itself is the tested thing (24 checks + 10 mutants)
node runner-tests/runner-tests.mjs

# 3. Verify the third-party Rekor anchors (9 checks, live log)
node anchors/verify-rekor.mjs --record anchors/anchor-record-v3.json \
                                   --statement anchors/anchor-statement-v3.json

# 4. Rebuild the published npm tarball, byte-for-byte
node repro/verify-rebuild.mjs --manifest repro/source-manifest.json

Nothing to install beyond Node. No accounts, no API keys, no trust in the publisher.

The suite

What is published here

/vectors/

Test vectors

14 complete card artifacts with known verdicts. JCS-canonical bytes as hex, base64 and UTF-8 + SHA-256 — verify signatures without guessing the preimage.

Browse the 14 vectors →
/runner-tests/

The runner is the tested thing

24 behavioral checks against a recorded answer key, plus 10 mutant runners that must all be caught. The scorer stops being a trusted component.

See the oracles →
/anchors/

Rekor anchors

3 immutable entries in Sigstore's public append-only log. Countersigned, timestamped, inclusion-checkable — the publisher cannot rewrite what the log holds.

Inspect the entries →
/repro/

Reproducible build

The published npm tarball's inner tar layer rebuilds byte-for-byte from public source under a stated rule. Target downloads from registry.npmjs.org.

Run the rebuild →
/score-runner.mjs

Reference scorer

Two-sided validity window (issued_at ≤ NOW < expires_at), ground truth derived from card bytes, fail-closed sidecar policy.

Read the source →
/vectors/_index.json

Machine index

Every vector, verdict and digest in one JSON file — the artifact a verifier downloads first.

Fetch the JSON →
Why it matters

What a stranger can prove

  • Verification without the publisher. Each vector ships its exact canonical preimage, so signature verification is reproduced — not guessed.
  • A runner with teeth. The answer key pins the runner's bytes (SHA-256), its behavior row by row, and 10 known-bad mutants — every one of which is caught.
  • Immutability via a third party. Suite digests are countersigned and timestamped by Sigstore's Rekor log; inclusion is publicly checkable after the fact.
  • Builds that don't drift. The npm artifact is pinned by digest in three places (registry, repo, Rekor) and the tar layer is fully determined by content + stated rule.