eSIM RSP 测试用例对比站

人工切片(-man) ↔ Cas 盲生成(-cas)· 真机真卡执行证据对照

源码对照:4.2.23.2.1

ES10c 删除 Profile(Case 3) / TC_eUICC_ES10c.DeleteProfile_Case3

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
96 行 / 3835 字符 / gb18030
-cas 入口
TC_eUICC_ES10c_DeleteProfile_Case3/Import/TC_eUICC_ES10c_DeleteProfile_Case3.js
99 行 / 8944 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js96 行 / 3835 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_Case3_01_Nominal_Delete_Profile_by_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_Case3_02_Nominal_Delete_Profile_by_ICCID (extracted verbatim)
2
3function TC_eUICC_ES10c_DeleteProfile_Case3_01_Nominal_Delete_Profile_by_ISD_P_AID()
4{
5	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
6	var ISD_P_Test01 = curProfile_ISD_P_AID;
7	
8	tracenamestr = "测试目的:通过ISD-P AID删除profile";
9	curDis.TraceStart(sno++,tracenamestr);
10	
11	curLogicChannel = 0;
12	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
13	Ini_powerOn_eUICC_LPAe_not_activate();
14	
15	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
16	TS_MANAGE_CHANNEL_OPEN();
17	
18	curLogicChannel = 1;
19	
20	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
21	TS_SELECT("Select ISD",ISD_R_AID,"9000");
22	
23	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
24	var deleProfileRequest = new DeleteProfileRequest();
25	deleProfileRequest.isdpAid = ISD_P_Test01;
26	deleProfileRequest.GenHexData();
27	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","9000");
28	
29	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
30	
31	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
32	var proInfoListRequest = new ProfileInfoListRequest();
33	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
34	proInfoListRequest.tagList = "5A4F9F70";
35	proInfoListRequest.GenHexData();
36	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
37	
38	var proInfoListResponse = new  ProfileInfoListResponse();
39	proInfoListResponse.checkCardResDataFormat(respData);
40	try
41	{
42		curStrHandle.CheckData("00", obj.ToHex(proInfoListResponse.profileInfoListOk.arrOfElement.length),"Profile Info number");
43	}catch(e){
44		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
45	}
46	
47	RecoverCard();
48}
49
50function TC_eUICC_ES10c_DeleteProfile_Case3_02_Nominal_Delete_Profile_by_ICCID()
51{
52	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
53	var ISD_P_Test01 = curProfile_ISD_P_AID;
54	
55	tracenamestr = "测试目的:通过ICCID删除profile";
56	curDis.TraceStart(sno++,tracenamestr);
57	
58	curLogicChannel = 0;
59	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
60	Ini_powerOn_eUICC_LPAe_not_activate();
61	
62	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
63	TS_MANAGE_CHANNEL_OPEN();
64	
65	curLogicChannel = 1;
66	
67	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
68	TS_SELECT("Select ISD",ISD_R_AID,"9000");
69	
70	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
71	var deleProfileRequest = new DeleteProfileRequest();
72	deleProfileRequest.isdpAid = ISD_P_Test01;
73	deleProfileRequest.GenHexData();
74	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","9000");
75	
76	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
77	
78	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
79	var proInfoListRequest = new ProfileInfoListRequest();
80	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
81	proInfoListRequest.tagList = "5A4F9F70";
82	proInfoListRequest.GenHexData();
83	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
84	
85	var proInfoListResponse = new  ProfileInfoListResponse();
86	proInfoListResponse.checkCardResDataFormat(respData);
87	try
88	{
89		curStrHandle.CheckData("00", obj.ToHex(proInfoListResponse.profileInfoListOk.arrOfElement.length),"Profile Info number");
90	}catch(e){
91		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
92	}
93	
94	RecoverCard();
95}
96
-cas 盲生成TC_eUICC_ES10c_DeleteProfile_Case3/Import/TC_eUICC_ES10c_DeleteProfile_Case3.js99 行 / 8944 字符 / gb18030入口函数 @L11
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_Case3,Test Sequence #01 Nominal: Delete Profile by ISD-P AID; #02 Nominal: Delete Profile by ICCID,适用性 M。
4// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
5//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;ICH-IC2-K1-C4 SW;ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
6//   ICH-IC2-K2-C4 SW;S1-C1 SW;S1-C2 response data absent;S2-C1 SW;S2-C2 profileInfoListOk empty
7//   S3-C1 SW;S3-C2 response data absent;S4-C1 SW;S4-C2 profileInfoListOk empty
8// 本函数由 CaseIR 4.2.23.2.1 编译生成(fullwave-blindgen-live-70-W1-A3,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
9// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
10// 适用性 M:编译期门,运行时由 harness 环境前置承担。
11function TC_eUICC_ES10c_DeleteProfile_Case3_01_02_merged() {
12    var bind = curBind;
13    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_Case3_01_02_merged");
14    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "f0f71f1327fefd6a", "authority_reference": "E_tc_4223/38-38/G_annexB_dynamic:L51"}
15    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID1", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
16    // GIC1 The PROFILE_OPERATIONAL1 has been installed on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
17    // Seq01-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC; PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>. IC1=PROC_EUICC_INITIALIZATION_SEQUENCE; IC2=PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
18    // Seq02-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC. IC1/IC2 同上。: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
19    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
20
21    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
22    var s6 = bind.resetAndAtr();
23    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s6.atr_hex !== "" ? "1" : "0");
24
25    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
26    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
27    var s7 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
28    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s7.resp.length > 0 ? "1" : "0");
29    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s7.sw);
30
31    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
32    var s8 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
33    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s8.sw);
34
35    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
36    var steady9 = bind.runToSteadyState(function () {
37        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
38    });
39    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady9.final.sw);
40
41    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
42    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
43    var s10 = bind.manageChannelOpen("9000");
44    bind.checkData("ICH-IC2-K1-C4 SW", "9000", s10.sw);
45    bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s10.chan !== null ? "1" : "0");
46
47    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
48    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
49    var s11 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
50    // 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.
51    bind.checkData("ICH-IC2-K2-C4 SW", "9000", s11.sw);
52
53    // 步骤 1:MTD_STORE_DATA(tc_step)
54    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
55    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
56
57    // 步骤 2:Seq#01] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_051, RQ32_052, RQ57_154, RQ57_160, RQ24_010)
58    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
59    var sdCla2 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
60    // runtime-bound payload: ISD_P_AID1 stays in execution domain
61    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF33124F10", "", profileAidSession), null, "9000");
62    bind.checkData("S1-C1 SW", "9000", s2.sw);
63    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s2.cmd, profileAidSession);
64    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
65    // S1-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
66    // S1-C3: binding:delete_case3_sw9000_js_face(S22_delete:Case3-alternative) (check_attestation)
67
68    // 步骤 3:Seq#01] MTD_STORE_DATA(tc_step;REQ: RQ57_119, RQ24_010)
69    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
70    var sdCla3 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
71    // runtime-bound payload: ISD_P_AID1 stays in execution domain
72    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
73    bind.checkData("S2-C1 SW", "9000", s3.sw);
74    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s3.cmd, profileAidSession);
75    var r2p3 = BindEs10xProcProfile.walkChoiceList(s3.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
76    bind.checkData("S2-C2 profileInfoListOk empty", "1", (r2p3.branch_tag === "A0" && r2p3.elements.length === 0) ? "1" : "0");
77    // S2-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
78    // S2-C3: binding:delete_cascade_verified_by_empty_profile_query(S22_delete+RQ24_020) (check_attestation)
79
80    // 步骤 4:Seq#02] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_051, RQ32_052, RQ57_154, RQ57_158, RQ57_160)
81    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
82    var sdCla4 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
83    var s4 = bind.sendApdu(sdCla4, "E2", "90", "00", "BF330C5A0A989209012143658709F5", null, "9000");
84    bind.checkData("S3-C1 SW", "9000", s4.sw);
85    bind.checkData("S3-C2 response data absent", "1", s4.resp === "" ? "1" : "0");
86    // S3-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
87    // S3-C3: binding:delete_case3_sw9000_js_face(S22_delete:Case3-alternative) (check_attestation)
88
89    // 步骤 5:Seq#02] MTD_STORE_DATA(tc_step;REQ: RQ24_020, RQ57_119)
90    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
91    var sdCla5 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
92    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
93    bind.checkData("S4-C1 SW", "9000", s5.sw);
94    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
95    bind.checkData("S4-C2 profileInfoListOk empty", "1", (r2p5.branch_tag === "A0" && r2p5.elements.length === 0) ? "1" : "0");
96    // S4-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
97    // S4-C3: binding:delete_cascade_verified_by_empty_profile_query(S22_delete+RQ24_020) (check_attestation)
98}
99

