# aer1verify.lua — conformance results # generated: 2026-10-05T17:57:00Z $ lua5.4 -v Lua 5.4.4 Copyright (C) 1994-2022 Lua.org, PUC-Rio exit code: 0 $ lua5.4 aer1verify.lua --selftest ok sha256('abc') ok sha256('') ok sha256(56B) ok sha256(64B) ok b64 'SGVsbG8=' ok b64 '' decoded ok b64 unpadded ok b64 badchar ok b64 midpad ok utf8 ok ok utf8 lone cont ok utf8 overlong ok utf8 surrogate ok utf8 trunc ok utf8 4-byte ok utf8 >10FFFF ok json obj ok json bad ok json float mark ok json seq float ok ok merkle empty selftest: all ok exit code: 0 $ lua5.4 aer1verify.lua ../kit-snapshot/aer-1/test-vectors FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/anchored/anchored-bad-id-version.json — id is not a UUID v4 (strict profile) FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/anchored/anchored-bad-leaf-hash.json — anchor.leaf_hash does not match canonical_bytes FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/anchored/anchored-bad-timestamp.json — anchor.anchored_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/anchored/anchored-missing-proof.json — anchor has members other than log/leaf_hash/anchored_at/proof (+1 more) PASS [receipt] ../kit-snapshot/aer-1/test-vectors/anchored/anchored-valid.json PASS [receipt] ../kit-snapshot/aer-1/test-vectors/invalid-profile/missing-inputs.json FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bad-created-at.json — created_at is not RFC 3339 FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bad-id.json — id is not a lowercase UUID FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bad-offset-range.json — created_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bad-provenance.json — provenance_class is not a known class FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bad-verification-status.json — verification_status is not verified FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/base64-unpadded.json — canonical_bytes is not valid base64 FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/bytes-not-base64.json — canonical_bytes is not valid base64 FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/feb29-1900.json — created_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/feb29-non-leap.json — created_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/hash-bad-format.json — output_hash is not sha256: + lowercase hex digest FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/hash-mismatch.json — output_hash does not match sha256(canonical_bytes) FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/id-trailing-newline.json — id is not a lowercase UUID FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/impossible-date.json — created_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/missing-output-hash.json — missing required member: output_hash FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/non-utf8-bytes.json — canonical_bytes is not valid UTF-8 FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/provenance-trailing-newline.json — provenance_class is not a known class FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/tool-empty-name.json — tool is not an object with name/version/scope strings FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/tool-not-object.json — tool is not an object with name/version/scope strings FAIL [receipt] ../kit-snapshot/aer-1/test-vectors/invalid/uppercase-id.json — id is not a lowercase UUID PASS [receipt] ../kit-snapshot/aer-1/test-vectors/valid/feb29-leap.json PASS [receipt] ../kit-snapshot/aer-1/test-vectors/valid/fraction-one-digit.json PASS [receipt] ../kit-snapshot/aer-1/test-vectors/valid/receipt-01.json PASS [receipt] ../kit-snapshot/aer-1/test-vectors/valid/receipt-02.json PASS [receipt] ../kit-snapshot/aer-1/test-vectors/valid/receipt-03-live.json 7/30 verified CONFORMANCE: 7/30 exit code: 1 $ lua5.4 aer1verify.lua ../kit-snapshot/aer-1/frozen-vectors/v1.3.0 FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/anchored-bad-leaf-hash.json — anchor.leaf_hash does not match canonical_bytes FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/anchored-bad-timestamp.json — anchor.anchored_at is not a valid calendar date/time FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/anchored-missing-proof.json — anchor has members other than log/leaf_hash/anchored_at/proof (+1 more) PASS [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/anchored-valid.json FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/bad-created-at.json — created_at is not RFC 3339 FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/bad-id.json — id is not a lowercase UUID FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/bad-provenance.json — provenance_class is not a known class FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/bytes-not-base64.json — canonical_bytes is not valid base64 FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/hash-bad-format.json — output_hash is not sha256: + lowercase hex digest FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/hash-mismatch.json — output_hash does not match sha256(canonical_bytes) FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/impossible-date.json — created_at is not a valid calendar date/time PASS [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/missing-inputs.json FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/missing-output-hash.json — missing required member: output_hash FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/non-utf8-bytes.json — canonical_bytes is not valid UTF-8 PASS [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/receipt-01.json PASS [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/receipt-02.json PASS [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/receipt-03-live.json FAIL [receipt] ../kit-snapshot/aer-1/frozen-vectors/v1.3.0/tool-not-object.json — tool is not an object with name/version/scope strings 5/18 verified CONFORMANCE: 5/18 exit code: 1 $ lua5.4 run_negcorpus.lua ../neg-corpus (must-fail oracle: exact {check,reason} sets) PASS r01-drop-id PASS r02-id-uppercase PASS r03-id-nonv4-strict PASS r04-schema-empty PASS r05-schema-nonstring PASS r06-created-feb30 PASS r07-created-nopad PASS r08-tool-nonobject PASS r09-tool-empty-name PASS r10-provenance-lower PASS r11-bytes-badb64 PASS r12-bytes-nonutf8 PASS r13-hash-noprefix PASS r14-hash-upperhex PASS r15-hash-mismatch PASS r16-status-pending PASS r17-profile-no-inputs PASS a01-anchor-extra-member PASS a02-anchor-missing-proof PASS a03-leaf-mismatch PASS a04-leaf-upperhex PASS a05-anchored-badcal PASS a06-log-empty PASS c01-last-seq-skip PASS c02-genesis-nonzero-relinked PASS c03-mid-link-broken PASS c04-mixed-job-relinked PASS c05-close-early-relinked PASS c06-no-close-last PASS c07-close-nonbool PASS c08-seq-float PASS c09-entry-badb64 PASS c10-entry-missing-jobid PASS c11-commitment-mismatch PASS c12-commitment-badfmt PASS c13-v06-chain-under-v07 PASS c14-first-seq-2-relinked PASS cm01-valid PASS cm02-valid-offset-frac PASS cm03-valid-single PASS cm04-valid-extra-member PASS cm05-digest-mismatch PASS cm06-digest-uppercase PASS cm07-digest-length PASS cm08-count-mismatch PASS cm09-count-float PASS cm10-count-string PASS cm11-job-mismatch PASS cm12-entry-job-mismatch PASS cm13-published-dateonly PASS cm14-published-notz PASS cm15-published-feb30 PASS cm16-not-object PASS cm17-missing-member PASS w01-steps-nonlist PASS w02-doc-not-object PASS w03-steps-reordered PASS w04-merkle-mismatch PASS w05-dup-receiptid-stale-root PASS w06-dup-receiptid PASS w07-stepseq-skip PASS w08-step-seq-dup PASS w09-step-seq-tail-skip PASS w10-steps-null PASS w11-empty-steps PASS w12-merkle-wrong-order PASS w14-step-seq-zero PASS d01-id-trailing-newline (differential) PASS d02-offset-min-60 (differential) PASS d03-prov-trailing-newline (differential) PASS d04-v06-chain-labeled (differential) PASS d05-id-nonv4-tiers (differential) PASS d06-schema-non03 (differential) 73/73 corpus cases conform exit code: 0