{
  "tool_id": "art-361-camera-provenance-check",
  "note": "golden_hash is empty until first `node golden-parity.test.mjs --update`.",
  "vectors": [
    {
      "name": "genuine-capture-valid-manifest",
      "policy_parameters": {
        "manifest_digest": "sha256:9c1185a5c5e9fc54612808977ee8f548b2258d31",
        "claim_generator": "Pixel Camera App 3.2",
        "claim": {
          "format": "image/jpeg",
          "instanceID": "xmp:iid:1001"
        },
        "assertions": [
          {
            "label": "c2pa.actions",
            "actions": [
              {
                "action": "c2pa.captured",
                "digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
              }
            ]
          },
          {
            "label": "c2pa.hash.data"
          }
        ],
        "signature": {
          "present": true,
          "alg": "ES256"
        }
      },
      "output_payload": {
        "rejected": false,
        "manifest_valid": true,
        "manifest_present": true,
        "has_hard_binding": true,
        "has_actions": true,
        "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
        "trained_algorithmic_media_flagged": false,
        "provenance_label": "genuine_capture_asserted",
        "missing_elements": [],
        "capture_chain_field": {
          "manifest_present": true,
          "manifest_digest": "sha256:9c1185a5c5e9fc54612808977ee8f548b2258d31",
          "label": "asserted"
        },
        "note": "Structural check only -- no trust-list / chain-of-trust claim. digitalSourceType is read verbatim off the c2pa.actions assertion as declared by the manifest generator."
      },
      "golden_hash": "cf87a957608049b222fad789d8935349ca412a55518ef4391f75aa6a8b97b942"
    },
    {
      "name": "ai-generated-trained-algorithmic-media",
      "policy_parameters": {
        "manifest_digest": "sha256:1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
        "claim_generator": "OpenAI DALL-E 3",
        "claim": {
          "format": "image/png",
          "instanceID": "xmp:iid:1002"
        },
        "assertions": [
          {
            "label": "c2pa.actions",
            "actions": [
              {
                "action": "c2pa.created",
                "digitalSourceType": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia"
              }
            ]
          },
          {
            "label": "c2pa.hash.data"
          }
        ],
        "signature": {
          "present": true,
          "alg": "ES256"
        }
      },
      "output_payload": {
        "rejected": false,
        "manifest_valid": true,
        "manifest_present": true,
        "has_hard_binding": true,
        "has_actions": true,
        "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/trainedAlgorithmicMedia",
        "trained_algorithmic_media_flagged": true,
        "provenance_label": "ai_generated_flagged",
        "missing_elements": [],
        "capture_chain_field": {
          "manifest_present": true,
          "manifest_digest": "sha256:1b2c3d4e5f60718293a4b5c6d7e8f9012345678",
          "label": "asserted"
        },
        "note": "Structural check only -- no trust-list / chain-of-trust claim. digitalSourceType is read verbatim off the c2pa.actions assertion as declared by the manifest generator."
      },
      "golden_hash": "d5d36697efe1ce7a3475a27e63829fdd74723630d391ed1fa141940f8644678b"
    },
    {
      "name": "no-manifest-indeterminate",
      "policy_parameters": {
        "assertions": [],
        "signature": {}
      },
      "output_payload": {
        "rejected": false,
        "manifest_valid": false,
        "manifest_present": false,
        "has_hard_binding": false,
        "has_actions": false,
        "digital_source_type": null,
        "trained_algorithmic_media_flagged": false,
        "provenance_label": "indeterminate",
        "missing_elements": [
          "CLAIM_GENERATOR_FORMAT_OR_INSTANCEID",
          "HARD_BINDING_HASH_ASSERTION",
          "CLAIM_SIGNATURE_REFERENCE"
        ],
        "capture_chain_field": {
          "manifest_present": false,
          "manifest_digest": null,
          "label": "asserted"
        },
        "note": "Structural check only -- no trust-list / chain-of-trust claim. digitalSourceType is read verbatim off the c2pa.actions assertion as declared by the manifest generator."
      },
      "golden_hash": "2150c8323e9825dec42c592d6ac05b7605809c5182b694ef34f7e952f34108ab"
    },
    {
      "name": "pii-shaped-digest-rejected",
      "policy_parameters": {
        "manifest_digest": "this is raw capture bytes, not a digest, and contains spaces so it fails the digest-shape check entirely"
      },
      "output_payload": {
        "rejected": true,
        "rejection_reason": "manifest_digest is raw-data-shaped, not a digest",
        "capture_chain_field": null
      },
      "golden_hash": "1c9c3c4bb13353ae694bcbd6e26396021b2482393b8bdbb6158d3192bcba728e"
    }
  ]
}