完整 unified diff

行级差异:新增 95 行 / 删除 92 行(以 -man 为基准,unified 上下文 3 行)。

展开 diff(194 行)
--- -man
+++ -cas
@@ -1,96 +1,99 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_Case3_01_Nominal_Delete_Profile_by_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_Case3_02_Nominal_Delete_Profile_by_ICCID (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_Case3,Test Sequence #01 Nominal: Delete Profile by ISD-P AID; #02 Nominal: Delete Profile by ICCID,适用性 M。
+// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
+//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;ICH-IC2-K1-C4 SW;ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
+//   ICH-IC2-K2-C4 SW;S1-C1 SW;S1-C2 response data absent;S2-C1 SW;S2-C2 profileInfoListOk empty
+//   S3-C1 SW;S3-C2 response data absent;S4-C1 SW;S4-C2 profileInfoListOk empty
+// 本函数由 CaseIR 4.2.23.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).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_ES10c_DeleteProfile_Case3_01_02_merged() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_Case3_01_02_merged");
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "f0f71f1327fefd6a", "authority_reference": "E_tc_4223/38-38/G_annexB_dynamic:L51"}
+    var cardCtxLoad1 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID1", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // GIC1 The PROFILE_OPERATIONAL1 has been installed on the eUICC.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // Seq01-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC; PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>. IC1=PROC_EUICC_INITIALIZATION_SEQUENCE; IC2=PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR.: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // Seq02-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC. IC1/IC2 同上。: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
 
