{
  "benchmarkId": "CG-BENCHMARK-AGENT-LICENSE-VERIFICATION-0.1.0",
  "version": "0.1.0",
  "licenseProtocolVersion": "1.0.0",
  "testedAt": "2026-08-03T13:16:22.111Z",
  "caseCount": 9,
  "passedCaseCount": 9,
  "failedCaseCount": 0,
  "cases": [
    {
      "id": "CGAI-TV-001",
      "title": "Valid signed license and exact-session proof",
      "stage": "complete chain",
      "expected": "accepted",
      "observed": "accepted",
      "passed": true,
      "evidenceDigestSha256": "443a6e2ac21b4fcae57652e90f7f7af20bcd79ded92ea5bfb944566866a44fd9",
      "rejectionReason": null
    },
    {
      "id": "CGAI-TV-101",
      "title": "Authority trust domain changed after signing",
      "stage": "authority",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "authority signature does not verify."
    },
    {
      "id": "CGAI-TV-102",
      "title": "Enrollment selector widened with a wildcard",
      "stage": "enrollment",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "environments cannot contain wildcards."
    },
    {
      "id": "CGAI-TV-103",
      "title": "License evaluated after its expiry",
      "stage": "license",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "License is not active at the evaluation time."
    },
    {
      "id": "CGAI-TV-104",
      "title": "Revocation event changed after signing",
      "stage": "revocation ledger",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "Revocation event hash changed."
    },
    {
      "id": "CGAI-TV-105",
      "title": "Signed anchor no longer matches the ledger head",
      "stage": "revocation anchor",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "Anchor head sequence changed."
    },
    {
      "id": "CGAI-TV-106",
      "title": "Session proof evaluated after expiry",
      "stage": "session proof",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "Session proof is not active at the evaluation time."
    },
    {
      "id": "CGAI-TV-107",
      "title": "Expected policy binding substituted",
      "stage": "session binding",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "Session policyDigestSha256 binding changed."
    },
    {
      "id": "CGAI-TV-108",
      "title": "Unknown field added to signed proof",
      "stage": "strict schema",
      "expected": "rejected",
      "observed": "rejected",
      "passed": true,
      "evidenceDigestSha256": null,
      "rejectionReason": "session proof contains missing or unknown fields."
    }
  ],
  "sourceUrls": [
    "https://www.rfc-editor.org/rfc/rfc8032",
    "https://www.rfc-editor.org/rfc/rfc8785",
    "https://csrc.nist.gov/pubs/sp/800/207/final",
    "https://genai.owasp.org/resource/agentic-ai-threats-and-mitigations/"
  ],
  "claimBoundary": "This publisher-operated benchmark verifies one deterministic signed CapitalGuard test chain and eight declared rejection mutations with the published verifier. It does not audit a customer system, compare vendors, prove that every malformed artifact is rejected, prove private-key custody, or guarantee that an agent or environment is secure.",
  "limitations": [
    "The fixtures are synthetic and contain no customer repositories, credentials, agent traffic, or production keys.",
    "The benchmark covers nine declared cases, not the complete input space of every schema or cryptographic implementation.",
    "A valid signature proves integrity under the referenced key; it does not prove the human or legal identity behind that key.",
    "Current revocation status still depends on retrieving and protecting the latest signed ledger and anchor.",
    "Runtime controls outside the authenticated CapitalGuard path remain outside this verification result."
  ],
  "privacy": {
    "customerDataUsed": false,
    "productionKeysUsed": false,
    "networkActionsExecuted": false,
    "externalAgentsExecuted": false
  },
  "runDigestSha256": "d6f6df3393c4ccf8d667a6b4e61779a6e826792c53a381935313e42a3fe266b9"
}
