{
 "description": "Deniable delivery-ack (Delivery 4.2/4.4 acknowledgement class rule): MAC preimage is JCS of the document without proof; key = HKDF-SHA-256(X25519(pairX_issuer, pairX_recipient), salt empty, info \"rltp/v1/delivery/mac/ack/\" || issuerPairAnchor || \"/\" || recipientPairAnchor, 32 bytes). Regenerate: node scripts/gen-delivery-ack-vector.mjs (deterministic).",
 "inputs": {
  "issuerRootIkm": "fill(64, 0x07)",
  "issuerPairNonce": "fill(32, 0x03)",
  "recipientRootIkm": "fill(64, 0x09)",
  "recipientPairNonce": "fill(32, 0x05)",
  "issuerPairAnchor": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
  "recipientPairAnchor": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
  "info": "rltp/v1/delivery/mac/ack/did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy/did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
  "document": {
   "id": "7b1c9c1e-4d5a-4a4a-9d5e-000000000001",
   "type": "https://real-life.org/trust-tasks/delivery-ack/0.1",
   "issuer": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
   "recipient": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
   "threadId": "7b1c9c1e-4d5a-4a4a-9d5e-000000000002",
   "issuedAt": "2026-08-31T12:00:00Z",
   "payload": {
    "ref": "uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw",
    "meaning": "received"
   }
  }
 },
 "intermediate": {
  "preimage": "{\"id\":\"7b1c9c1e-4d5a-4a4a-9d5e-000000000001\",\"issuedAt\":\"2026-08-31T12:00:00Z\",\"issuer\":\"did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy\",\"payload\":{\"meaning\":\"received\",\"ref\":\"uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw\"},\"recipient\":\"did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5\",\"threadId\":\"7b1c9c1e-4d5a-4a4a-9d5e-000000000002\",\"type\":\"https://real-life.org/trust-tasks/delivery-ack/0.1\"}"
 },
 "output": {
  "proof": {
   "mac": "uE3Tg3kvpUySllD2WD6VX4MnTtq51BssKudXATdUph90"
  }
 },
 "negatives": [
  {
   "name": "tampered-preimage",
   "note": "issuedAt changed by one second — MAC over the held document MUST NOT verify",
   "document": {
    "id": "7b1c9c1e-4d5a-4a4a-9d5e-000000000001",
    "type": "https://real-life.org/trust-tasks/delivery-ack/0.1",
    "issuer": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
    "recipient": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
    "threadId": "7b1c9c1e-4d5a-4a4a-9d5e-000000000002",
    "issuedAt": "2026-08-31T12:00:01Z",
    "payload": {
     "ref": "uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw",
     "meaning": "received"
    }
   },
   "wrongMac": "uoh6NfBe0tW_ZREIBTlIULuDUr5JunpjpMSkq-qR9-kY"
  },
  {
   "name": "wrong-direction",
   "note": "info with the anchors swapped — a MAC under the reversed direction MUST NOT verify",
   "wrongMac": "u0S2vXY7ntFcSFHsgqJQ42-idZjwQnNLkUg6DeEhkuoo"
  },
  {
   "name": "wrong-key",
   "note": "a different tuple of the same holder — its ack key MUST NOT verify this document",
   "wrongMac": "uQ_uF0FjbgwotooGIlk18rQrlz2oVo9aO8pPwxiaDCx4"
  },
  {
   "name": "missing-proof",
   "note": "a delivery-ack without proof fails the document schema (if/then on the full type URI)"
  },
  {
   "name": "signature-form-for-dv-payload",
   "note": "class crossing: a VALIDLY SIGNED DataIntegrityProof ack acknowledging a designated-verifier payload — schema-valid, signature-valid, and rejected by the 4.2 class rule alone",
   "document": {
    "id": "7b1c9c1e-4d5a-4a4a-9d5e-000000000001",
    "type": "https://real-life.org/trust-tasks/delivery-ack/0.1",
    "issuer": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
    "recipient": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
    "threadId": "7b1c9c1e-4d5a-4a4a-9d5e-000000000002",
    "issuedAt": "2026-08-31T12:00:00Z",
    "payload": {
     "ref": "uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw",
     "meaning": "received"
    },
    "proof": {
     "type": "DataIntegrityProof",
     "cryptosuite": "eddsa-jcs-2022",
     "created": "2026-08-31T12:00:00Z",
     "verificationMethod": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy#z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
     "proofPurpose": "assertionMethod",
     "proofValue": "z5x52QEzTaiXHv8Bzta9TxfZLT2jNkVqvadLWvZWrQ8fLFwL2y5HiLnMkpYoPhWbo5oJtBiqqccDJn5rbTyS1yTJj"
    }
   },
   "acknowledgedType": "https://real-life.org/trust-tasks/star/0.1",
   "expected": "failed(validation-failed)"
  },
  {
   "name": "hybrid-proof",
   "note": "a proof carrying every DataIntegrityProof field AND mac is schema-INVALID: both oneOf branches are closed (additionalProperties false) — an ack can never be both deniable and transferable",
   "document": {
    "id": "7b1c9c1e-4d5a-4a4a-9d5e-000000000001",
    "type": "https://real-life.org/trust-tasks/delivery-ack/0.1",
    "issuer": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
    "recipient": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
    "threadId": "7b1c9c1e-4d5a-4a4a-9d5e-000000000002",
    "issuedAt": "2026-08-31T12:00:00Z",
    "payload": {
     "ref": "uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw",
     "meaning": "received"
    }
   },
   "proof": {
    "type": "DataIntegrityProof",
    "cryptosuite": "eddsa-jcs-2022",
    "created": "2026-08-31T12:00:00Z",
    "verificationMethod": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy#z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
    "proofPurpose": "assertionMethod",
    "proofValue": "z5x52QEzTaiXHv8Bzta9TxfZLT2jNkVqvadLWvZWrQ8fLFwL2y5HiLnMkpYoPhWbo5oJtBiqqccDJn5rbTyS1yTJj",
    "mac": "uE3Tg3kvpUySllD2WD6VX4MnTtq51BssKudXATdUph90"
   },
   "expected": "failed(malformed)"
  },
  {
   "name": "mac-form-for-signature-payload",
   "note": "class crossing: the valid {mac}-form ack of this vector, acknowledging a transferably signed payload — schema-valid, MAC-valid, and rejected by the 4.2 class rule alone",
   "document": {
    "id": "7b1c9c1e-4d5a-4a4a-9d5e-000000000001",
    "type": "https://real-life.org/trust-tasks/delivery-ack/0.1",
    "issuer": "did:key:z6Mkvg1qv5JoEuw9W1qZ5sAtpkZCWEjZLrHxpqvNvTSj3zTy",
    "recipient": "did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5",
    "threadId": "7b1c9c1e-4d5a-4a4a-9d5e-000000000002",
    "issuedAt": "2026-08-31T12:00:00Z",
    "payload": {
     "ref": "uEiByzW6EIsQH-20JhpDxEwt97X7C9_Xh0wvZ1SHwFTY3kw",
     "meaning": "received"
    }
   },
   "proof": {
    "mac": "uE3Tg3kvpUySllD2WD6VX4MnTtq51BssKudXATdUph90"
   },
   "acknowledgedType": "https://real-life.org/trust-tasks/encounter-credential-delivery/0.1",
   "expected": "failed(validation-failed)"
  }
 ],
 "wrongKeyInputs": {
  "foreignRootIkm": "fill(64, 0x07)",
  "foreignPairNonce": "fill(32, 0x06)",
  "foreignPairAnchor": "did:key:z6MkwgCzP8bk119VGHmCkZNPZ6Nt93p6LHaLuwb7mrpamMUH",
  "info": "rltp/v1/delivery/mac/ack/did:key:z6MkwgCzP8bk119VGHmCkZNPZ6Nt93p6LHaLuwb7mrpamMUH/did:key:z6MkmfMx4BUcwhRUfxSziDk1929UY2vCwRvrg9rEzH7x6uo5"
 }
}
