$ ruby --version ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [aarch64-linux-gnu] $ ruby aer1verify.rb ../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) $ ruby aer1verify.rb ../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) # Additional: neg-corpus manifest replay (port of run.js) vs node run.js $ ruby /workspace/research/aer1rb/run_neg.rb # then diff vs node run.js PASS d06-schema-non03 (differential) 70/73 corpus cases conform diff node-run.js-output ruby-output: (identical — 70/73, same 3 stale differentials as verify.js) # Differential parity sweep vs verify.js (all *.json under kit-snapshot/ # and neg-corpus/, each doc through verify_document under 8 flag sets plus # granular chain/commitment/merkle/anchor/profile checks, default+strict): # node parity.js ... -> 24834 lines # ruby parity.rb ... -> 24834 lines # diff: identical (0 divergences) # canonical_json byte-exactness spot check incl. non-BMP keys, surrogate # pairs, DEL/control escapes, 1e+21 and -0: identical to JS canonicalJson.