4.2.11.2.1 ES10b 加载绑定 Profile 包(NIST)
TC_eUICC_ES10b.LoadBoundProfilePackageNIST
-man 人工切片
- 终态
- ok `_ok` 复用(结构 A1-A7 PASS;`_ok` run 无厂商错误行)
- ErrorCount
- 0
- 执行 job
- 20261007_115338:284be746bdc9430c971735a9f98eb6a7
- html_run
- 20261007_121458
- 包 sha256
- 4373952702c05fcd…
- 包大小
- 243.3 KB
日志源(切片目录内相对路径):logs/20261007_121458/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC.html
-cas 盲生成
- 终态
- unknown 纯 native 零卡态前置(N0)
- ErrorCount
- 43
- 执行 job
- f5db2b121a234d04a0e700d3602fa312
- html_run
- d541d92d9dcc4fdca0e70dc6e6d7eefc
- 包 sha256
- beb9f54bb8b86378…
- 包大小
- 834.1 KB
- 判定
- RERUN
- 路由
- native_N0
- 状态轴
- execution=red_verify / place=not_attempted / release=not_ready / card_state=n/a
差异概览(机械口径)
闭包文件层(l1)
man 34 / cas 82 个 JS;共同 31,一致 30,man-only 3,cas-only 51
命令序列层(l2)
man 101 / cas 11 条命令;完全一致 0,核心一致 0,长度尾部差 0,man-only 101,cas-only 11
规范覆盖(l3)
spec_steps 0,缺失 REQ 6 项,checkData 28 次,计数缺口 12,物化 DEFICIT,执行 FAIL
断言自证(attestation)
js 断言 28 条 / 绑定层 12 条 / 缺口 0
机械差异分类
| 轴 | 说明 | 计数 |
|---|---|---|
| SCRIPT_DIALECT | 闭包文件差:man-only 3 / cas-only 51 | 54 |
| GEN_DIFF | 命令序列差:man-only 101 / cas-only 11;REQ 覆盖缺口:['RQ31_185', 'RQ31_186_1', 'RQ31_188_1', 'RQ57_013', 'RQ57_016', '步 5 读回 RQ32_070/RQ55_025/RQ24_010/RQ26_020/RQ31_161/RQD0_001)'] | 118 |
对比报告
4.2.11.2.1 TC_eUICC_ES10b.LoadBoundProfilePackageNIST — -man ↔ -cas diff 报告
交付形态说明:本报告随专家交付包分发——-man/-cas脚本包 zip 与 190server HTML 执行日志已内联至packages/、evidence-html/,相应路径已相对化;TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径(未随包)。
- 生成时间:2026-10-08 22:57:09 |引擎:holiday-blk5/0.1|配对状态:
PAIRED - 分母口径:卡侧 61 之一
1. 配对与包
| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
-man | 4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-man.zip | 4373952702c05fcdce4657a75c8e4fae03ed86686707cc9d00298a588d3d45a4 | zip | TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC |
-cas | 4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-cas.zip | beb9f54bb8b863788e814c8db9cd97c00095e3caec205f75faf451477be3dbb5 | zip | — |
- man 源路径:
../packages/man/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-man.zip - cas 源路径:
../packages/cas/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-cas.zip - 上游来源:{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
- 适用性:naming-map=
C001["C001", "C001", "C001", "C001", "C001"];caseir=C001
2. 执行摘要(双方 job/终态)
| 侧 | 终态/计划 | 备注 | ErrorCount | job_id | 业务状态 | TTR | 诊断包 |
|---|---|---|---|---|---|---|---|
-man | ok | _ok 复用(结构 A1-A7 PASS;_ok run 无厂商错误行) | 0 | 20261007_115338:284be746bdc9430c971735a9f98eb6a7 | — | /Users/yuhu/cas/原料/切片/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST/logs/20260907_183904_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC.ttr | — |
-cas | unknown | 纯 native 零卡态前置(N0) | 43 | f5db2b121a234d04a0e700d3602fa312 | — | /Users/yuhu/cas/experiments/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-20261004_022632/logs/f5db2b12_gapfix1/result/TC_eUICC_ES10b_LoadBoundProfilePackageNIST/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged.ttr | — |
- cas 块4账本:decision=
RERUN;route=native_N0;live 事件 2 条(4.6 波次进行中;以块4终版账本为准) - cas 4.6 波次最新执行:terminal=
unknown;stage=cas_gapfix_rerun;job=f5db2b121a234d04a0e700d3602fa312;gaps=["gapfix-rerun:job 终态 succeeded,业务判 unknown(error_count=0);failed 亦为有效终态,如实登记"] - cas 失败归因引用(块4):
b4-attribution.md - cas 证据来源分层:
RERUN→ 本轮 4.6 波次执行
3. HTML 执行日志状态
-man:NATIVE(../evidence/4.2.11.2.1/man/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC.html;sha25678815eb5ef9f409cd4291507fd1a25c60ef692152360ce3446c2a04d1e699601;239973 bytes)-cas:NATIVE(../evidence/4.2.11.2.1/cas/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged.html;sha2564b9da2393ec52a777724e974a1818eec906d89d09b3147d1612f4d589eb77e17;17555 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 188 / cas 160;字符:man 8777 / cas 15676
- man 顶层调用 Top:[["TestStepStart2", 22], ["CheckData", 12], ["TS_SELECT", 4], ["TC_eUICC_ES10b_LoadBoundProfilePackage_02_Nominal_By_using_PPK_ENC_and_PPK_MAC", 3], ["check_Applicability_of_tests_RSP_SGP23_test", 2], ["TC_eUICC_ES10b_LoadBoundProfilePackage_01_Nominal_By_using_S_ENC_and_S_MAC", 2], ["TraceStart", 2], ["Ini_powerOn_eUICC_LPAe_not_activate", 2], ["TS_MANAGE_CHANNEL_OPEN", 2], ["RSP_profile_load_procedure_LPAd", 2]]
- cas bind 调用:[["checkData", 28], ["sendApdu", 11]]
| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 6 |
unified diff(截断预览)
--- man
+++ cas
@@ -1,187 +1,159 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC + TC_eUICC_ES10b_LoadBoundProfilePackageNIST_02_Nominal_By_using_PPK_ENC_and_PPK_MAC + TC_eUICC_ES10b_LoadBoundProfilePackage_01_Nominal_By_using_S_ENC_and_S_MAC + TC_eUICC_ES10b_LoadBoundProfilePackage_02_Nominal_By_using_PPK_ENC_and_PPK_MAC (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10b.LoadBoundProfilePackageNIST,Test Sequence #01 Nominal: By using S-ENC and S-MAC; #02 Nominal: By using PPK-ENC and PPK-MAC,适用性 C001。
+// Test points: S1-C1 SW;S1-C2 response data absent;S2-C1 SW;S2-C2 response data absent;S3-C1 SW
+// S3-C2 response data absent;S4-C1 SW;S4-C2 SW;S5-C1 SW;S5-C2 contains iccid 989209012143658709F5
+// S5-C3 contains iccid 989209012143658709F5;S5-C4 isdpAid;S5-C5 profileState;S6-C1 SW
+// S6-C2 response data absent;S7-C1 SW;S7-C2 response data absent;S8-C1 SW
+// S8-C2 response data absent;S9-C1 SW;S9-C2 response data absent;S10-C1 SW;S10-C2 SW;S11-C1 SW
+// S11-C2 contains iccid 989209012143658709F5;S11-C3 contains iccid 989209012143658709F5
+// S11-C4 isdpAid;S11-C5 profileState
+// 本函数由 CaseIR 4.2.11.2.1 编译生成(fullwave-blindgen-live-70-W1-A3,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).
+// 适用性 C001:编译期门,运行时由 harness 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
+// GIC1 The PROFILE_OPERATIONAL1 is not loaded on the eUICC.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GIC2 Communication S_Device/eUICC initialized, S_LPAd has selected the ISD-R; Common Mutual Authentication successfully executed between eUICC and S_SM-DP+ (#GET_EUICC_INFO1, #GET_EUICC_CHALLENGE, #AUTHENTICATE_SMDP sent); same GSMA CI based on NIST P-256 chosen for signing and verification; Sub-procedure Profile Download and Installation - End User Confirmation successfully executed (#PREP_DOWNLOAD_NO_CC sent).: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// IC1(seq01/02) Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA> (test tool responsibility).: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// IC2(seq01) <BPP> = MTD_GENERATE_BPP(#S_INIT_SC_PROF1, #CONF_ISDP_PROF1, #METADATA_OP_PROF1, NO_PARAM, #UPP_OP_PROF1) — BPP protected with <S_ENC>/<S_MAC> only.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// IC2(seq02) <BPP> = MTD_GENERATE_BPP(#S_INIT_SC_PROF1, #CONF_ISDP_PROF1, #METADATA_OP_PROF1, #REPLACE_S_KEYS_REQ, #UPP_OP_PROF1) — UPP segments protected with PPK-ENC/PPK-MAC and Initial MAC chaining value.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// IC3(seq01) Split <BPP> into <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3> per TLV layout in E_tc_4211 IC3 NOTE.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// IC3(seq02) Split <BPP> into <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A2>, <BPP_SEG_A3> per TLV layout in E_tc_4211 IC3 NOTE (seq02 adds secondSequenceOf87 with #REPLACE_S_KEYS_REQ).: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged() {
+ var bind = curBind;
-function TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC()
-{
- if(!Card_Have_ECC_Cert)
- return;
+ // 步骤 1:Seq#01 Step1] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_162, RQ31_163, RQ31_164, RQ55_003, RQ55_016, RQ55_017, RQ55_018, RQ55_020, RQ55_021, RQ55_022, RQ55_024, RQ26_011, RQ26_013, RQ26_016, RQ26_034, RQ26_035, RQ31_161)
+ // 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 s1 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+ bind.checkData("S1-C1 SW", "9000", s1.sw);
+ bind.checkData("S1-C2 response data absent", "1", s1.resp === "" ? "1" : "0");
- //测试入口条件
- if(!check_Applicability_of_tests_RSP_SGP23_test("C001"))
- return;
+ // 步骤 2:Seq#01 Step2] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_165, RQ55_028, RQ26_012, RQ26_013, RQ26_016, RQ26_018, RQ26_019, RQ26_036, RQ31_161, RQG0_001, RQG0_002, RQG0_003, RQG0_004, RQG0_005, RQG0_006)
+ // 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 s2 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+ bind.checkData("S2-C1 SW", "9000", s2.sw);
+ bind.checkData("S2-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
- pkId_CI_ForVerification = pkId_CI_ECDSA_NIST;
- pkId_CI_ForSigning = pkId_CI_ECDSA_NIST;
+ // 步骤 3:Seq#01 Step3] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_166, RQ55_033, RQ55_036, RQ55_037, RQ24_028, RQ26_012, RQ26_013, RQ26_016, RQ26_018, RQ26_019, RQ26_020, RQ26_036, RQ31_161, RQG0_005, RQG0_006)
+ // 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 s3 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+ bind.checkData("S3-C1 SW", "9000", s3.sw);
+ bind.checkData("S3-C2 response data absent", "1", s3.resp === "" ? "1" : "0");
- TC_eUICC_ES10b_LoadBoundProfilePackage_01_Nominal_By_using_S_ENC_and_S_MAC();
+ // 步骤 4:Seq#01 Step4] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_170, RQ31_171, RQ57_045, RQ55_008, RQ25_003, RQ25_007, RQ25_018, RQ25_019, RQ25_023, RQ25_024, RQ55_025, RQ25_016, RQ26_012, RQ26_013, RQ26_016, RQ26_018, RQ26_019, RQ26_034, RQ26_035, RQ26_036, RQ31_161, RQ35_003_1, RQ44_003, RQD0_001, RQG0_005, RQG0_006)
+ // BPP segment load (data=null contract): <BPP_SEG_A3> 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);
+ bind.checkData("S4-C2 SW", "9000", s4.sw);
+ // S4-C3: binding:bpp_seg_load_pir_runtime_structure(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // S4-C4: binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // S4-C5: binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // S4-C6: binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // S4-C7: binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // S4-C8: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+ // 步骤 5:Seq#01 Step5] MTD_STORE_DATA(tc_step;REQ: RQ32_070, RQ55_025, RQ24_010, RQ26_020, RQ31_161, RQD0_001)
+ // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+ var s5 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+ bind.checkData("S5-C1 SW", "9000", s5.sw);
+ var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+ var r2has5_0 = false;
+ for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
+ var f = r2p5.elements[r2i5_0].fields;
+ if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has5_0 = true; break; }
+ }
+ bind.checkData("S5-C2 contains iccid 989209012143658709F5", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
+ var r2has5_0 = false;
+ for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
+ var f = r2p5.elements[r2i5_0].fields;
+ if (f["5A"] === "989209012143658709F5") { r2has5_0 = true; break; }
+ }
+ bind.checkData("S5-C3 contains iccid 989209012143658709F5", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
+ var r2fa5S5_C4 = false;
+ for (var r2fi5S5_C4 = 0; r2fi5S5_C4 < r2p5.elements.length; r2fi5S5_C4++) {
+ var f = r2p5.elements[r2fi5S5_C4].fields;
+ if (f["4F"] !== undefined) { r2fa5S5_C4 = true; break; }
+ }
+ bind.checkData("S5-C4 isdpAid", "1", (r2p5.branch_tag === "A0" && r2fa5S5_C4) ? "1" : "0");
+ var r2fa5S5_C5 = false;
+ for (var r2fi5S5_C5 = 0; r2fi5S5_C5 < r2p5.elements.length; r2fi5S5_C5++) {
+ var f = r2p5.elements[r2fi5S5_C5].fields;
+ if (f["9F70"] === "00") { r2fa5S5_C5 = true; break; }
+ }
+ bind.checkData("S5-C5 profileState", "1", (r2p5.branch_tag === "A0" && r2fa5S5_C5) ? "1" : "0");
+
+ // 步骤 6:Seq#02 Step1] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_162, RQ31_163, RQ31_164, RQ55_003, RQ55_016, RQ55_017, RQ55_018, RQ55_020, RQ55_021, RQ55_022, RQ55_024, RQ26_011, RQ26_013, RQ26_016, RQ26_034, RQ26_035, RQ31_161)
+ // 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 s6 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+ bind.checkData("S6-C1 SW", "9000", s6.sw);
+ bind.checkData("S6-C2 response data absent", "1", s6.resp === "" ? "1" : "0");
+
+ // 步骤 7:Seq#02 Step2] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_165, RQ55_028, RQ26_012, RQ26_013, RQ26_016, RQ26_018, RQ26_019, RQ26_020, RQ26_036, RQ31_161, RQ26_011, RQ26_034, RQ26_035, RQG0_001, RQG0_002, RQG0_003, RQG0_004, RQG0_005, RQG0_006)
+ // 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 s7 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+ bind.checkData("S7-C1 SW", "9000", s7.sw);
+ bind.checkData("S7-C2 response data absent", "1", s7.resp === "" ? "1" : "0");
+
+ // 步骤 8:Seq#02 Step3] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ57_040, RQ57_042, RQ57_043, RQ57_044, RQ55_001, RQ55_002, RQ55_006, RQ55_007, RQ57_010, RQ57_011, RQ57_012, RQ57_014, RQ26_029, RQ31_166, RQ55_033, RQ55_036, RQ55_037, RQ26_012, RQ26_013, RQ26_016, RQ26_018, RQ26_019, RQ26_036, RQ31_161, RQG0_005, RQG0_006)
+ // 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 s8 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
…(差异行超限,共 343 行,此处截断)
- man:
ESIM_TEST_SGP_23.UCE;入口 [('TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC', 'TC_eUICC_ES10b.LoadBoundProfilePackageNIST', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"} - cas:
TC_eUICC_ES10b_LoadBoundProfilePackageNIST/TC_eUICC_ES10b_LoadBoundProfilePackageNIST.uce;入口 [('TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged', 'TC_eUICC_ES10b_LoadBoundProfilePackageNIST', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
5. L2 步骤/APDU/step_map 差异(结构化对齐)
- 命令计数:man 101 / cas 11;精确对齐 0,核心(CLA·INS·P1·P2·Lc)同 0,man-only 101,cas-only 11
| # | -man | -cas | 对齐 | |
|---|---|---|---|---|
| — | man-only: @RESET, 00A40004023F00, 00C0000020, 80AA000007A9058100830137, 8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038, 801200000F, 801400000C810301250082028281830100, 0070000000, 0070000001, 01A4040010A0000005591010FFFFFFFF8900000100, 01C0000021, 81E2910003BF2000 | |||
| — | cas-only: 00E2000000, 00E2000000, 00E2000000, 00E2000000, 00E2910011BF2D0EA00C5A0A989209012143658709F500, 00E2000000, 00E2000000, 00E2000000, 00E2000000, 00E2000000, 00E2910011BF2D0EA00C5A0A989209012143658709F500 |
6. L3 规范字段/Expected/REQ/通过条件差异
- spec:/Users/yuhu/cas/原料/切片/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST/spec_intl/SGP.23-v1.16_4.2.11_LoadBoundProfilePackageNIST.md(风格:mapping);caseir:
/Users/yuhu/cas/experiments/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-20261004_022632/caseir_materialized_gate.json
spec_intl 为人工核订映射表风格(规范步骤 ↔ 厂商脚本实现 ↔ 实跑结果):
| 规范步骤 | man 脚本实现 | man 实跑结果 |
|---|---|---|
| General IC 链(选 ISD-R+Common Mutual Authentication+End User Confirmation:#PREP_DOWNLOAD_NO_CC 已发) | 壳 L3-17(C001 门禁+NIST pkId)→ 基底 L34-66:初始化 L40→MANAGE_CHANNEL L43→选 ISD | 通过(步骤 1-7=APDU3/27/33/39/45/51/88 起全链绿;euiccSigned1 验签 卡片返回签名数据正确( |
| IC1 生成 \<OTPK_S_SM_DP+_ECKA\>/\<OT_SK_S_SM_DP+_ECKA\>(IC2 BPP 生成、IC3 段切分在装载过程库内部) | new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA)(L51,V | 通过(过程库内部承载;段流证据见步 1-4 行) |
| (厂商附加步,非规范步骤)GetEID | ES10b_GetEID()(L66) | 通过(步骤 8 APDU114-119 SW=9000;规范表 121 无此步——装载前 EID 读取,登记为脚本附加链节) |
| IC2 #METADATA_OP_PROF1 元数据载体 | L69-79:serviceProviderName=SP_NAME1+profileName=PROFILE_OPERATIONAL1_N | 通过(元数据随 BPP A1 段流下发;步 5 读回逐项核验在案) |
1-4 MTD_STORE_DATA_SCRIPT(<BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>) 各段 SW=0x9000(末段末包 #R_PIR_OK) | ES10b_LoadBoundProfilePackage()(L80,INIT/A0/A1/A3 逐段链式 81E2 STORE DA | 通过(步骤 9=APDU120 起段流至 APDU237,逐段 SW=9000;**Profile下载结果: 期望值 Profile下载成功 |
| 4 断言:euiccSignPIR 用 #PK_EUICC_ECDSA 验签(\<ISD_P_AID\> 范围校验) | 过程库 Euicc_RSP_Verify+ISD-P AID 解析 | 通过(卡片返回签名数据正确(APDU237)=euiccSignPIR 验签通过;AID A0000005591010FFFF… |
5 MTD_GET_PROFILE_INFO(#ICCID_OP_PROF1) → profileInfoListOk{iccid/isdpAid/profileState disabled} | ProfileInfoListRequest(L86-89:searchCriteria=ICCID)→`ProfileInfoList | 通过(步骤 11=APDU244-268:响应 BF2D8202EB…(APDU246-248);六项读回逐项期望=实际:ICC |
| (收尾,非规范步骤) | RecoverCard()(L107) | 通过(Transaction 2 APDU270-437:MemoryReset 删 OP/TP(APDU313)+Reset defaul |
cas CaseIR 步骤/检查:
| 步 | 动作 | checks | REQ |
|---|---|---|---|
| 1 | [Seq#01 Step1] MTD_STORE_DATA_SCRIPT(<BPP_SEG_INIT>) | ["S1-C1", "S1-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_162", "RQ31_163", "RQ31_164", "RQ55_003", "RQ55_016", "RQ55_017", "RQ55_018", "RQ55_020", "RQ55_021", "RQ55_022", "RQ55_024", "RQ26_011", "RQ26_013", "RQ26_016", "RQ26_034", "RQ26_035", "RQ31_161"] |
| 2 | [Seq#01 Step2] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A0>) | ["S2-C1", "S2-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_165", "RQ55_028", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_036", "RQ31_161", "RQG0_001", "RQG0_002", "RQG0_003", "RQG0_004", "RQG0_005", "RQG0_006"] |
| 3 | [Seq#01 Step3] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A1>) | ["S3-C1", "S3-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_166", "RQ55_033", "RQ55_036", "RQ55_037", "RQ24_028", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_020", "RQ26_036", "RQ31_161", "RQG0_005", "RQG0_006"] |
| 4 | [Seq#01 Step4] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A3>) | ["S4-C1", "S4-C2", "S4-C3", "S4-C4", "S4-C5", "S4-C6", "S4-C7", "S4-C8"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_170", "RQ31_171", "RQ57_045", "RQ55_008", "RQ25_003", "RQ25_007", "RQ25_018", "RQ25_019", "RQ25_023", "RQ25_024", "RQ55_025", "RQ25_016", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_034", "RQ26_035", "RQ26_036", "RQ31_161", "RQ35_003_1", "RQ44_003", "RQD0_001", "RQG0_005", "RQG0_006"] |
| 5 | [Seq#01 Step5] MTD_STORE_DATA(MTD_GET_PROFILE_INFO(#ICCID_OP_PROF1, NO | ["S5-C1", "S5-C2", "S5-C3", "S5-C4", "S5-C5"] | ["RQ32_070", "RQ55_025", "RQ24_010", "RQ26_020", "RQ31_161", "RQD0_001"] |
| 6 | [Seq#02 Step1] MTD_STORE_DATA_SCRIPT(<BPP_SEG_INIT>) | ["S6-C1", "S6-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_162", "RQ31_163", "RQ31_164", "RQ55_003", "RQ55_016", "RQ55_017", "RQ55_018", "RQ55_020", "RQ55_021", "RQ55_022", "RQ55_024", "RQ26_011", "RQ26_013", "RQ26_016", "RQ26_034", "RQ26_035", "RQ31_161"] |
| 7 | [Seq#02 Step2] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A0>) | ["S7-C1", "S7-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_165", "RQ55_028", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_020", "RQ26_036", "RQ31_161", "RQ26_011", "RQ26_034", "RQ26_035", "RQG0_001", "RQG0_002", "RQG0_003", "RQG0_004", "RQG0_005", "RQG0_006"] |
| 8 | [Seq#02 Step3] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A1>) | ["S8-C1", "S8-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_166", "RQ55_033", "RQ55_036", "RQ55_037", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_036", "RQ31_161", "RQG0_005", "RQG0_006"] |
| 9 | [Seq#02 Step4] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A2>) | ["S9-C1", "S9-C2"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_168", "RQ31_169", "RQ55_039", "RQ55_040", "RQ55_041", "RQ26_021", "RQ26_022", "RQ26_012", "RQ26_013", "RQ26_016", "RQ26_018", "RQ26_019", "RQ26_036", "RQ31_161", "RQG0_005", "RQG0_006"] |
| 10 | [Seq#02 Step5] MTD_STORE_DATA_SCRIPT(<BPP_SEG_A3>) | ["S10-C1", "S10-C2", "S10-C3", "S10-C4", "S10-C5", "S10-C6", "S10-C7", "S10-C8"] | ["RQ57_040", "RQ57_042", "RQ57_043", "RQ57_044", "RQ55_001", "RQ55_002", "RQ55_006", "RQ55_007", "RQ57_010", "RQ57_011", "RQ57_012", "RQ57_014", "RQ26_029", "RQ31_170", "RQ31_171", "RQ57_045", "RQ55_008", "RQ25_003", "RQ25_007", "RQ25_018", "RQ25_019", "RQ25_023", "RQ25_024", "RQ55_025", "RQ25_016", "RQ26_012", "RQ26_013", "RQ26_034", "RQ26_035", "RQ31_161", "RQ35_003_1", "RQ44_003", "RQD0_001", "RQG0_005", "RQG0_006"] |
| 11 | [Seq#02 Step6] MTD_STORE_DATA(MTD_GET_PROFILE_INFO(#ICCID_OP_PROF1, NO | ["S11-C1", "S11-C2", "S11-C3", "S11-C4", "S11-C5"] | ["RQ55_025", "RQ32_070", "RQ24_010", "RQ26_020", "RQ31_161", "RQD0_001"] |
6.1 充分性分析(启发式,不作最终裁定)
- cas:
GAPS_FOUND(全步有检查=True;REQ 全覆盖=False;ErrorCount==0=False) - cas 物化核对(启发式旁证,权威见下行 attestation):声明检查 40 项 / 生成体 checkData 28 次 / S 标号重合 28 / 计数缺口 12 / 形态
DEFICIT;执行面FAIL(计数缺口须结合绑定层隐含断言核验,非直接判缺陷) - cas 编译器自证(check_attestation,同批构建):声明 None = js 28 + binding 12 + gap 0;缺口判定以本行为权威(启发式计数仅旁证)
- binding 覆盖示例:
S4-C3→binding:bpp_seg_load_pir_runtime_structure(S22-2.5.6;PIR-runtime;S4-C4→binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-do;S4-C5→binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-do;S4-C6→binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-do;S4-C7→binding:bpp_seg_load_pir_runtime_fields(S22-2.5.6;PIR-runtime-do - cas 注释面登记检查(未以 checkData 物化、代码内有注释说明):['S10-C3', 'S10-C4', 'S10-C5', 'S10-C6', 'S10-C7', 'S10-C8', 'S4-C3', 'S4-C4', 'S4-C5', 'S4-C6', 'S4-C7', 'S4-C8']
- man:映射行 8;TTR 期望/实际回声 186;厂商工具内置审计(TTR 期望/实际回声行为证据);脚本字节级充分性不可完全外部验证
- REQ 声明面 vs caseir 引用面差异(6 项,非等价缺口判定):['RQ31_185', 'RQ31_186_1', 'RQ31_188_1', 'RQ57_013', 'RQ57_016', '步 5 读回 RQ32_070/RQ55_025/RQ24_010/RQ26_020/RQ31_161/RQD0_001)']
- caseir open_items:
- PROFILE_OPERATIONAL1 的装载/清理与 Common Mutual Authentication、End User Confirmation 子过程属卡态编排责任(General Initial Conditions),非本 CaseIR 步骤。
- 每个 Test Sequence 执行后须执行 clean-up procedure (CU) 恢复 Common Initial State(D_tc_structure_notation 2.2.2)。
- <OTPK_S_SM_DP+_ECKA>/<OT_SK_S_SM_DP+_ECKA>、<S_ENC>/<S_MAC>/<S_INIT_MAC>、<PPK_ENC>/<PPK_MAC>/<PPK_INIT_MAC>、BPP 各段字节均为测试工具运行时生成;本 CaseIR 一律 null+dynamic 声明。
- #S_INIT_SC_PROF1/#CONF_ISDP_PROF1/#METADATA_OP_PROF1/#REPLACE_S_KEYS_REQ/#UPP_OP_PROF1 的字节级定义不在本输入包(属 SGP.23 Annex D.2/E),未编造。
- R_PIR_OK 响应若 >256 字节需 61XX+GET RESPONSE 链式读取(J_annexD4_apdu D.4.2)。
- euiccSignPIR 验签使用 #PK_EUICC_ECDSA(证书链材料属 SGP.26,输入包未含证书字节)。
7. 分类结论(封闭枚举)
| 轴 | 计数 | 说明 |
|---|---|---|
SCRIPT_DIALECT | 54 | 闭包文件差:man-only 3 / cas-only 51 |
GEN_DIFF | 118 | 命令序列差:man-only 101 / cas-only 11;REQ 覆盖缺口:['RQ31_185', 'RQ31_186_1', 'RQ31_188_1', 'RQ57_013', 'RQ57_016', '步 5 读回 RQ32_070/RQ55_025/RQ24_010/RQ26_020/RQ31_161/RQD0_001)'] |
| 侧 | 根因候选(七类,启发式签名) | 签名 | ||
|---|---|---|---|---|
| cas | card_vs_spec_mismatch | `6985 | 6A88 | 6D00` |
签名为文本面启发式命中(如 6D00 等 SW 亦可能是负例期望值),须结合 Expected 面核验后方可定论。
- 置信度:heuristic;需人工复核:False
8. 证据路径
- man 包:
../packages/man/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-man.zip - man TTR:
/Users/yuhu/cas/原料/切片/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST/logs/20260907_183904_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_Nominal_By_using_S_ENC_and_S_MAC.ttr - cas 包/源:
../packages/cas/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-cas.zip - cas TTR:
/Users/yuhu/cas/experiments/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-20261004_022632/logs/f5db2b12_gapfix1/result/TC_eUICC_ES10b_LoadBoundProfilePackageNIST/TC_eUICC_ES10b_LoadBoundProfilePackageNIST_01_02_merged.ttr - spec_intl:
/Users/yuhu/cas/原料/切片/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST/spec_intl/SGP.23-v1.16_4.2.11_LoadBoundProfilePackageNIST.md - caseir:
/Users/yuhu/cas/experiments/4.2.11.2.1-TC_eUICC_ES10b.LoadBoundProfilePackageNIST-20261004_022632/caseir_materialized_gate.json - step_map:
—