源码对照:5.2.7.2.1
停用 Profile 的应用管理 / TC_eUICC_DisableProfile_ApplicationManagement
左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
93 行 / 3335 字符 / gb18030
-cas 入口
TC_eUICC_DisableProfile_ApplicationManagement/Import/TC_eUICC_DisableProfile_ApplicationManagement.js
106 行 / 7689 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js93 行 / 3335 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile (extracted verbatim)
2
3function TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile()
4{
5
6 initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
7 var ISD_P_Test01 = curProfile_ISD_P_AID;
8
9 initial_condition_Remove_All_Notification();
10
11 tracenamestr = "验证失效profile后,profile中的应用不能被选择,并且不能被删除";
12 curDis.TraceStart(sno++,tracenamestr);
13
14 curLogicChannel = 0;
15 curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
16 Ini_powerOn_eUICC_LPAe_not_activate();
17
18 curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
19 TS_MANAGE_CHANNEL_OPEN();
20
21 curLogicChannel = 0;
22 curDis.TestStepStart2(stno++,"选择USIM成功;");
23 para = new SelectFileIDPara_3G("7FF1");
24 SendAPDU(para.apdu);
25
26 curDis.TestStepStart2(stno++,"选择SSD成功;");
27 TS_SELECT("Select SSD","A00000055910100102736456616C7565","9000");
28
29 curLogicChannel = 1;
30
31 curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
32 TS_SELECT("Select ISD",ISD_R_AID,"9000");
33
34 curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,失效profile1;");
35 var disableProRequest = new DisableProfileRequest();
36 disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
37 disableProRequest.refreshFlag = BooleanValue_BerCode_False;
38 disableProRequest.GenHexData();
39 var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData);
40
41 curStrHandle.CheckData("BF3203800100", respData, "DisableProfileResponse");
42
43 curLogicChannel = 0;
44 curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
45 Ini_powerOn_eUICC_LPAe_not_activate();
46
47 curDis.TestStepStart2(stno++,"选择USIM失败;");
48 para = new SelectFileIDPara_3G("7FF1");
49 para.apdu.ressw = "6A82";
50 SendAPDU(para.apdu);
51
52 curDis.TestStepStart2(stno++,"选择SSD失败;");
53 TS_SELECT("Select SSD","A00000055910100102736456616C7565","6A82");
54
55 curLogicChannel = 0;
56 curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
57 Ini_powerOn_eUICC_LPAe_not_activate();
58
59 curDis.TestStepStart2(stno++,"删除SSD;");
60 sSendType = SendTypeByOTA.SMS;
61
62 KIC = MNO_SCP80_ENC_KEY;
63 KID = MNO_SCP80_AUTH_KEY;
64 KIK = MNO_SCP80_DATA_ENC_KEY;
65 sAPDU = "80E40000124F10A00000055910100102736456616C7565";
66 SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
67 CardSendMessageToServer(sSendType,1,"","06/09");
68 TerminalResponse("00","9000");
69
70 curLogicChannel = 1;
71
72 curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
73 TS_SELECT("Select ISD",ISD_R_AID,"9000");
74
75 curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest;");
76 var enableProRequest = new EnableProfileRequest();
77 enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
78 enableProRequest.refreshFlag = BooleanValue_BerCode_False;
79 enableProRequest.GenHexData();
80 var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData);
81
82 curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");
83
84 curLogicChannel = 0;
85 curDis.TestStepStart2(stno++,"选择USIM成功;");
86 para = new SelectFileIDPara_3G("7FF1");
87 SendAPDU(para.apdu);
88
89 RecoverCard();
90
91
92}
93
-cas 盲生成TC_eUICC_DisableProfile_ApplicationManagement/Import/TC_eUICC_DisableProfile_ApplicationManagement.js106 行 / 7689 字符 / gb18030入口函数 @L10
1// Author: 卡思Cas智能体
2// Date: 20261004-022948
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_DisableProfile_ApplicationManagement,Test Sequence #01 Nominal: Application Selection/Deletion not available on Disabled Profile(本 TC 单条 Test Sequence),适用性 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;S1-C1 SW;S1-C2 FCP_Template;S2-C1 SW;S4-C1 SW;S5-C1 SW
6// S7-C2 envelope C_APDUS_SCRIPT named APDU;S9-C1 SW;S11-C1 SW
7// 本函数由 CaseIR 5.2.7.2.1 编译生成(5.2.7.2.1-TC_eUICC_DisableProfile_ApplicationManagement-20261004_022948,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
8// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
9// 适用性 M:编译期门,运行时由 harness 环境前置承担。
10function TC_eUICC_DisableProfile_ApplicationManagement_01_merged() {
11 var bind = curBind;
12 // GEN-IC-1 卡态声明(E 段 General Initial Conditions,编排责任):PROFILE_OPERATIONAL1 is installed and Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
13
14 // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
15 var s12 = bind.resetAndAtr();
16 bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s12.atr_hex !== "" ? "1" : "0");
17
18 // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
19 // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
20 var s13 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
21 bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s13.resp.length > 0 ? "1" : "0");
22 bind.checkData("ICH-IC1-K2-C4 SW", "9000", s13.sw);
23
24 // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
25 var s14 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
26 bind.checkData("ICH-IC1-K3-C4 SW", "9000", s14.sw);
27
28 // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
29 var steady15 = bind.runToSteadyState(function () {
30 return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
31 });
32 bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady15.final.sw);
33
34 // 步骤 1:SELECT_USIM(tc_step)
35 var s1 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "9000");
36 bind.checkData("S1-C1 SW", "9000", s1.sw);
37 bind.checkData("S1-C2 FCP_Template", "1", s1.resp.length > 0 ? "1" : "0");
38
39 // 步骤 2:MTD_SELECT(tc_step)
40 // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
41 var s2 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
42 // 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.
43 bind.checkData("S2-C1 SW", "9000", s2.sw);
44 // S2-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
45 // S2-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
46
47 // 步骤 3:Disable PROFILE_OPERATIONAL1(tc_step)
48 // card-state orchestration declaration (no APDU face): execution is
49 // the batch card_state prep framework's responsibility (4227 ruling B
50 // same-family scope; ensure_profile_state / prep_packager);
51 // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
52
53 // 步骤 4:SELECT_USIM(tc_step;REQ: RQ24_026)
54 var s4 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "6A82");
55 bind.checkData("S4-C1 SW", "6A82", s4.sw);
56 // S4-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
57
58 // 步骤 5:MTD_SELECT(tc_step;REQ: RQ24_026)
59 // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
60 var s5 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "6A82");
61 // 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.
62 bind.checkData("S5-C1 SW", "6A82", s5.sw);
63 // S5-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
64 // S5-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
65
66 // 步骤 6:PROC_EUICC_INITIALIZATION_SEQUENCE(procedure_expansion)
67 // E 表验证性 PROC(K 过程体缺席):oracle 缺席诚实面——期望=声明面
68 // spec 引用、实际=proc_expansion_absent(如实计错,不伪造通过)。
69
70 // 步骤 7:MTD_SEND_SMS_PP(tc_step;REQ: RQ24_026)
71 // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238): deterministic SCP80 envelope — counter=规范初值 0000000001, CC=离线闭合
72 // (scp80_emitter 3DES outer-CBC),C_APDUS_SCRIPT = 命名 APDU 常量机械转录;规范固定头字段见发射器漂移登记。
73 var s7 = bind.sendApdu("80", "C2", "00", "00", "D156020283810607913386094000F00B474405850213F27FF6713012415574403702700000321512210015B2010000000000010027C1E4EA55DBD5E6AA1A221880E40080124F10A00000055910100102736456616C756500", null, null);
74 bind.checkData("S7-C2 envelope C_APDUS_SCRIPT named APDU", "1", s7.cmd.indexOf("AA1A221880E40080124F10A00000055910100102736456616C756500") >= 0 ? "1" : "0");
75 // S7-C1: binding:scp80_envelope_response_status_disjunctive(91XX|9000|error;E_tc_527-NOTE) (check_attestation)
76
77 // 步骤 8:FETCH 'XX'(tc_step;REQ: RQ24_026)
78 // FETCH header literals follow the golden wire evidence 8012 (same
79 // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
80 // gives mechanism only). Le = pending length from the last 91XX
81 // (chain rule, binding-internal state).
82 var s8 = bind.fetchPending("80", "12", "00", "00", null);
83 // S8-C1: binding:fetch_sms_por_runtime_parse(MTD_CHECK_SMS_POR;H-annexC1) (check_attestation)
84
85 // 步骤 9:TERMINAL RESPONSE(tc_step)
86 // TERMINAL RESPONSE data is dynamically built by the binding from the
87 // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
88 // Header literals follow the golden wire evidence 8014.
89 var s9 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
90 bind.checkData("S9-C1 SW", "9000", s9.sw);
91
92 // 步骤 10:Enable PROFILE_OPERATIONAL1(tc_step)
93 // card-state orchestration declaration (no APDU face): execution is
94 // the batch card_state prep framework's responsibility (4227 ruling B
95 // same-family scope; ensure_profile_state / prep_packager);
96 // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
97
98 // 步骤 11:MTD_SELECT(tc_step;REQ: RQ24_026)
99 // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
100 var s11 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "9000");
101 // 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.
102 bind.checkData("S11-C1 SW", "9000", s11.sw);
103 // S11-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
104 // S11-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
105}
106
完整 unified diff
行级差异:新增 103 行 / 删除 90 行(以 -man 为基准,unified 上下文 3 行)。
展开 diff(199 行)
--- -man
+++ -cas
@@ -1,93 +1,106 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261004-022948
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_DisableProfile_ApplicationManagement,Test Sequence #01 Nominal: Application Selection/Deletion not available on Disabled Profile(本 TC 单条 Test Sequence),适用性 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;S1-C1 SW;S1-C2 FCP_Template;S2-C1 SW;S4-C1 SW;S5-C1 SW
+// S7-C2 envelope C_APDUS_SCRIPT named APDU;S9-C1 SW;S11-C1 SW
+// 本函数由 CaseIR 5.2.7.2.1 编译生成(5.2.7.2.1-TC_eUICC_DisableProfile_ApplicationManagement-20261004_022948,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_DisableProfile_ApplicationManagement_01_merged() {
+ var bind = curBind;
+ // GEN-IC-1 卡态声明(E 段 General Initial Conditions,编排责任):PROFILE_OPERATIONAL1 is installed and Enabled: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
-function TC_eUICC_DisableProfile_ApplicationManagement_01_Nominal_Application_Selection_Deletion_not_available_on_Disabled_Profile()
-{
-
- initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
- var ISD_P_Test01 = curProfile_ISD_P_AID;
-
- initial_condition_Remove_All_Notification();
-
- tracenamestr = "验证失效profile后,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 = 0;
- curDis.TestStepStart2(stno++,"选择USIM成功;");
- para = new SelectFileIDPara_3G("7FF1");
- SendAPDU(para.apdu);
-
- curDis.TestStepStart2(stno++,"选择SSD成功;");
- TS_SELECT("Select SSD","A00000055910100102736456616C7565","9000");
-
- curLogicChannel = 1;
-
- curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
- TS_SELECT("Select ISD",ISD_R_AID,"9000");
-
- curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,失效profile1;");
- var disableProRequest = new DisableProfileRequest();
- disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
- disableProRequest.refreshFlag = BooleanValue_BerCode_False;
- disableProRequest.GenHexData();
- var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData);
-
- curStrHandle.CheckData("BF3203800100", respData, "DisableProfileResponse");
-
- curLogicChannel = 0;
- curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
- Ini_powerOn_eUICC_LPAe_not_activate();
-
- curDis.TestStepStart2(stno++,"选择USIM失败;");
- para = new SelectFileIDPara_3G("7FF1");
- para.apdu.ressw = "6A82";
- SendAPDU(para.apdu);
-
- curDis.TestStepStart2(stno++,"选择SSD失败;");
- TS_SELECT("Select SSD","A00000055910100102736456616C7565","6A82");
-
- curLogicChannel = 0;
- curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
- Ini_powerOn_eUICC_LPAe_not_activate();
-
- curDis.TestStepStart2(stno++,"删除SSD;");
- sSendType = SendTypeByOTA.SMS;
-
- KIC = MNO_SCP80_ENC_KEY;
- KID = MNO_SCP80_AUTH_KEY;
- KIK = MNO_SCP80_DATA_ENC_KEY;
- sAPDU = "80E40000124F10A00000055910100102736456616C7565";
- SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
- CardSendMessageToServer(sSendType,1,"","06/09");
- TerminalResponse("00","9000");
-
- curLogicChannel = 1;
-
- curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
- TS_SELECT("Select ISD",ISD_R_AID,"9000");
-
- curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest;");
- var enableProRequest = new EnableProfileRequest();
- enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
- enableProRequest.refreshFlag = BooleanValue_BerCode_False;
- enableProRequest.GenHexData();
- var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData);
-
- curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");
-
- curLogicChannel = 0;
- curDis.TestStepStart2(stno++,"选择USIM成功;");
- para = new SelectFileIDPara_3G("7FF1");
- SendAPDU(para.apdu);
-
- RecoverCard();
-
-
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+ var s12 = bind.resetAndAtr();
+ bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s12.atr_hex !== "" ? "1" : "0");
+
+ // 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 s13 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+ bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s13.resp.length > 0 ? "1" : "0");
+ bind.checkData("ICH-IC1-K2-C4 SW", "9000", s13.sw);
+
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+ var s14 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+ bind.checkData("ICH-IC1-K3-C4 SW", "9000", s14.sw);
+
+ // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+ var steady15 = bind.runToSteadyState(function () {
+ return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+ });
+ bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady15.final.sw);
+
+ // 步骤 1:SELECT_USIM(tc_step)
+ var s1 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "9000");
+ bind.checkData("S1-C1 SW", "9000", s1.sw);
+ bind.checkData("S1-C2 FCP_Template", "1", s1.resp.length > 0 ? "1" : "0");
+
+ // 步骤 2:MTD_SELECT(tc_step)
+ // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s2 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "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("S2-C1 SW", "9000", s2.sw);
+ // S2-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+ // S2-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
+
+ // 步骤 3:Disable PROFILE_OPERATIONAL1(tc_step)
+ // card-state orchestration declaration (no APDU face): execution is
+ // the batch card_state prep framework's responsibility (4227 ruling B
+ // same-family scope; ensure_profile_state / prep_packager);
+ // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
+
+ // 步骤 4:SELECT_USIM(tc_step;REQ: RQ24_026)
+ var s4 = bind.sendApdu("00", "A4", "04", "04", "A0000000871002FF33FF018900000100", "00", "6A82");
+ bind.checkData("S4-C1 SW", "6A82", s4.sw);
+ // S4-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
+
+ // 步骤 5:MTD_SELECT(tc_step;REQ: RQ24_026)
+ // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+ var s5 = bind.sendApdu(null, "A4", "04", "00", "A00000055910100102736456616C7565", "00", "6A82");
+ // 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("S5-C1 SW", "6A82", s5.sw);
+ // S5-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+ // S5-C2: binding:requirement_satisfied_by_same_step_error_sw_assertion (check_attestation)
+
+ // 步骤 6:PROC_EUICC_INITIALIZATION_SEQUENCE(procedure_expansion)
+ // E 表验证性 PROC(K 过程体缺席):oracle 缺席诚实面——期望=声明面
+ // spec 引用、实际=proc_expansion_absent(如实计错,不伪造通过)。
+
+ // 步骤 7:MTD_SEND_SMS_PP(tc_step;REQ: RQ24_026)
+ // MTD_SEND_SMS_PP ENVELOPE (H Annex C.1 表1238): deterministic SCP80 envelope — counter=规范初值 0000000001, CC=离线闭合
+ // (scp80_emitter 3DES outer-CBC),C_APDUS_SCRIPT = 命名 APDU 常量机械转录;规范固定头字段见发射器漂移登记。
+ var s7 = bind.sendApdu("80", "C2", "00", "00", "D156020283810607913386094000F00B474405850213F27FF6713012415574403702700000321512210015B2010000000000010027C1E4EA55DBD5E6AA1A221880E40080124F10A00000055910100102736456616C756500", null, null);
+ bind.checkData("S7-C2 envelope C_APDUS_SCRIPT named APDU", "1", s7.cmd.indexOf("AA1A221880E40080124F10A00000055910100102736456616C756500") >= 0 ? "1" : "0");
+ // S7-C1: binding:scp80_envelope_response_status_disjunctive(91XX|9000|error;E_tc_527-NOTE) (check_attestation)
+
+ // 步骤 8:FETCH 'XX'(tc_step;REQ: RQ24_026)
+ // FETCH header literals follow the golden wire evidence 8012 (same
+ // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
+ // gives mechanism only). Le = pending length from the last 91XX
+ // (chain rule, binding-internal state).
+ var s8 = bind.fetchPending("80", "12", "00", "00", null);
+ // S8-C1: binding:fetch_sms_por_runtime_parse(MTD_CHECK_SMS_POR;H-annexC1) (check_attestation)
+
+ // 步骤 9:TERMINAL RESPONSE(tc_step)
+ // TERMINAL RESPONSE data is dynamically built by the binding from the
+ // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
+ // Header literals follow the golden wire evidence 8014.
+ var s9 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+ bind.checkData("S9-C1 SW", "9000", s9.sw);
+
+ // 步骤 10:Enable PROFILE_OPERATIONAL1(tc_step)
+ // card-state orchestration declaration (no APDU face): execution is
+ // the batch card_state prep framework's responsibility (4227 ruling B
+ // same-family scope; ensure_profile_state / prep_packager);
+ // no fabricated bytes emitted here; see CaseIR unresolved/open_items.
+
+ // 步骤 11:MTD_SELECT(tc_step;REQ: RQ24_026)
+ // 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", "A00000055910100102736456616C7565", "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("S11-C1 SW", "9000", s11.sw);
+ // S11-C2: kind 'requirement' pattern has no static generation face (corpus vacuum; see CaseIR unresolved).
+ // S11-C2: binding:select_success_satisfies_selected_requirement(SW9000-receipt) (check_attestation)
}