-function TC_eUICC_ES10c_DeleteProfile_Case3_01_Nominal_Delete_Profile_by_ISD_P_AID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ISD-P AID删除profile";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test01;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","9000");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	try
-	{
-		curStrHandle.CheckData("00", obj.ToHex(proInfoListResponse.profileInfoListOk.arrOfElement.length),"Profile Info number");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s6 = bind.resetAndAtr();
+    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s6.atr_hex !== "" ? "1" : "0");
 
-function TC_eUICC_ES10c_DeleteProfile_Case3_02_Nominal_Delete_Profile_by_ICCID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ICCID删除profile";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test01;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","9000");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A4F9F70";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	try
-	{
-		curStrHandle.CheckData("00", obj.ToHex(proInfoListResponse.profileInfoListOk.arrOfElement.length),"Profile Info number");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // 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 s7 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s7.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s7.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s8 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s8.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady9 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady9.final.sw);
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s10 = bind.manageChannelOpen("9000");
+    bind.checkData("ICH-IC2-K1-C4 SW", "9000", s10.sw);
+    bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s10.chan !== null ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s11 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "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("ICH-IC2-K2-C4 SW", "9000", s11.sw);
+
+    // 步骤 1:MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
+
+    // 步骤 2:Seq#01] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_051, RQ32_052, RQ57_154, RQ57_160, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla2 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF33124F10", "", profileAidSession), null, "9000");
+    bind.checkData("S1-C1 SW", "9000", s2.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s2.cmd, profileAidSession);
+    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
+    // S1-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S1-C3: binding:delete_case3_sw9000_js_face(S22_delete:Case3-alternative) (check_attestation)
+
+    // 步骤 3:Seq#01] MTD_STORE_DATA(tc_step;REQ: RQ57_119, RQ24_010)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla3 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S2-C1 SW", "9000", s3.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s3.cmd, profileAidSession);
+    var r2p3 = BindEs10xProcProfile.walkChoiceList(s3.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S2-C2 profileInfoListOk empty", "1", (r2p3.branch_tag === "A0" && r2p3.elements.length === 0) ? "1" : "0");
+    // S2-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S2-C3: binding:delete_cascade_verified_by_empty_profile_query(S22_delete+RQ24_020) (check_attestation)
+
+    // 步骤 4:Seq#02] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_051, RQ32_052, RQ57_154, RQ57_158, RQ57_160)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla4 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
+    var s4 = bind.sendApdu(sdCla4, "E2", "90", "00", "BF330C5A0A989209012143658709F5", null, "9000");
+    bind.checkData("S3-C1 SW", "9000", s4.sw);
+    bind.checkData("S3-C2 response data absent", "1", s4.resp === "" ? "1" : "0");
+    // S3-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S3-C3: binding:delete_case3_sw9000_js_face(S22_delete:Case3-alternative) (check_attestation)
+
+    // 步骤 5:Seq#02] MTD_STORE_DATA(tc_step;REQ: RQ24_020, RQ57_119)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla5 = s10.chan !== null ? (s10.chan <= 3 ? 128 + s10.chan : 188 + s10.chan).toString(16).toUpperCase() : null;
+    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s5.sw);
+    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S4-C2 profileInfoListOk empty", "1", (r2p5.branch_tag === "A0" && r2p5.elements.length === 0) ? "1" : "0");
+    // S4-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S4-C3: binding:delete_cascade_verified_by_empty_profile_query(S22_delete+RQ24_020) (check_attestation)
 }