{
  "_meta": {
    "artifact": "signed_decision_test_vector",
    "source_module": "core/governance/cert_signing.py",
    "generated_at_utc": "2026-08-21T21:28:38Z",
    "git_commit": "d3c65c65a95c6897a0ad32da51eece9c51e3e2d8",
    "python": "3.12.8",
    "generator": "scripts/generate_verification_artifacts.py",
    "reproduce": "python scripts/generate_verification_artifacts.py",
    "sha256": "f13fd40de56d92f152615bf9478054d1a42aeed1325573279aed4e1c3bf6ebbd"
  },
  "description": "A canonicalized (RFC 8785 / JCS) decision payload, its SHA-256 content hash, an Ed25519 signature over that hash, and the public key. Anyone can verify offline with the public key alone \u2014 the eve-coreguard (Python) and eve-ai-governance (TypeScript) SDKs do exactly this. The 'independent_public_key_verification' field is checked here with the cryptography library, NOT with EVE's own verify().",
  "algorithm": "ed25519",
  "signing_key_note": "Demonstration signing key from the generator; the mechanism is identical to production. Fingerprint below.",
  "payload": {
    "request_id": "vec-0001",
    "tenant_id": "public-verification",
    "policy_set": "lending_v1",
    "policy_version": "lending_v1@1",
    "proposed_action": {
      "type": "loan_approval",
      "amount": 50000
    },
    "decision": "ALLOWED"
  },
  "jcs_canonical_utf8": "{\"decision\":\"ALLOWED\",\"policy_set\":\"lending_v1\",\"policy_version\":\"lending_v1@1\",\"proposed_action\":{\"amount\":50000,\"type\":\"loan_approval\"},\"request_id\":\"vec-0001\",\"tenant_id\":\"public-verification\"}",
  "content_sha256": "3d74e579b753f4a98edc0eff6bb730361e1ae57bc714e227c0543dd86c5d012a",
  "signature": "ed25519-a7ae704b58754e27629de07fce99ed19433ce5f1b244b496b61aeffe6897671ffbe70ebb04f29b419bad5afd03424205ff5931e49d80edf07330efdd27746808",
  "public_key_pem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAthleQP/b19Rs8w4JoELAA9/aSq+LgduKqRZUgooLikU=\n-----END PUBLIC KEY-----\n",
  "public_key_fingerprint": "sha256:1589421828b69a6801de118cb2ca56a961d130116d33a501d50362d9d784952d",
  "verified_roundtrip": true,
  "independent_public_key_verification": true
}
