# 4.2.6.2.1 TC_eUICC_ES8+.ReplaceSessionKeys — `-man` ↔ `-cas` diff 报告
> **交付形态说明**：本报告随专家交付包分发——`-man`/`-cas` 脚本包 zip 与 190server HTML 执行日志已内联至 `packages/`、`evidence-html/`，相应路径已相对化；TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径（未随包）。

- 生成时间：2026-10-08 22:57:11 ｜引擎：holiday-blk5/0.1｜配对状态：`PAIRED`
- 分母口径：卡侧 61 之一

## 1. 配对与包

| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
| `-man` | 4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-man.zip | `bb342e82bfd43fac726a578c42a169c2c1f4704449869b3d82157c9e868cae32` | zip | TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size |
| `-cas` | 4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-cas.zip | `9c48e93a265f16c1ee8442fc56b674131ba35e3a9dfa7d9eea7b4a1544c98a76` | zip | — |

- man 源路径：`../../packages/man/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-man.zip`
- cas 源路径：`../../packages/cas/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-cas.zip`
- 上游来源：{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
- 适用性：naming-map=`M` ["M", "M", "M", "M", "M"]；caseir=`M`

## 2. 执行摘要（双方 job/终态）

| 侧 | 终态/计划 | 备注 | ErrorCount | job_id | 业务状态 | TTR | 诊断包 |
|---|---|---|---|---|---|---|---|
| `-man` | `ok` | `_ok` 复用（结构 A1-A7 PASS；`_ok` run 无厂商错误行） | 0 | `20261007_132854:35bf77c9b30f4233914ed3bc39d881e0` | — | `/Users/yuhu/cas/原料/切片/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys/logs/20260907_173146_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size.ttr` | `—` |
| `-cas` | `unknown` | 纯 native 零卡态前置（N0） | 21 | `89566df61a624ab8a097ecf1343ad3f1` | — | `/Users/yuhu/cas/experiments/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-20261004_021948/logs/89566df6_gapfix1/result/TC_eUICC_ES8_ReplaceSessionKeys/TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged.ttr` | `—` |
- cas 块4账本：decision=`RERUN`；route=`native_N0`；live 事件 2 条（4.6 波次进行中；以块4终版账本为准）
- cas 4.6 波次最新执行：terminal=`unknown`；stage=`cas_gapfix_rerun`；job=`89566df61a624ab8a097ecf1343ad3f1`；gaps=["gapfix-rerun：job 终态 succeeded，业务判 unknown（error_count=0）；failed 亦为有效终态，如实登记"]
- cas 失败归因引用（块4）：`b3-attribution.md`
- cas 证据来源分层：`RERUN` → 本轮 4.6 波次执行

## 3. HTML 执行日志状态

- `-man`：**NATIVE**（`../../evidence-html/4.2.6.2.1/man/TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size.html`；sha256 `373f916b5494cba897c3cef58e5585a185728f9f937b981b99b790c241e57485`；159225 bytes）
- `-cas`：**NATIVE**（`../../evidence-html/4.2.6.2.1/cas/TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged.html`；sha256 `b16a7bd433dd0616122c805e82a5c90ec07de75e6d365f51792f937c3217a2b3`；6593 bytes）
- 纪律：原生缺失 → `HTML_UNAVAILABLE` 显式阻断（附探针结论）；派生件仅标 `DERIVED_NOT_NATIVE`，不冒充原生。

## 4. L1 脚本/依赖/命名差异（源文件闭包级）

- 闭包规模：man 34 文件 / cas 82 文件；同名 31（字节同 30，内容异 1）
- 同名内容异：`Import/TestCase_SGP_23.js`
- man-only 文件 3：`ESIM_TEST_SGP_23.UCE`, `ESIM_TEST_SGP_23.sol`, `MANIFEST.json`
- cas-only 文件 51：`Import/CapInfo.js`, `Import/ExecuteTestCase.js`, `Import/ExecuteTestCase_CSC.js`, `Import/ExecuteTestCase_LoadProfile_via_bip.js`, `Import/ExecuteTestCase_Local_Management.js`, `Import/ExecuteTestCase_Non_Telecom_Profile.js`, `Import/ExecuteTestCase_Performance.js`, `Import/ExecuteTestCase_PressureTest.js`, `Import/ExecuteTestCase_ProfileFormatTest_V_2_3_1.js`, `Import/ExecuteTestCase_ProfileServicesListTest.js` …
- 注：man 包＝切片最小闭包（`script/` 投影）；cas 包＝slice_native 全工程投影（厂商参照闭包＋生成体）。闭包规模差为打包形态差异；同名文件字节差集中于 `Import/TestCase_SGP_23.js`（TC 入口本体）。

### 4.1 入口代码对照

- 行数：man 61 / cas 98；字符：man 2823 / cas 7718
- man 顶层调用 Top：[["TestStepStart2", 9], ["TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size", 2], ["TraceStart", 1], ["Ini_powerOn_eUICC_LPAe_not_activate", 1], ["TS_MANAGE_CHANNEL_OPEN", 1], ["TS_SELECT", 1], ["RSP_profile_load_procedure_LPAd", 1], ["ES10b_GetEUICCInfo1", 1], ["ES10b_GetEUICCChallenge", 1], ["ES10b_AuthenticateServer", 1]]
- cas bind 调用：[["checkData", 6], ["sendApdu", 4]]

| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 2 |

<details><summary>unified diff（截断预览）</summary>

```diff
--- man
+++ cas
@@ -1,60 +1,97 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: （purpose 原文未由 SGP.23 该 TC 提供，corpus vacuum 登记）TC_eUICC_ES8+.ReplaceSessionKeys，Test Sequence #01 Error: Incorrect PPK size（B 行名称注记：except test sequence #11 and #12——本 TC 仅含 #01），适用性 M。
+// Test points: S4-C1 SW；S5-C1 SW；S6-C1 SW；S7-C1 SW；S7-C2 SW；S7-C2 resp present
+// 本函数由 CaseIR 4.2.6.2.1 编译生成（fullwave-blindgen-live-70，SGP.23 v1.16 × SGP.22 v2.7）：字节权威=CaseIR，非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M：编译期门，运行时由 harness 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体（Annex C.2 absent from input package, corpus vacuum）: IC 序列属测试工具/卡态编排责任，本脚本不虚构初始化步骤；语义影响见 CaseIR open_items。
+// GIC 通信初始化+ISD-R 选择+相互认证+End User Confirmation+PrepareDownload（#PREP_DOWNLOAD_NO_CC）: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GIC-sub PROC_EUICC_INITIALIZATION_SEQUENCE（R2 闭合，K_annexC2_procs 表1256：RESET/[SELECT_MF]/[TERMINAL_CAPABILITY_LPAd]/[TERMINAL_PROFILE]）: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GIC-sub PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR（R2 闭合，K_annexC2_procs 表1258：[MANAGE_CHANNEL_OPEN]/MTD_SELECT(#ISD_R_AID)）: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged() {
+    var bind = curBind;
 
-function TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size()
-{
+    // 步骤 1：IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>（tc_step；non_wire）
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
 
-	tracenamestr = "测试目的：验证eUICC检查所有PPK大小是否与会话密钥相同";
-	curDis.TraceStart(sno++,tracenamestr);
+    // 步骤 2：IC2: <BPP> = MTD_GENERATE_BPP（tc_step）
+    // BPP synthesized (4.2.6.2.1 seq#1, structural layer, SCP03t-unprotected): 1120 bytes; segments: INIT=191B, A0=22B, A1=58B, A2=53B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.6.2.1 seq#1 接线（段选择/注入面）
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED：明文承载，SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值，Annex E 缺席，调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值，Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA，需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名，需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值（Annex E 缺席）；变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A'；值域 HYPOTHESIS（Annex E 缺席，需与 UPP EF-ICCID 一致）
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER；取 operational(2)
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end（最小集）
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值（SGP.22 :7511）；随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化（EF 编码形态）；其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化（mccMnc+MSIN）；TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+    //   [SPEC] BF36/A2 — Table 4 :1593 secondSequenceOf87
+    //   [SPEC] BF26 — SGP.22 §5.5.4 :7481 ReplaceSessionKeysRequest [38]
+    //   [HYPOTHESIS] BF26/04 initialMacChainingValue — 自定随机值
+    //   [HYPOTHESIS] BF26/04 ppkEnc — 自定随机值
+    //   [HYPOTHESIS] BF26/04 ppkCmac — 自定随机值
+    //   [HYPOTHESIS] BF26/04 ppkEnc — 注入 ppk_invalid_size：16B→8B（4.2.6.2.1 seq#01）
+    // S2-C1: binding:bpp_override_rule_carried_by_synthesis_contract(bpp_injection-provenance) (check_attestation)
 
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化；");
-	Ini_powerOn_eUICC_LPAe_not_activate();
+    // 步骤 3：IC3: Split the <BPP> into several segments arrays named: <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A2>, <BPP_SEG_A3>（tc_step）
+    // BPP segment declaration (no APDU face): <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A2>, <BPP_SEG_A3>.
+    // Segment partitioning lives in bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651 segment table; single source of segmentation knowledge — wire sends BPP_SEG_INIT first).
+    // Segment bytes are runtime-domain (BPP synthesized at the MTD_GENERATE_BPP step); not injected into this script; load steps follow the SCRIPT data=null contract.
+    // S3-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
 
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令，打开辅助逻辑通道；");
-	TS_MANAGE_CHANNEL_OPEN();
+    // 步骤 4：IC4: MTD_STORE_DATA_SCRIPT（tc_step）
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s4 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s4.sw);
 
-	curLogicChannel = 1;
+    // 步骤 5：IC5: MTD_STORE_DATA_SCRIPT（tc_step）
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s5 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S5-C1 SW", "9000", s5.sw);
 
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令，选择ISD-R；");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
+    // 步骤 6：IC6: MTD_STORE_DATA_SCRIPT（tc_step）
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s6 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S6-C1 SW", "9000", s6.sw);
 
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccInfo1Request；");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccChallengeRequest；");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行AuthenticateServerRequest；");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行PrepareDownloadRequest；");
-	Profile_load_procedure.ES10b_PrepareDownload();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行GetEuiccDataRequest(GetEID)；");
-	Profile_load_procedure.ES10b_GetEID();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令，执行BoundProfilePackage，ReplaceSessionKeysRequest域中使用错误长度的PPK initialMacChaining；");
…（差异行超限，共 152 行，此处截断）
```

</details>
### 4.2 UCE/命名对照

- man：`ESIM_TEST_SGP_23.UCE`；入口 [('TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size', 'ES8(SMDP+ -- eUICC):ReplaceSessionKeys', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
- cas：`TC_eUICC_ES8_ReplaceSessionKeys/TC_eUICC_ES8_ReplaceSessionKeys.uce`；入口 [('TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged', 'TC_eUICC_ES8_ReplaceSessionKeys', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged)')]；参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}

## 5. L2 步骤/APDU/step_map 差异（结构化对齐）

- 命令计数：man 70 / cas 0；精确对齐 0，核心（CLA·INS·P1·P2·Lc）同 0，man-only 70，cas-only 0

| # | `-man` | `-cas` | 对齐 |
|---|---|---|---|
| — | man-only: `@RESET`, `00A40004023F00`, `00C0000020`, `80AA000007A9058100830137`, `8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038`, `801200000F`, `801400000C810301250082028281830100`, `0070000000`, `0070000001`, `01A4040010A0000005591010FFFFFFFF8900000100`, `01C0000021`, `81E2910003BF2000` | | |

## 6. L3 规范字段/Expected/REQ/通过条件差异

- spec：/Users/yuhu/cas/原料/切片/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys/spec_intl/SGP.23-v1.16_4.2.6_ReplaceSessionKeys.md（风格：mapping）；caseir：`/Users/yuhu/cas/experiments/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-20261004_021948/caseir_materialized_gate.json`

spec_intl 为人工核订映射表风格（规范步骤 ↔ 厂商脚本实现 ↔ 实跑结果）：

| 规范步骤 | man 脚本实现 | man 实跑结果 |
|---|---|---|
| General IC 链（选 ISD-R＋鉴权＋#PREP_DOWNLOAD_NO_CC，OP1 not loaded） | 初始化 `Ini_powerOn_eUICC_LPAe_not_activate()`（L10）→ 开通道 `TS_MANAGE_CHANN | 通过（链 APDU1-APDU121 全绿；AuthServer/PrepareDownload 后"卡片返回签名数据正确" APDU84/ |
| IC1/IC2 生成 BPP（#REPLACE_S_KEYS_REQ_INV_SIZE：错误尺寸 PPK；UPP 以会话密钥保护） | `initialMacChainingValueLen = 24`（L49，正确 16 字节被改为 24——错误尺寸机器载体）+ `UseP | 通过（BPP 段流 APDU123-APDU160；含 A2 段 APDU160 `A25A 87…` 92B SCP03t 密文——错误  |
| IC4-IC6 BPP_SEG_INIT/A0/A1（SW=9000 无响应） | 同上过程调用 `ES10b_LoadBoundProfilePackage()`（L55） | 通过（APDU123 起各段 Transport Command 期望 9000=实际 9000 逐段在案） |
| 1 BPP_SEG_A2 末段 → #R_PIR_PPK_INV + euiccSignPIR 验签（RQ55_041 等） | 同上；过程内部错误路径检查（RSP_Test_Procedure.js ES10b_LoadBoundProfilePackage isEr | 通过（APDU161 响应 `BF37` ProfileInstallationResult：transactionId 期望=实际（APD |
| （收尾，非规范步骤） | `RecoverCard()`（L59） | 通过（Transaction 2 APDU184-APDU303 MemoryReset/通知链/关通道全绿，卡归零态） |

cas CaseIR 步骤/检查：

| 步 | 动作 | checks | REQ |
|---|---|---|---|
| 1 | IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA> | [] | [] |
| 2 | IC2: <BPP> = MTD_GENERATE_BPP(#S_INIT_SC_PROF1, #CONF_ISDP_PROF1, #MET | ["S2-C1"] | [] |
| 3 | IC3: Split the <BPP> into several segments arrays named: <BPP_SEG_INIT | ["S3-C1"] | [] |
| 4 | IC4: MTD_STORE_DATA_SCRIPT(<BPP_SEG_INIT>) | ["S4-C1"] | [] |
| 5 | IC5: MTD_STORE_DATA_SCRIPT(<BPP_SEG_A0>) | ["S5-C1"] | [] |
| 6 | IC6: MTD_STORE_DATA_SCRIPT(<BPP_SEG_A1>) | ["S6-C1"] | [] |
| 7 | 1: MTD_STORE_DATA_SCRIPT(<BPP_SEG_A2>) | ["S7-C1", "S7-C2", "S7-C3", "S7-C4"] | ["RQ55_038", "RQ55_041", "RQ31_168", "RQ26_021", "RQ26_022", "RQ25_024", "RQ25_025", "RQ25_026"] |

### 6.1 充分性分析（启发式，不作最终裁定）

- cas：`GAPS_FOUND`（全步有检查=True；REQ 全覆盖=False；ErrorCount==0=False）
- cas 物化核对（启发式旁证，权威见下行 attestation）：声明检查 9 项 / 生成体 checkData 6 次 / S 标号重合 5 / 计数缺口 3 / 形态 `DEFICIT`；执行面 `FAIL`（计数缺口须结合绑定层隐含断言核验，非直接判缺陷）
- **cas 编译器自证（check_attestation，同批构建）**：声明 None = js 5 + binding 4 + gap 0；缺口判定以本行为权威（启发式计数仅旁证）
  - binding 覆盖示例：`S2-C1`→binding:bpp_override_rule_carried_by_synthesis_contract(bpp_inje；`S3-C1`→binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.；`S7-C3`→binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime；`S7-C4`→binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime
- cas 注释面登记检查（未以 checkData 物化、代码内有注释说明）：['S2-C1', 'S3-C1', 'S7-C3', 'S7-C4']
- man：映射行 5；TTR 期望/实际回声 124；厂商工具内置审计（TTR 期望/实际回声行为证据）；脚本字节级充分性不可完全外部验证
- cas 信息步（无线上断言义务）：[1]
- REQ 声明面 vs caseir 引用面差异（1 项，非等价缺口判定）：['**RQ31_168**--replaceSessionKeys 段交换）']
- caseir open_items：
  - General IC 编排（同族前置链）属执行侧
  - #REPLACE_S_KEYS_REQ_INV_SIZE/#S_INIT_SC_PROF1/#CONF_ISDP_PROF1/#METADATA_OP_PROF1 常量字节不在输入包——BPP 与命令数据不可闭合；R2 已闭合 ReplaceSessionKeysRequest 外层结构（BF26，S22_replace_keys.md:27-41）
  - 一次性密钥对、S_ENC/S_MAC/S_INIT_MAC、euiccSignPIR 为执行期动态值
  - CU 清理过程属测试工具职责，语料未含

## 7. 分类结论（封闭枚举）

| 轴 | 计数 | 说明 |
|---|---|---|
| `SCRIPT_DIALECT` | 54 | 闭包文件差：man-only 3 / cas-only 51 |
| `GEN_DIFF` | 71 | 命令序列差：man-only 70 / cas-only 0；REQ 覆盖缺口：['**RQ31_168**--replaceSessionKeys 段交换）'] |

| 侧 | 根因候选（七类，启发式签名） | 签名 |
|---|---|---|
| cas | `card_error` | `Connect Reader 失败|card is NOT connected|SW=0000|SW=00000000` |

> 签名为文本面启发式命中（如 `6D00` 等 SW 亦可能是负例期望值），须结合 Expected 面核验后方可定论。

- 置信度：heuristic；需人工复核：False

## 8. 证据路径

- man 包：`../../packages/man/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-man.zip`
- man TTR：`/Users/yuhu/cas/原料/切片/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys/logs/20260907_173146_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES8_ReplaceSessionKeys_01_Error_Incorrect_PPK_size.ttr`
- cas 包/源：`../../packages/cas/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-cas.zip`
- cas TTR：`/Users/yuhu/cas/experiments/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-20261004_021948/logs/89566df6_gapfix1/result/TC_eUICC_ES8_ReplaceSessionKeys/TC_eUICC_ES8_ReplaceSessionKeys_01_11_12_01_merged.ttr`
- spec_intl：`/Users/yuhu/cas/原料/切片/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys/spec_intl/SGP.23-v1.16_4.2.6_ReplaceSessionKeys.md`
- caseir：`/Users/yuhu/cas/experiments/4.2.6.2.1-TC_eUICC_ES8+.ReplaceSessionKeys-20261004_021948/caseir_materialized_gate.json`
- step_map：`—`

