4.2.25.2.1 ES10c 获取 EID
TC_eUICC_ES10c.GetEID
-man 人工切片
- 终态
- ok `_ok` 复用(结构 A1-A7 PASS;`_ok` run 无厂商错误行)
- ErrorCount
- 0
- 执行 job
- 20260828_112904_ok:8abe6b1ed23d43c8a82377f90222e4c9
- html_run
- 20261007_140045
- 包 sha256
- f7f3eb73efed7533…
- 包大小
- 242.6 KB
日志源(切片目录内相对路径):logs/20261007_140045/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetEID_01_Nominal.html
-cas 盲生成
- 终态
- failed 产物 placed(B6 #01/#02 双序列 green);本轮不重跑
- ErrorCount
- 75
- 执行 job
- 8e86a16b540845bfaca1ed00e7540cab
- html_run
- 8e86a16b_gapfix1
- 包 sha256
- ed78cfaaff011b37…
- 包大小
- 833.0 KB
- 判定
- REUSE_GREEN
- 路由
- native_N0
- 状态轴
- execution=green(reuse) / place=placed(reuse) / release=not_ready / card_state=ok
差异概览(机械口径)
闭包文件层(l1)
man 34 / cas 82 个 JS;共同 31,一致 30,man-only 3,cas-only 51
命令序列层(l2)
man 39 / cas 0 条命令;完全一致 0,核心一致 0,长度尾部差 0,man-only 39,cas-only 0
规范覆盖(l3)
spec_steps 1,缺失 REQ 0 项,checkData 26 次,计数缺口 0,物化 FULL,执行 FAIL
断言自证(attestation)
js 断言 25 条 / 绑定层 2 条 / 缺口 0
机械差异分类
| 轴 | 说明 | 计数 |
|---|---|---|
| RUN_DIFF | man 通过 / cas 失败 | 1 |
| SCRIPT_DIALECT | 闭包文件差:man-only 3 / cas-only 51 | 54 |
| GEN_DIFF | 命令序列差:man-only 39 / cas-only 0 | 39 |
| EVIDENCE_MISSING | cas 断言缺失:无检查步 [];未映射步 [1] | 1 |
对比报告
4.2.25.2.1 TC_eUICC_ES10c.GetEID — -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.25.2.1-TC_eUICC_ES10c.GetEID-man.zip | f7f3eb73efed7533e3eb82b8449ee74956e0cec0ff7fb174cbbc06911b27cb4f | zip | TC_eUICC_ES10c_GetEID_01_Nominal |
-cas | 4.2.25.2.1-TC_eUICC_ES10c.GetEID-cas.zip | ed78cfaaff011b3782afae3e52637b0de58ffb21554d48b218bf2f8618fc0da4 | zip | — |
- man 源路径:
../packages/man/4.2.25.2.1-TC_eUICC_ES10c.GetEID-man.zip - cas 源路径:
../packages/cas/4.2.25.2.1-TC_eUICC_ES10c.GetEID-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 | 20260828_112904_ok:8abe6b1ed23d43c8a82377f90222e4c9 | — | /Users/yuhu/cas/原料/切片/4.2.25.2.1-TC_eUICC_ES10c.GetEID/logs/20260828_112904_ok/result/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetEID_01_Nominal.ttr | — |
-cas | failed | 产物 placed(B6 #01/#02 双序列 green);本轮不重跑 | 75 | 8e86a16b540845bfaca1ed00e7540cab | — | /Users/yuhu/cas/experiments/4.2.25.2.1-TC_eUICC_ES10c.GetEID-r2run-20260829/logs/8e86a16b_gapfix1/result/TC_eUICC_ES10c_GetEID/TC_eUICC_ES10c_GetEID_01_Nominal_02_Error.ttr | — |
- cas 块4账本:decision=
REUSE_GREEN;route=native_N0;live 事件 1 条(4.6 波次进行中;以块4终版账本为准) - cas 4.6 波次最新执行:terminal=
failed;stage=cas_gapfix_rerun;job=8e86a16b540845bfaca1ed00e7540cab;gaps=["gapfix-rerun:job 终态 succeeded,业务判 failed(error_count=4);failed 亦为有效终态,如实登记"] - cas 证据来源分层:
REUSE_GREEN→ 历史复用(prior evidence,本轮未重跑)
3. HTML 执行日志状态
-man:NATIVE(../evidence/4.2.25.2.1/man/TC_eUICC_ES10c_GetEID_01_Nominal.html;sha256f1d631d5e6c851c24d6064933d8a43da09132c7b0dece6c57e397d214fd62b31;78112 bytes)-cas:NATIVE(../evidence/4.2.25.2.1/cas/TC_eUICC_ES10c_GetEID_01_Nominal_02_Error.html;sha25621733f4a8192e680d0c081774e3e4698e0ae7130c68053a32be9da0e17127bf0;26077 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 64 / cas 119;字符:man 1993 / cas 7952
- man 顶层调用 Top:[["TestStepStart2", 8], ["TC_eUICC_ES10c_GetEID_02_Error", 2], ["TraceStart", 2], ["Ini_powerOn_eUICC_LPAe_not_activate", 2], ["TS_MANAGE_CHANNEL_OPEN", 2], ["TS_SELECT", 2], ["GetEuiccDataRequest", 2], ["GenHexData", 2], ["LPAd_Transport_data_to_eUICC", 2], ["RecoverCard", 2]]
- cas bind 调用:[["checkData", 26], ["sendApdu", 8], ["resetAndAtr", 2], ["runToSteadyState", 2], ["sendTerminalProfile", 2], ["manageChannelOpen", 2]]
| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 4 |
unified diff(截断预览)
--- man
+++ cas
@@ -1,63 +1,118 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_GetEID_01_Nominal + TC_eUICC_ES10c_GetEID_02_Error (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20260906-184033
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.GetEID,Test Sequence #01 Nominal + #02 Error,适用性 M。
+// Test points: S1-C1 ATR_present;S2-C1 FCP_Template;S2-C2 FCP tag 62;S2-C3 SW;S3-C1 SW
+// S4-C2 final SW;S5-C1 SW;S5-C2 CHANNEL_NUMBER extracted;S6-C1 SW;S7-C1 SW;S7-C4 eidValue
+// S7-C4 eidValue length;S7-C3 EID object 5A10;S7-C2 outer tag BF3E;S8-C1 ATR_present
+// S9-C1 FCP_Template;S9-C2 FCP tag 62;S9-C3 SW;S10-C1 SW;S11-C2 final SW;S12-C1 SW
+// S12-C2 CHANNEL_NUMBER extracted;S13-C1 SW;S14-C1 SW != 9000;S14-C2 response data absent
+// S14-C3 response data absent
+// 本函数由 CaseIR 4.2.25.2.1 编译生成(regen-421,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 环境前置承担。
+function TC_eUICC_ES10c_GetEID_01_Nominal_02_Error() {
+ var bind = curBind;
+ // IC1 PROC_EUICC_INITIALIZATION_SEQUENCE: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+ // IC2 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
-function TC_eUICC_ES10c_GetEID_01_Nominal()
-{
- tracenamestr = "测试目的:获取EID正确性测试";
- curDis.TraceStart(sno++,tracenamestr);
+ // 步骤 1:RESET(procedure_expansion)
+ var s1 = bind.resetAndAtr();
+ bind.checkData("S1-C1 ATR_present", "1", s1.atr_hex !== "" ? "1" : "0");
- curLogicChannel = 0;
- curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
- Ini_powerOn_eUICC_LPAe_not_activate();
+ // 步骤 2:SELECT_MF(procedure_expansion)
+ // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+ var s2 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+ bind.checkData("S2-C1 FCP_Template", "1", s2.resp.length > 0 ? "1" : "0");
+ bind.checkData("S2-C2 FCP tag 62", "62", s2.resp.substring(0, 2));
+ bind.checkData("S2-C3 SW", "9000", s2.sw);
- curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
- TS_MANAGE_CHANNEL_OPEN();
+ // 步骤 3:TERMINAL_CAPABILITY_LPAd(procedure_expansion)
+ var s3 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+ bind.checkData("S3-C1 SW", "9000", s3.sw);
- curLogicChannel = 1;
+ // 步骤 4:TERMINAL_PROFILE(procedure_expansion)
+ var steady4 = bind.runToSteadyState(function () {
+ return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000/91XX");
+ });
+ bind.checkData("S4-C2 final SW", "9000", steady4.final.sw);
+ // S4-C1: 'interim_SW' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: 'fetch_issued' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: 'terminal_response' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S4-C1: binding:runToSteadyState_structural(chaining-rule) (check_attestation)
- curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
- TS_SELECT("Select ISD",ISD_R_AID,"9000");
+ // 步骤 5:MANAGE_CHANNEL_OPEN(procedure_expansion)
+ // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s5 = bind.manageChannelOpen("9000");
+ bind.checkData("S5-C1 SW", "9000", s5.sw);
+ bind.checkData("S5-C2 CHANNEL_NUMBER extracted", "1", s5.chan !== null ? "1" : "0");
- curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,GET_EID");
- var getEuiccDataRequest = new GetEuiccDataRequest();
- getEuiccDataRequest.tagList = "5A";
- var getEuiccDataRequestHexStr = getEuiccDataRequest.GenHexData();
- var hexData = LPAd_Transport_data_to_eUICC(getEuiccDataRequestHexStr);
+ // 步骤 6:MTD_SELECT(procedure_expansion)
+ // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s6 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", "00", "9000");
+ // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+ bind.checkData("S6-C1 SW", "9000", s6.sw);
- var getEuiccDataResponse = new GetEuiccDataResponse();
+ // 步骤 7:MTD_STORE_DATA(tc_step;REQ: RQ33_002, RQ57_171, RQ57_172)
+ // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+ var sdCla7 = s5.chan !== null ? (s5.chan <= 3 ? 128 + s5.chan : 188 + s5.chan).toString(16).toUpperCase() : null;
+ var s7 = bind.sendApdu(sdCla7, "E2", "91", "00", "BF3E035C015A", "00", "9000");
+ bind.checkData("S7-C1 SW", "9000", s7.sw);
+ var eidExp7 = "89049032123451234512345678901235";
+ var eidLen7 = null, eidVal7 = "absent";
+ for (var i7 = 0; i7 + 4 <= s7.resp.length; i7 += 2) {
+ if (s7.resp.substring(i7, i7 + 2) === "5A") {
+ eidLen7 = s7.resp.substring(i7 + 2, i7 + 4);
+ eidVal7 = s7.resp.substring(i7 + 4, i7 + 4 + eidExp7.length);
+ break;
+ }
+ }
+ bind.checkData("S7-C4 eidValue", "89049032123451234512345678901235", eidVal7);
+ bind.checkData("S7-C4 eidValue length", "10", eidLen7 === null ? "absent" : eidLen7);
+ bind.checkData("S7-C3 EID object 5A10", "1", s7.resp.indexOf("5A10") >= 0 ? "1" : "0");
+ bind.checkData("S7-C2 outer tag BF3E", "BF3E", s7.resp.substring(0, 4));
- getEuiccDataResponse.checkCardResDataFormat(hexData);
+ // 步骤 8:RESET(procedure_expansion)
+ var s8 = bind.resetAndAtr();
+ bind.checkData("S8-C1 ATR_present", "1", s8.atr_hex !== "" ? "1" : "0");
- var eidValue = getEuiccDataResponse.eidValue;
+ // 步骤 9:SELECT_MF(procedure_expansion)
+ // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+ var s9 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+ bind.checkData("S9-C1 FCP_Template", "1", s9.resp.length > 0 ? "1" : "0");
+ bind.checkData("S9-C2 FCP tag 62", "62", s9.resp.substring(0, 2));
+ bind.checkData("S9-C3 SW", "9000", s9.sw);
- curStrHandle.CheckData(EID1, eidValue, "eidValue");
+ // 步骤 10:TERMINAL_CAPABILITY_LPAd(procedure_expansion)
+ var s10 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+ bind.checkData("S10-C1 SW", "9000", s10.sw);
+ // 步骤 11:TERMINAL_PROFILE(procedure_expansion)
+ var steady11 = bind.runToSteadyState(function () {
+ return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000/91XX");
+ });
+ bind.checkData("S11-C2 final SW", "9000", steady11.final.sw);
+ // S11-C1: 'interim_SW' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
+ // S11-C1: 'fetch_issued' structurally guaranteed by runToSteadyState (binding layer unit 4, chaining rule).
…(差异行超限,共 171 行,此处截断)
- man:
ESIM_TEST_SGP_23.UCE;入口 [('TC_eUICC_ES10c_GetEID_01_Nominal', 'GetEID', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ES10c_GetEID_01_Nominal)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"} - cas:
TC_eUICC_ES10c_GetEID/TC_eUICC_ES10c_GetEID.uce;入口 [('TC_eUICC_ES10c_GetEID_01_Nominal_02_Error', 'TC_eUICC_ES10c_GetEID', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ES10c_GetEID_01_Nominal_02_Error)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
5. L2 步骤/APDU/step_map 差异(结构化对齐)
- 命令计数:man 39 / cas 0;精确对齐 0,核心(CLA·INS·P1·P2·Lc)同 0,man-only 39,cas-only 0
| # | -man | -cas | 对齐 |
|---|---|---|---|
| — | man-only: @RESET, 00A40004023F00, 00C0000020, 80AA000007A9058100830137, 8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038, 801200000F, 801400000C810301250082028281830100, 0070000000, 0070000001, 01A4040010A0000005591010FFFFFFFF8900000100, 01C0000021, 81E2910006BF3E035C015A |
6. L3 规范字段/Expected/REQ/通过条件差异
- spec:/Users/yuhu/cas/原料/切片/4.2.25.2.1-TC_eUICC_ES10c.GetEID/spec_intl/SGP.23-v1.16_4.2.25_GetEID.md(风格:table);caseir:
/Users/yuhu/cas/experiments/4.2.25.2.1-TC_eUICC_ES10c.GetEID-20260906_1829/caseir_materialized_gate.json
| 步 | 规范动作 | Expected 片段 | 规范 REQ | cas 检查 | cas REQ | man 实现 | man 结果 |
|---|---|---|---|---|---|---|---|
| 1 | MTD_STORE_DATA(<br>#GET_EID) | 4 | ["RQ33_002", "RQ57_171", "RQ57_172"] | [] | [] | — |
6.1 充分性分析(启发式,不作最终裁定)
- cas:
GAPS_FOUND(全步有检查=False;REQ 全覆盖=True;ErrorCount==0=False) - cas 物化核对(启发式旁证,权威见下行 attestation):声明检查 14 项 / 生成体 checkData 26 次 / S 标号重合 13 / 计数缺口 0 / 形态
FULL;执行面FAIL(计数缺口须结合绑定层隐含断言核验,非直接判缺陷) - cas 编译器自证(check_attestation,同批构建):声明 None = js 25 + binding 2 + gap 0;缺口判定以本行为权威(启发式计数仅旁证)
- binding 覆盖示例:
S4-C1→binding:runToSteadyState_structural(chaining-rule);S11-C1→binding:runToSteadyState_structural(chaining-rule) - cas 注释面登记检查(未以 checkData 物化、代码内有注释说明):['S4-C1']
- man:mapping 行 5 / 规范步 1;TTR 期望/实际回声 58;厂商工具内置审计(TTR 期望/实际回声行为证据);脚本字节级充分性不可完全外部验证
- caseir open_items:
- 卡态编排责任:IC1/IC2 初始条件由测试工具动态达成;每个测试序列执行后须运行 CU 清理恢复 Annex G Common Initial State(D_tc_structure_notation L36-50),#01→#02 之间同样适用——非 CaseIR 断言范围
- Toolkit initialization(91XX/FETCH/TERMINAL RESPONSE 具体交互)与 MTD/PROC 的实现归测试工具提供商(D_tc_structure_notation §2.2.2.1)
- 序列 #02 期望错误 SW 为非固定值(≠0x9000 即可,ANY_SW_IN_ERROR 语义),脚本层只需断言错误状态字且无响应数据
7. 分类结论(封闭枚举)
| 轴 | 计数 | 说明 |
|---|---|---|
RUN_DIFF | 1 | man 通过 / cas 失败 |
SCRIPT_DIALECT | 54 | 闭包文件差:man-only 3 / cas-only 51 |
GEN_DIFF | 39 | 命令序列差:man-only 39 / cas-only 0 |
EVIDENCE_MISSING | 1 | cas 断言缺失:无检查步 [];未映射步 [1] |
| 侧 | 根因候选(七类,启发式签名) | 签名 | |||
|---|---|---|---|---|---|
| cas | card_error | `Connect Reader 失败 | card is NOT connected | SW=0000 | SW=00000000` |
签名为文本面启发式命中(如 6D00 等 SW 亦可能是负例期望值),须结合 Expected 面核验后方可定论。
- 置信度:heuristic;需人工复核:False
8. 证据路径
- man 包:
../packages/man/4.2.25.2.1-TC_eUICC_ES10c.GetEID-man.zip - man TTR:
/Users/yuhu/cas/原料/切片/4.2.25.2.1-TC_eUICC_ES10c.GetEID/logs/20260828_112904_ok/result/ESIM_TEST_SGP_23/TC_eUICC_ES10c_GetEID_01_Nominal.ttr - cas 包/源:
../packages/cas/4.2.25.2.1-TC_eUICC_ES10c.GetEID-cas.zip - cas TTR:
/Users/yuhu/cas/experiments/4.2.25.2.1-TC_eUICC_ES10c.GetEID-r2run-20260829/logs/8e86a16b_gapfix1/result/TC_eUICC_ES10c_GetEID/TC_eUICC_ES10c_GetEID_01_Nominal_02_Error.ttr - spec_intl:
/Users/yuhu/cas/原料/切片/4.2.25.2.1-TC_eUICC_ES10c.GetEID/spec_intl/SGP.23-v1.16_4.2.25_GetEID.md - caseir:
/Users/yuhu/cas/experiments/4.2.25.2.1-TC_eUICC_ES10c.GetEID-20260906_1829/caseir_materialized_gate.json - step_map:
—