{
  "tool_id": "art-287-revocation-status-verifier",
  "note": "golden_hash empty until first node golden-parity.test.mjs --update. Test-side vectors only per SPEC.md §REVOKE-1.1 (the three published BitstringStatusList SDK test vectors are REFERENCE ONLY, never vendored as a code path).",
  "vectors": [
    {
      "name": "default-inputs",
      "policy_parameters": {},
      "output_payload": {
        "status": "no-signal",
        "revoked_for_purpose": null,
        "structural_error": null,
        "status_list_index": null,
        "status_list_credential_url": null,
        "note": "No credentialStatus was supplied on the receipt; absence is not evidence of active status."
      },
      "golden_hash": "baddc159d6683c9fee36cab75c97b7c2523fbad6105d666f8951932c0b7c7da8"
    },
    {
      "name": "pass-active-bit-clear",
      "policy_parameters": {
        "credential_status": {
          "statusListCredential": "https://example.org/status/1#0",
          "statusListIndex": 0,
          "type": "BitstringStatusListEntry"
        },
        "status_list_credential": {
          "encodedList": "AA"
        }
      },
      "output_payload": {
        "status": "active",
        "revoked_for_purpose": false,
        "structural_error": null,
        "status_list_index": 0,
        "status_list_credential_url": "https://example.org/status/1#0",
        "note": "Bit clear at statusListIndex: active per this status list, as of the point in time the list was retrieved."
      },
      "golden_hash": "688a0a6bcfae79f02569bc344f9a89f9b4d43ef7428e6b2902acc91b7c3c42aa"
    },
    {
      "name": "pass-revoked-bit-set",
      "policy_parameters": {
        "credential_status": {
          "statusListCredential": "https://example.org/status/1#0",
          "statusListIndex": 0,
          "type": "BitstringStatusListEntry"
        },
        "status_list_credential": {
          "encodedList": "gA"
        }
      },
      "output_payload": {
        "status": "revoked",
        "revoked_for_purpose": true,
        "structural_error": null,
        "status_list_index": 0,
        "status_list_credential_url": "https://example.org/status/1#0",
        "note": "Bit set at statusListIndex: revoked. Revocation OVERRIDES signature validity per SPEC.md §REVOKE-1.1 even if the receipt's §16 signature is cryptographically valid."
      },
      "golden_hash": "bc8133c993e94e4980a302ae997482e557563c7dc6da7fea38d74719ebe12388"
    },
    {
      "name": "fail-malformed-wrong-type",
      "policy_parameters": {
        "credential_status": {
          "statusListCredential": "https://example.org/status/1#0",
          "statusListIndex": 0,
          "type": "SomeOtherType"
        },
        "status_list_credential": {
          "encodedList": "AA"
        }
      },
      "output_payload": {
        "status": "no-signal",
        "revoked_for_purpose": null,
        "structural_error": "credentialStatus.type must be \"BitstringStatusListEntry\"; got \"SomeOtherType\".",
        "status_list_index": 0,
        "status_list_credential_url": "https://example.org/status/1#0",
        "note": "Malformed or out-of-range status reference; treated as no-signal, never as active."
      },
      "golden_hash": "78b4a06850adb45d8699f4305b527897bf29f479ba5d366f082a110c4fba787b"
    },
    {
      "name": "fail-index-out-of-range",
      "policy_parameters": {
        "credential_status": {
          "statusListCredential": "https://example.org/status/1#8",
          "statusListIndex": 8,
          "type": "BitstringStatusListEntry"
        },
        "status_list_credential": {
          "encodedList": "AA"
        }
      },
      "output_payload": {
        "status": "no-signal",
        "revoked_for_purpose": null,
        "structural_error": "statusListIndex 8 is out of range for a 8-bit status list.",
        "status_list_index": 8,
        "status_list_credential_url": "https://example.org/status/1#8",
        "note": "Malformed or out-of-range status reference; treated as no-signal, never as active."
      },
      "golden_hash": "ad85a514dc2c41b0b8aded00959437b9d5e771587e96026d45257d70e0228e74"
    },
    {
      "name": "fail-missing-status-list-credential",
      "policy_parameters": {
        "credential_status": {
          "statusListCredential": "https://example.org/status/1#0",
          "statusListIndex": 0,
          "type": "BitstringStatusListEntry"
        }
      },
      "output_payload": {
        "status": "no-signal",
        "revoked_for_purpose": null,
        "structural_error": "No status_list_credential.encodedList was supplied (zero-egress: the BitstringStatusList credential must be passed as input, never fetched).",
        "status_list_index": 0,
        "status_list_credential_url": "https://example.org/status/1#0",
        "note": "Malformed or out-of-range status reference; treated as no-signal, never as active."
      },
      "golden_hash": "6a1dbe3479783f9af20354a58c4858548e727dbe327c9f8f60181f1e7ac6cf6b"
    }
  ]
}
