id: 795b988c79154b588b6b92780414bf63
parent_id: 343275ca6b364c34839bb09abe9f4fca
item_type: 1
item_id: a6768b6c7d2d4dbb855399468b9db6fa
item_updated_time: 1787746043365
title_diff: "[{\"diffs\":[[0,\"026-08-2\"],[-1,\"0\"],[1,\"6\"],[0,\")\"]],\"start1\":38,\"start2\":38,\"length1\":10,\"length2\":10}]"
body_diff: "[{\"diffs\":[[0,\"026-08-2\"],[-1,\"0\"],[1,\"6\"],[0,\")\\\n\\\n> Liv\"]],\"start1\":40,\"start2\":40,\"length1\":17,\"length2\":17},{\"diffs\":[[0,\"t: `\"],[-1,\"3e3b8d2\"],[1,\"272afcd\"],[0,\"` on\"]],\"start1\":215,\"start2\":215,\"length1\":15,\"length2\":15},{\"diffs\":[[0,\")\\\n- \"],[-1,\"Container decrypt, tag-keyed field extraction, session-key verify, local card-cg gate\"],[1,\"Full enforced chain: wrapper-key decrypt → **container signature verify** (key\\\n  confirmed against dev KLMS 2026-08-21) → session-key gate → SCP03 → personalization\\\n  → GA validation\"],[0,\"\\\n- \"],[-1,\"**\"],[0,\"Priv\"]],\"start1\":415,\"start2\":415,\"length1\":98,\"length2\":193},{\"diffs\":[[0,\"eady\"],[-1,\" path closed 2026-08-17**\"],[0,\" (CB\"]],\"start1\":622,\"start2\":622,\"length1\":33,\"length2\":8},{\"diffs\":[[0,\"ched\"],[-1,\";\\\n  GA ECDSA signatures pass)\"],[1,\") since 2026-08-17\"],[0,\"\\\n\\\n##\"]],\"start1\":654,\"start2\":654,\"length1\":37,\"length2\":26},{\"diffs\":[[0,\"id_certs\"],[1,\" / signing_pubkey_path\"],[0,\"\\\n- dev_p\"]],\"start1\":916,\"start2\":916,\"length1\":16,\"length2\":38},{\"diffs\":[[0,\"fast\"],[-1,\", deny_unknown_fields)\\\n\\\n### User documentation (2026-08-20)\\\n- **`docs/user/kfs-prod-user-guide.docx`** — production variant: KLMS panel only;\\\n  setup, configuration, connect, provisioning workflow, retry behavior,\\\n  troubleshooting (incl. 6A80 / 69 82 / locked-fob), logging, security notes\\\n- **`docs/user/kfs-dev-user-guide.docx`** — full dev variant: all six panels\\\n  documented + variant matrix; §9 lists TEST-variant differences (no Provision /\\\n  Validate / R\"],[1,\")\\\n\\\n## Deployment (split delivery, 2026-08-26 — 272afcd)\\\n\\\n`scripts\\\\package-deployment.ps1` → two zips in `deploy\\\\` (+ merged folder, gitignored):\\\n- **`keyfob-station-app.zip`** (~10.9 MB, stable per release): kfs-dev/test/prod.exe,\\\n  run-*.bat, VC runtime, config + trust anchors (klms-config.toml, dev_profiles.toml,\\\n  signing pubkey, TLS CA), user guides, configur\"],[0,\"e-\"],[1,\"w\"],[0,\"in\"],[-1,\"stall; NFC Info + both production modes present)\\\n- Generator: `scripts/generate-user-docs.py` (python-docx) — edit + re-run to update\\\n- Guides ship in the deployment package (`docs\\\\` in the zip); certs-folder GUI hints\\\n  corrected to \\\"required\\\" to match the keys-only profiles\\\n\\\n## Deployment (updated 2026-08-20)\\\n\\\n`scripts\\\\package-deployment.ps1` → `deploy\\\\keyfob-station\\\\` + zip (gitignored):\\\n- kfs-dev/test/prod.exe, run-*.bat, VC runtime, data subset (keys-only toml,\\\n  current certs, 50 containers), configure-windows.ps1, README-DEPLOY, user guides\"],[1,\"dows.ps1, README-DEPLOY\\\n- **`keyfob-station-content.zip`** (~90 KB, rotates per fob batch / cert generation):\\\n  data\\\\containers (50 per-fob) + data\\\\static-certs (factory A004/A005)\\\n- Both share the `keyfob-station\\\\` root — extract content over app to merge data\\\\.\\\n  The KLMS flow needs no content package at all.\"],[0,\"\\\n- R\"]],\"start1\":1003,\"start2\":1003,\"length1\":1028,\"length2\":690},{\"diffs\":[[0,\"ment\"],[-1,\"\\\n  steps documented\"],[0,\" in the\"],[1,\"\\\n \"],[0,\" pro\"]],\"start1\":1762,\"start2\":1762,\"length1\":34,\"length2\":17},{\"diffs\":[[0,\"e §4\"],[-1,\"\\\n- Zip ready to ship: `deploy\\\\keyfob-station.zip` (~10.9 MB)\"],[1,\".\"],[0,\"\\\n\\\n##\"]],\"start1\":1791,\"start2\":1791,\"length1\":68,\"length2\":9},{\"diffs\":[[0,\"ated (KLMS flow,\"],[1,\" last:\"],[0,\" 2026-08-17) |\\\n|\"]],\"start1\":1992,\"start2\":1992,\"length1\":32,\"length2\":38},{\"diffs\":[[0,\"st: 2026-08-\"],[1,\"2\"],[0,\"1\"],[-1,\"7\"],[0,\") |\\\n| #3 | `\"]],\"start1\":2011,\"start2\":2011,\"length1\":26,\"length2\":26},{\"diffs\":[[0,\"1. Ship \"],[1,\"app + content \"],[0,\"zip\"],[1,\"s\"],[0,\" to the \"]],\"start1\":2115,\"start2\":2115,\"length1\":19,\"length2\":34},{\"diffs\":[[0,\"siveness\"],[1,\"\\\n  \"],[0,\" under o\"]],\"start1\":2189,\"start2\":2189,\"length1\":16,\"length2\":19},{\"diffs\":[[0,\"er, \"],[-1,\"signature key\"],[1,\"production signing-key\\\n   confirmation\"],[0,\", ch\"]],\"start1\":2327,\"start2\":2327,\"length1\":21,\"length2\":46},{\"diffs\":[[0,\"um spec,\"],[-1,\"\\\n  \"],[0,\" report_\"]],\"start1\":2377,\"start2\":2377,\"length1\":19,\"length2\":16},{\"diffs\":[[0,\"1` (\"],[-1,\"~8 min, \"],[0,\"3 re\"]],\"start1\":2783,\"start2\":2783,\"length1\":16,\"length2\":8},{\"diffs\":[[0,\"e builds\"],[1,\";\\\n  incremental if nothing changed\"],[0,\")\\\n- **Us\"]],\"start1\":2795,\"start2\":2795,\"length1\":16,\"length2\":50},{\"diffs\":[[0,\"ms\\\\{KDF,\"],[1,\"Transport,\"],[0,\"HSM_Back\"]],\"start1\":2959,\"start2\":2959,\"length1\":16,\"length2\":26}]"
metadata_diff: {"new":{},"deleted":[]}
encryption_cipher_text: 
encryption_applied: 0
updated_time: 2026-08-26T12:09:43.251Z
created_time: 2026-08-26T12:09:43.251Z
is_locked: 0
type_: 13