From f0765eb329b50cf52c5f03a90161e7ea0b0bc501 Mon Sep 17 00:00:00 2001 From: michael Date: Wed, 17 Jun 2026 16:43:06 -0700 Subject: [PATCH] =?UTF-8?q?docs:=20M2=20close-out=20draft=20=E2=80=94=20IN?= =?UTF-8?q?STALL.md=20acceptance=20criterion=20+=20step-up=20implementatio?= =?UTF-8?q?n=20notes=20(M2H.1=20draft)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds the `aliro-bench-test --step-up` verification sub-section to applet/INSTALL.md under "Validate after personalization" — explains what the M2 path checks (SELECT-STEPUP / EXCHANGE / ENVELOPE / GET RESPONSE / AD round-trip), what success looks like, and the three common failure modes. Also writes the user's auto-memory `step_up_implementation_notes.md` (persisted outside this repo at ~/.claude/projects/.../memory/step_up_implementation_notes.md) with the final form of the four Step-Up optimizations, spec citations, and codebase pointers — so the operator can look up "how did Step-Up end up" without re-reading the v2 plan. Three TODO markers left for the M2H.1 final commit to update once M2E + M2F land. DRAFT — final M2H.1 commit happens after M2G.2 verdict + M2E + M2F. --- applet/INSTALL.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/applet/INSTALL.md b/applet/INSTALL.md index e3fbb37..6643680 100644 --- a/applet/INSTALL.md +++ b/applet/INSTALL.md @@ -193,6 +193,30 @@ step the real firmware will eventually run — so a green bench-test is strong evidence the applet is correct independently of any future reader implementation. +### Step-Up M2 verification (`--step-up`) + +``` +aliro-bench-test --trust-dir ~/aliro-trust --step-up +``` + +Adds the Step-Up phase on top of the EXPEDITED verdict: SELECT-STEPUP +(ACCE5502) derives session keys from the cached `StepUpSK`, EXCHANGE ++ ENVELOPE + chained GET RESPONSE drive a real mdoc DeviceRequest to +the card and pull the encrypted DeviceResponse back. The harness +decrypts under `StepUpSKDevice` and asserts the embedded Access +Document round-trips byte-for-byte against the personalized blob. + +Successful output appends: + +``` +STEP-UP M2: OK — Access Document round-trip verified, 272 bytes match +``` + +A `STEP-UP M2: FAIL` line means one of: SELECT-STEPUP didn't arm +(no preceding AUTH1), GCM tag mismatch (key/counter divergence), or +the recovered AD bytes don't match. The Expedited block above still +needs to be `OK` for any of this to run. + ## Uninstall / re-install `gp --delete ` won't succeed while applet *instances* still