eSIM RSP 测试用例对比站

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

源码对照:4.2.22.2.4

ES10c 停用 Profile 异常用例(Case 4) / TC_eUICC_ES10c.DisableProfile_ErrorCases_Case4

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
508 行 / 20985 字符 / gb18030
-cas 入口
TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4/Import/TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4.js
305 行 / 26610 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js508 行 / 20985 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_Error_Disable_Profile_by_an_unknown_ISD_P_AID + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_02_Error_Disable_Profile_by_an_unknown_ICCID + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_03_Error_Disable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_04_Error_Disable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_05_Error_Disable_Profil_by_ISD_P_AID_not_possible_when_PPR1_is_set + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_06_Error_Disable_Profil_by_ICCID_not_possible_when_PPR1_is_set + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_07_Error_Disable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusysupported + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_08_Error_Disable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusysupported (extracted verbatim)
2
3function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_Error_Disable_Profile_by_an_unknown_ISD_P_AID()
4{
5	if(!Card_Have_ECC_Cert)
6		return;
7	
8	TestOfMEPMode = 0;	
9
10	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
11	var ISD_P_Test01 = curProfile_ISD_P_AID;
12	
13
14	
15	tracenamestr = "测试目的:通过未知的ISD-P AID去失效profile";
16	curDis.TraceStart(sno++,tracenamestr);
17	
18	curLogicChannel = 0;
19	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
20	Ini_powerOn_eUICC_LPAe_not_activate();
21	
22	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
23	TS_MANAGE_CHANNEL_OPEN();
24	
25	curLogicChannel = 1;
26	
27	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
28	TS_SELECT("Select ISD",ISD_R_AID,"9000");
29	
30
31	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
32	var disableProRequest = new DisableProfileRequest();
33	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_AIDX);
34	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
35	disableProRequest.GenHexData();
36	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
37	curStrHandle.CheckData("BF3203800101", respData, "DisableProfileResponse");
38	
39	
40  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
41	var proInfoListRequest = new ProfileInfoListRequest();
42	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
43	proInfoListRequest.tagList = "5A4F9F70";
44	proInfoListRequest.GenHexData();
45	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
46	
47
48	var proInfoListResponse = new  ProfileInfoListResponse();
49	proInfoListResponse.checkCardResDataFormat(respData);
50	
51	try
52	{
53		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
54		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
55		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
56	}catch(e){
57		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
58	}
59	
60	RecoverCard();
61	
62}
63
64function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_02_Error_Disable_Profile_by_an_unknown_ICCID()
65{
66	if(!Card_Have_ECC_Cert)
67		return;
68
69	TestOfMEPMode = 0;	
70
71	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
72	var ISD_P_Test01 = curProfile_ISD_P_AID;
73	
74		
75	tracenamestr = "测试目的:通过未知的ICCID去失效profile";
76	curDis.TraceStart(sno++,tracenamestr);
77	
78	curLogicChannel = 0;
79	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
80	Ini_powerOn_eUICC_LPAe_not_activate();
81	
82	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
83	TS_MANAGE_CHANNEL_OPEN();
84	
85	curLogicChannel = 1;
86	
87	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
88	TS_SELECT("Select ISD",ISD_R_AID,"9000");
89	
90
91	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
92	var disableProRequest = new DisableProfileRequest();
93	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROFX);
94	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
95	disableProRequest.GenHexData();
96	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
97	curStrHandle.CheckData("BF3203800101", respData, "DisableProfileResponse");//DisableProfileResponse ::= [50] SEQUENCE { -- Tag 'BF32' disableResult INTEGER {ok(0), iccidOrAidNotFound (1), profileNotInEnabledState(2), disallowedByPolicy(3), catBusy(5), undefinedError(127)} }
98	
99	
100  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
101	var proInfoListRequest = new ProfileInfoListRequest();
102	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
103	proInfoListRequest.tagList = "5A4F9F70";
104	proInfoListRequest.GenHexData();
105	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
106	
107
108	var proInfoListResponse = new  ProfileInfoListResponse();
109	proInfoListResponse.checkCardResDataFormat(respData);
110	
111	try
112	{
113		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
114		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
115		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
116	}catch(e){
117		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
118	}
119	
120	RecoverCard();
121}
122
123function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_03_Error_Disable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state ()
124{	
125    if(!Card_Have_ECC_Cert)
126		return;
127
128	TestOfMEPMode = 0;	
129	
130	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
131	var ISD_P_Test01 = curProfile_ISD_P_AID;
132	
133	tracenamestr = "测试目的:通过ISD-P AID去失效已处于去失效状态的Operational Profile应不成功";
134	curDis.TraceStart(sno++,tracenamestr);
135	
136	curLogicChannel = 0;
137	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
138	Ini_powerOn_eUICC_LPAe_not_activate();
139	
140	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
141	TS_MANAGE_CHANNEL_OPEN();
142	
143	curLogicChannel = 1;
144	
145	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
146	TS_SELECT("Select ISD",ISD_R_AID,"9000");
147	
148
149	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
150
151	var disableProRequest = new DisableProfileRequest();
152	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
153	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
154	disableProRequest.GenHexData();
155	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
156  curStrHandle.CheckData("BF3203800102", respData, "DisableProfileResponse");
157	
158	
159	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
160	var proInfoListRequest = new ProfileInfoListRequest();
161	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
162	proInfoListRequest.tagList = "5A4F9F70";
163	proInfoListRequest.GenHexData();
164	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
165	
166
167	var proInfoListResponse = new  ProfileInfoListResponse();
168	proInfoListResponse.checkCardResDataFormat(respData);
169	
170	try
171	{
172		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
173		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
174		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
175	}catch(e){
176		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
177	}
178	
179	RecoverCard();
180}
181
182function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_04_Error_Disable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state ()
183{	
184    if(!Card_Have_ECC_Cert)
185		return;
186	
187	TestOfMEPMode = 0;	
188	
189	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
190	var ISD_P_Test01 = curProfile_ISD_P_AID;
191	
192	tracenamestr = "测试目的:通过ICCID去失效已处于去失效状态的Operational Profile应不成功";
193	curDis.TraceStart(sno++,tracenamestr);
194	
195	curLogicChannel = 0;
196	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
197	Ini_powerOn_eUICC_LPAe_not_activate();
198	
199	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
200	TS_MANAGE_CHANNEL_OPEN();
201	
202	curLogicChannel = 1;
203	
204	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
205	TS_SELECT("Select ISD",ISD_R_AID,"9000");
206	
207
208	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
209
210	var disableProRequest = new DisableProfileRequest();
211	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
212	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
213	disableProRequest.GenHexData();
214	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
215  curStrHandle.CheckData("BF3203800102", respData, "DisableProfileResponse");
216
217	
218	
219	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
220	var proInfoListRequest = new ProfileInfoListRequest();
221	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
222	proInfoListRequest.tagList = "5A4F9F70";
223	proInfoListRequest.GenHexData();
224	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
225	
226
227	var proInfoListResponse = new  ProfileInfoListResponse();
228	proInfoListResponse.checkCardResDataFormat(respData);
229	
230	try
231	{
232		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
233		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
234		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
235	}catch(e){
236		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
237	}
238	
239	RecoverCard();
240}
241
242function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_05_Error_Disable_Profil_by_ISD_P_AID_not_possible_when_PPR1_is_set ()//
243{
244	if(!Card_Have_ECC_Cert)
245		return;
246	
247	TestOfMEPMode = 0;	
248	
249	initial_condition_PROFILE_OPERATIONAL4_is_Enabled();
250	var ISD_P_Test04 = curProfile_ISD_P_AID;
251	
252	tracenamestr = "测试目的:通过ISD-P AID去失效设置了PPR1的profile应不成功";
253	curDis.TraceStart(sno++,tracenamestr);
254	
255
256	curLogicChannel = 0;
257	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
258	Ini_powerOn_eUICC_LPAe_not_activate();
259	
260	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
261	TS_MANAGE_CHANNEL_OPEN();
262	
263	curLogicChannel = 1;
264	
265	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
266	TS_SELECT("Select ISD",ISD_R_AID,"9000");
267	
268   
269	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
270	var disableProRequest = new DisableProfileRequest();
271	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test04);
272	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
273	disableProRequest.GenHexData();
274	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
275	curStrHandle.CheckData("BF3203800103", respData, "DisableProfileResponse");
276	
277
278  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取所有profile信息;");
279	var proInfoListRequest = new ProfileInfoListRequest();
280	proInfoListRequest.GenHexData();
281	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
282	
283	var proInfoListResponse = new  ProfileInfoListResponse();
284	proInfoListResponse.checkCardResDataFormat(respData);
285	try
286	{
287		
288		curStrHandle.CheckData(ICCID_OP_PROF4, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
289		curStrHandle.CheckData(ISD_P_Test04, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
290		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
291		
292	}catch(e){
293		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
294	}
295	
296	RecoverCard();
297	
298	
299}
300
301function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_06_Error_Disable_Profil_by_ICCID_not_possible_when_PPR1_is_set ()//
302{
303	if(!Card_Have_ECC_Cert)
304		return;
305	
306	TestOfMEPMode = 0;	
307	
308	initial_condition_PROFILE_OPERATIONAL4_is_Enabled();
309	var ISD_P_Test04 = curProfile_ISD_P_AID;
310	
311	tracenamestr = "测试目的:通过ICCID去失效设置了PPR1的profile应不成功";
312	curDis.TraceStart(sno++,tracenamestr);
313	
314
315	curLogicChannel = 0;
316	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
317	Ini_powerOn_eUICC_LPAe_not_activate();
318	
319	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
320	TS_MANAGE_CHANNEL_OPEN();
321	
322	curLogicChannel = 1;
323	
324	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
325	TS_SELECT("Select ISD",ISD_R_AID,"9000");
326	
327
328	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
329	var disableProRequest = new DisableProfileRequest();
330	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF4);
331	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
332	disableProRequest.GenHexData();
333	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
334	curStrHandle.CheckData("BF3203800103", respData, "DisableProfileResponse");
335
336
337  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取所有profile信息;");
338	var proInfoListRequest = new ProfileInfoListRequest();
339	proInfoListRequest.GenHexData();
340	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
341	
342	var proInfoListResponse = new  ProfileInfoListResponse();
343	proInfoListResponse.checkCardResDataFormat(respData);
344
345	
346	try
347	{
348		
349		curStrHandle.CheckData(ICCID_OP_PROF4, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
350		curStrHandle.CheckData(ISD_P_Test04, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
351		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
352		
353	}catch(e){
354		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
355	}
356	
357	RecoverCard();
358	
359	
360}
361
362function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_07_Error_Disable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusysupported()
363{
364	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
365	var ISD_P_Test01 = curProfile_ISD_P_AID;
366	
367	tracenamestr = "测试目的:eUICC支持catBusy,主动式会话进行中时,通过ISD-P AID去失效profile,不设置refreshFlag";
368	curDis.TraceStart(sno++,tracenamestr);
369	
370	curLogicChannel = 0;
371	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
372	Ini_powerOn_eUICC_LPAe_not_activate();
373	
374	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
375	TS_MANAGE_CHANNEL_OPEN();
376	
377	curLogicChannel = 1;
378	
379	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
380	TS_SELECT("Select ISD",ISD_R_AID,"9000");
381	
382	curLogicChannel = 0;
383	var sSendType = SendTypeByOTA.SMS;
384	KIC = MNO_SCP80_ENC_KEY;
385	KID = MNO_SCP80_AUTH_KEY;
386	KIK = MNO_SCP80_DATA_ENC_KEY;
387	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
388	sAPDU = "80F28002024F0000";
389	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
390	HaveReEntry91XX = true;
391	var ss = obj.GetState();
392	ReEntry91XXLength = ss.substr(2,2);
393	
394	curLogicChannel = 1;
395	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,当前有主动式命令正在进行,通过ISD-P失效profile指令不带有refreshFlag,应当失败;");
396	var disableProRequest = new DisableProfileRequest();
397	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
398	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
399	disableProRequest.GenHexData();
400	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
401	
402	curStrHandle.CheckData("BF3203800105", respData, "DisableProfileResponse");
403	
404	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
405	curLogicChannel = 0;
406	CardSendMessageToServer(sSendType,1,"0161XX","00");
407
408	curDis.TestStepStart2(stno++,"SCP80,发送Terminal Response");
409	TerminalResponse("00","9000");
410	HaveReEntry91XX = false;
411	
412	curLogicChannel = 1;
413	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
414	var proInfoListRequest = new ProfileInfoListRequest();
415	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.isdpAid,ISD_P_Test01);
416	proInfoListRequest.tagList = "5A4F9F70";
417	proInfoListRequest.GenHexData();
418	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
419	
420	var proInfoListResponse = new  ProfileInfoListResponse();
421	proInfoListResponse.checkCardResDataFormat(respData);
422	
423	try
424	{
425		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
426		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
427		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
428	}catch(e){
429		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
430	}
431	
432	RecoverCard();
433}
434
435function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_08_Error_Disable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusysupported()
436{
437	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
438	var ISD_P_Test01 = curProfile_ISD_P_AID;
439	
440	tracenamestr = "测试目的:eUICC支持catBusy,主动式会话进行中时,通过ICCID去失效profile,并设置refreshFlag";
441	curDis.TraceStart(sno++,tracenamestr);
442	
443	curLogicChannel = 0;
444	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
445	Ini_powerOn_eUICC_LPAe_not_activate();
446	
447	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
448	TS_MANAGE_CHANNEL_OPEN();
449	
450	curLogicChannel = 1;
451	
452	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
453	TS_SELECT("Select ISD",ISD_R_AID,"9000");
454	
455	curLogicChannel = 0;
456	var sSendType = SendTypeByOTA.SMS;
457	KIC = MNO_SCP80_ENC_KEY;
458	KID = MNO_SCP80_AUTH_KEY;
459	KIK = MNO_SCP80_DATA_ENC_KEY;
460	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
461	sAPDU = "80F28002024F0000";
462	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
463	HaveReEntry91XX = true;
464	var ss = obj.GetState();
465	ReEntry91XXLength = ss.substr(2,2);
466	
467	curLogicChannel = 1;
468	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,当前有主动式命令正在进行,通过ICCID失效profile指令不带有refreshFlag,应当失败;");
469	var disableProRequest = new DisableProfileRequest();
470	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
471	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
472	disableProRequest.GenHexData();
473	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
474	
475	curStrHandle.CheckData("BF3203800105", respData, "DisableProfileResponse");//catBusy(5)
476	
477	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
478	curLogicChannel = 0;
479	CardSendMessageToServer(sSendType,1,"0161XX","00");
480
481	curDis.TestStepStart2(stno++,"SCP80,发送Terminal Response");
482	TerminalResponse("00","9000");
483	HaveReEntry91XX = false;
484	
485	curLogicChannel = 1;
486	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
487	var proInfoListRequest = new ProfileInfoListRequest();
488	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
489	proInfoListRequest.tagList = "5A4F9F70";
490	proInfoListRequest.GenHexData();
491	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
492	
493	var proInfoListResponse = new  ProfileInfoListResponse();
494	proInfoListResponse.checkCardResDataFormat(respData);
495	
496	try
497	{
498		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
499		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
500		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
501	}catch(e){
502		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
503	}
504	
505	
506	RecoverCard();
507}
508
-cas 盲生成TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4/Import/TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4.js305 行 / 26610 字符 / gb18030入口函数 @L31
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DisableProfile_ErrorCases_Case4,Test Sequence #01 unknown ISD-P AID; #02 unknown ICCID; #03 disable when Disabled (ISD-P AID); #04 disable when Disabled (ICCID); #05 PPR1 set (ISD-P AID); #06 PPR1 set (ICCID); #07 catBusy refreshFlag not set; #08 catBusy refreshFlag set,适用性 M。
4// Test points: S1-C1 SW;S1-C2 disableResult iccidOrAidNotFound;S2-C1 SW
5//   S2-C2 contains PROFILE_INFO1;S2-C3 contains entries1 iccid 989209012143658709F5;S3-C1 SW
6//   S3-C2 disableResult iccidOrAidNotFound;S4-C1 SW;S4-C2 contains PROFILE_INFO1
7//   S4-C3 contains entries1 iccid 989209012143658709F5;S5-C1 SW
8//   S5-C2 disableResult profileNotInEnabledState;S6-C1 SW;S6-C2 contains PROFILE_INFO1_DISABLED
9//   S6-C3 contains entries1 iccid 989209012143658709F5;S7-C1 SW
10//   S7-C2 disableResult profileNotInEnabledState;S8-C1 SW;S8-C2 contains PROFILE_INFO1_DISABLED
11//   S8-C3 contains entries1 iccid 989209012143658709F5;S9-C1 SW
12//   S9-C2 disableResult disallowedByPolicy;S10-C1 SW;S10-C2 contains PROFILE_INFO4_ENABLED
13//   S10-C3 contains entries1 iccid 989209015476981032F9;S11-C1 SW
14//   S11-C2 disableResult disallowedByPolicy;S12-C1 SW;S12-C2 contains PROFILE_INFO4_ENABLED
15//   S12-C3 contains entries1 iccid 989209015476981032F9;S13-C1 SW in 9000/91XX
16//   S13-C2 disableResult catBusy;S14-C1 proactive command envelope;S15-C1 SW;S16-C1 SW
17//   S16-C2 contains PROFILE_INFO1;S16-C3 contains entries1 iccid 989209012143658709F5
18//   S17-C1 SW in 9000/91XX;S17-C2 disableResult catBusy;S18-C1 proactive command envelope;S19-C1 SW
19//   S20-C1 SW;S20-C2 contains PROFILE_INFO1;S20-C3 contains entries1 iccid 989209012143658709F5
20// 本函数由 CaseIR 4.2.22.2.4 编译生成(fullwave-blindgen-live-70-W1-A3,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
21// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
22// 适用性 M:编译期门,运行时由 harness 环境前置承担。
23// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
24// GIC1 The PROFILE_OPERATIONAL1 has been installed on the eUICC.(Seq#5/#6 以 'PROFILE_OPERATIONAL1 is not loaded' 覆盖本条): declared unexpanded (no fabricated bytes; provenance = expansion_source).
25// Seq01-IC PROFILE_OPERATIONAL1 is Enabled; corresponds to <ISD_P_AID1>; the Operational Profile identified by <ISD_P_AIDX> is not loaded. IC1=PROC_EUICC_INITIALIZATION_SEQUENCE; IC2=PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
26// Seq02-IC PROFILE_OPERATIONAL1 is Enabled; the Operational Profile identified by ICCID #ICCID_OP_PROFX is not loaded. IC1/IC2 同上。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
27// Seq03/04-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC(Seq03 另记 corresponds to <ISD_P_AID1>)。IC1/IC2 同上。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
28// Seq05/06-IC PROFILE_OPERATIONAL1 is not loaded(覆盖 GIC);PROFILE_OPERATIONAL4 installed and Enabled(Seq05 另记 corresponds to <ISD_P_AID4>)。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
29// Seq07/08-IC PROFILE_OPERATIONAL1 is Enabled(Seq07 另记 corresponds to <ISD_P_AID1>);IC3: S_Device → eUICC MTD_SEND_SMS_PP([GET_MNO_SD]) → SW=0x91XX(开启 proactive session);IC4: Do not send FETCH command。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
30// PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (no fabricated bytes; provenance = expansion_source).
31function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_02_03_04_05_06_07_08_merged() {
32    var bind = curBind;
33    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_02_03_04_05_06_07_08_merged");
34    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/38-38/G_annexB_dynamic:L51"}
35    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});
36    // runtime-bound payload: ISD_P_AID4 stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/1-1/G_annexB_dynamic:L52"}
37    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID4", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
38    // runtime-bound payload: ISD_P_AIDX stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/1-1/G_annexB_dynamic:L55"}
39    var cardCtxLoad3 = BindCardContext.load(bind, profileAidSession, "ISD_P_AIDX", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
40
41    // 步骤 1:MTD_STORE_DATA(tc_step)
42    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
43    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
44
45    // 步骤 2:Seq#01 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
46    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
47    // runtime-bound payload: ISD_P_AIDX stays in execution domain
48    var s2 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
49    bind.checkData("S1-C1 SW", "9000", s2.sw);
50    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s2.cmd, profileAidSession);
51    var r2w2 = BindGecaProc.parseGecaResponse(s2.resp, {outer: "BF32", required: ["80"]});
52    bind.checkData("S1-C2 disableResult iccidOrAidNotFound", "01", (r2w2.ok && r2w2.fields["80"] === "01") ? "01" : (r2w2.fields["80"] || "absent"));
53
54    // 步骤 3:Seq#01 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
55    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
56    // runtime-bound payload: ISD_P_AID1 stays in execution domain
57    var s3 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
58    bind.checkData("S2-C1 SW", "9000", s3.sw);
59    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s3.cmd, profileAidSession);
60    var r2p3 = BindEs10xProcProfile.walkChoiceList(s3.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
61    var r2has3_0 = false;
62    for (var r2i3_0 = 0; r2i3_0 < r2p3.elements.length; r2i3_0++) {
63        var f = r2p3.elements[r2i3_0].fields;
64        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has3_0 = true; break; }
65    }
66    bind.checkData("S2-C2 contains PROFILE_INFO1", "1", (r2p3.branch_tag === "A0" && r2has3_0) ? "1" : "0");
67    var r2has3_0 = false;
68    for (var r2i3_0 = 0; r2i3_0 < r2p3.elements.length; r2i3_0++) {
69        var f = r2p3.elements[r2i3_0].fields;
70        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has3_0 = true; break; }
71    }
72    bind.checkData("S2-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p3.branch_tag === "A0" && r2has3_0) ? "1" : "0");
73
74    // 步骤 4:Seq#02 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
75    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
76    var s4 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A9892090143658709FFFF0101FF", "00", "9000");
77    bind.checkData("S3-C1 SW", "9000", s4.sw);
78    var r2w4 = BindGecaProc.parseGecaResponse(s4.resp, {outer: "BF32", required: ["80"]});
79    bind.checkData("S3-C2 disableResult iccidOrAidNotFound", "01", (r2w4.ok && r2w4.fields["80"] === "01") ? "01" : (r2w4.fields["80"] || "absent"));
80
81    // 步骤 5:Seq#02 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
82    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
83    var s5 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
84    bind.checkData("S4-C1 SW", "9000", s5.sw);
85    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
86    var r2has5_0 = false;
87    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
88        var f = r2p5.elements[r2i5_0].fields;
89        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has5_0 = true; break; }
90    }
91    bind.checkData("S4-C2 contains PROFILE_INFO1", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
92    var r2has5_0 = false;
93    for (var r2i5_0 = 0; r2i5_0 < r2p5.elements.length; r2i5_0++) {
94        var f = r2p5.elements[r2i5_0].fields;
95        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has5_0 = true; break; }
96    }
97    bind.checkData("S4-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
98
99    // 步骤 6:Seq#03 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
100    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
101    // runtime-bound payload: ISD_P_AID1 stays in execution domain
102    var s6 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
103    bind.checkData("S5-C1 SW", "9000", s6.sw);
104    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s6.cmd, profileAidSession);
105    var r2w6 = BindGecaProc.parseGecaResponse(s6.resp, {outer: "BF32", required: ["80"]});
106    bind.checkData("S5-C2 disableResult profileNotInEnabledState", "02", (r2w6.ok && r2w6.fields["80"] === "02") ? "02" : (r2w6.fields["80"] || "absent"));
107    // S5-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
108    // S5-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
109
110    // 步骤 7:Seq#03 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
111    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
112    // runtime-bound payload: ISD_P_AID1 stays in execution domain
113    var s7 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
114    bind.checkData("S6-C1 SW", "9000", s7.sw);
115    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s7.cmd, profileAidSession);
116    var r2p7 = BindEs10xProcProfile.walkChoiceList(s7.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
117    var r2has7_0 = false;
118    for (var r2i7_0 = 0; r2i7_0 < r2p7.elements.length; r2i7_0++) {
119        var f = r2p7.elements[r2i7_0].fields;
120        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has7_0 = true; break; }
121    }
122    bind.checkData("S6-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p7.branch_tag === "A0" && r2has7_0) ? "1" : "0");
123    var r2has7_0 = false;
124    for (var r2i7_0 = 0; r2i7_0 < r2p7.elements.length; r2i7_0++) {
125        var f = r2p7.elements[r2i7_0].fields;
126        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has7_0 = true; break; }
127    }
128    bind.checkData("S6-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p7.branch_tag === "A0" && r2has7_0) ? "1" : "0");
129
130    // 步骤 8:Seq#04 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
131    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
132    var s8 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209012143658709F50101FF", "00", "9000");
133    bind.checkData("S7-C1 SW", "9000", s8.sw);
134    var r2w8 = BindGecaProc.parseGecaResponse(s8.resp, {outer: "BF32", required: ["80"]});
135    bind.checkData("S7-C2 disableResult profileNotInEnabledState", "02", (r2w8.ok && r2w8.fields["80"] === "02") ? "02" : (r2w8.fields["80"] || "absent"));
136    // S7-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
137    // S7-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
138
139    // 步骤 9:Seq#04 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
140    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
141    var s9 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
142    bind.checkData("S8-C1 SW", "9000", s9.sw);
143    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
144    var r2has9_0 = false;
145    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
146        var f = r2p9.elements[r2i9_0].fields;
147        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
148    }
149    bind.checkData("S8-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
150    var r2has9_0 = false;
151    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
152        var f = r2p9.elements[r2i9_0].fields;
153        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
154    }
155    bind.checkData("S8-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
156
157    // 步骤 10:Seq#05 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150, RQ57_141, RQ57_142, RQ29_002, RQ29_022)
158    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
159    // runtime-bound payload: ISD_P_AID4 stays in execution domain
160    var s10 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID4", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
161    bind.checkData("S9-C1 SW", "9000", s10.sw);
162    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID4", s10.cmd, profileAidSession);
163    var r2w10 = BindGecaProc.parseGecaResponse(s10.resp, {outer: "BF32", required: ["80"]});
164    bind.checkData("S9-C2 disableResult disallowedByPolicy", "03", (r2w10.ok && r2w10.fields["80"] === "03") ? "03" : (r2w10.fields["80"] || "absent"));
165    // S9-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
166    // S9-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
167
168    // 步骤 11:Seq#05 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
169    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
170    // runtime-bound payload: ISD_P_AID4 stays in execution domain
171    var s11 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID4", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
172    bind.checkData("S10-C1 SW", "9000", s11.sw);
173    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID4", s11.cmd, profileAidSession);
174    var r2p11 = BindEs10xProcProfile.walkChoiceList(s11.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
175    var r2has11_0 = false;
176    for (var r2i11_0 = 0; r2i11_0 < r2p11.elements.length; r2i11_0++) {
177        var f = r2p11.elements[r2i11_0].fields;
178        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_0 = true; break; }
179    }
180    bind.checkData("S10-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
181    var r2has11_0 = false;
182    for (var r2i11_0 = 0; r2i11_0 < r2p11.elements.length; r2i11_0++) {
183        var f = r2p11.elements[r2i11_0].fields;
184        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_0 = true; break; }
185    }
186    bind.checkData("S10-C3 contains entries1 iccid 989209015476981032F9", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
187
188    // 步骤 12:Seq#06 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150, RQ29_002, RQ29_022)
189    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
190    var s12 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209015476981032F90101FF", "00", "9000");
191    bind.checkData("S11-C1 SW", "9000", s12.sw);
192    var r2w12 = BindGecaProc.parseGecaResponse(s12.resp, {outer: "BF32", required: ["80"]});
193    bind.checkData("S11-C2 disableResult disallowedByPolicy", "03", (r2w12.ok && r2w12.fields["80"] === "03") ? "03" : (r2w12.fields["80"] || "absent"));
194    // S11-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
195    // S11-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
196
197    // 步骤 13:Seq#06 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
198    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
199    var s13 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209015476981032F9", "00", "9000");
200    bind.checkData("S12-C1 SW", "9000", s13.sw);
201    var r2p13 = BindEs10xProcProfile.walkChoiceList(s13.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
202    var r2has13_0 = false;
203    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
204        var f = r2p13.elements[r2i13_0].fields;
205        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_0 = true; break; }
206    }
207    bind.checkData("S12-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
208    var r2has13_0 = false;
209    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
210        var f = r2p13.elements[r2i13_0].fields;
211        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_0 = true; break; }
212    }
213    bind.checkData("S12-C3 contains entries1 iccid 989209015476981032F9", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
214
215    // 步骤 14:Seq#07 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_142)
216    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
217    // runtime-bound payload: ISD_P_AID1 stays in execution domain
218    var s14 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "010100", profileAidSession), "00", null);
219    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s14.cmd, profileAidSession);
220    bind.checkData("S13-C1 SW in 9000/91XX", "1", (s14.sw === "9000" || (s14.sw.substring(0, 2) === "91")) ? "1" : "0");
221    var r2w14 = BindGecaProc.parseGecaResponse(s14.resp, {outer: "BF32", required: ["80"]});
222    bind.checkData("S13-C2 disableResult catBusy", "05", (r2w14.ok && r2w14.fields["80"] === "05") ? "05" : (r2w14.fields["80"] || "absent"));
223    // S13-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
224    // S13-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
225
226    // 步骤 15:Seq#07 Step2] FETCH 'XX'(tc_step)
227    // FETCH header literals follow the golden wire evidence 8012 (same
228    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
229    // gives mechanism only). Le = pending length from the last 91XX
230    // (chain rule, binding-internal state).
231    var s15 = bind.fetchPending("80", "12", "00", "00", null);
232    bind.checkData("S14-C1 proactive command envelope", "1", (s15.resp.length >= 4 && s15.resp.substring(0, 2) === "D0") ? "1" : "0");
233    // S14-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
234
235    // 步骤 16:Seq#07 Step3] TERMINAL RESPONSE(tc_step)
236    // TERMINAL RESPONSE data is dynamically built by the binding from the
237    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
238    // Header literals follow the golden wire evidence 8014.
239    var s16 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
240    bind.checkData("S15-C1 SW", "9000", s16.sw);
241
242    // 步骤 17:Seq#07 Step4] MTD_STORE_DATA(tc_step)
243    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
244    // runtime-bound payload: ISD_P_AID1 stays in execution domain
245    var s17 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
246    bind.checkData("S16-C1 SW", "9000", s17.sw);
247    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s17.cmd, profileAidSession);
248    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
249    var r2has17_0 = false;
250    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
251        var f = r2p17.elements[r2i17_0].fields;
252        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has17_0 = true; break; }
253    }
254    bind.checkData("S16-C2 contains PROFILE_INFO1", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
255    var r2has17_0 = false;
256    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
257        var f = r2p17.elements[r2i17_0].fields;
258        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has17_0 = true; break; }
259    }
260    bind.checkData("S16-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
261
262    // 步骤 18:Seq#08 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_142_10)
263    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
264    var s18 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209012143658709F50101FF", "00", null);
265    bind.checkData("S17-C1 SW in 9000/91XX", "1", (s18.sw === "9000" || (s18.sw.substring(0, 2) === "91")) ? "1" : "0");
266    var r2w18 = BindGecaProc.parseGecaResponse(s18.resp, {outer: "BF32", required: ["80"]});
267    bind.checkData("S17-C2 disableResult catBusy", "05", (r2w18.ok && r2w18.fields["80"] === "05") ? "05" : (r2w18.fields["80"] || "absent"));
268    // S17-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
269    // S17-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
270
271    // 步骤 19:Seq#08 Step2] FETCH 'XX'(tc_step)
272    // FETCH header literals follow the golden wire evidence 8012 (same
273    // anchor as runToSteadyState; J Annex D.4 has no FETCH row, D 2.2.2
274    // gives mechanism only). Le = pending length from the last 91XX
275    // (chain rule, binding-internal state).
276    var s19 = bind.fetchPending("80", "12", "00", "00", null);
277    bind.checkData("S18-C1 proactive command envelope", "1", (s19.resp.length >= 4 && s19.resp.substring(0, 2) === "D0") ? "1" : "0");
278    // S18-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
279
280    // 步骤 20:Seq#08 Step3] TERMINAL RESPONSE(tc_step)
281    // TERMINAL RESPONSE data is dynamically built by the binding from the
282    // last FETCHed proactive command (D 2.2.2; buildTrData) - never static.
283    // Header literals follow the golden wire evidence 8014.
284    var s20 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
285    bind.checkData("S19-C1 SW", "9000", s20.sw);
286
287    // 步骤 21:Seq#08 Step4] MTD_STORE_DATA(tc_step)
288    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
289    var s21 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
290    bind.checkData("S20-C1 SW", "9000", s21.sw);
291    var r2p21 = BindEs10xProcProfile.walkChoiceList(s21.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
292    var r2has21_0 = false;
293    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
294        var f = r2p21.elements[r2i21_0].fields;
295        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has21_0 = true; break; }
296    }
297    bind.checkData("S20-C2 contains PROFILE_INFO1", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
298    var r2has21_0 = false;
299    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
300        var f = r2p21.elements[r2i21_0].fields;
301        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has21_0 = true; break; }
302    }
303    bind.checkData("S20-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
304}
305

完整 unified diff

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

展开 diff(814 行)
--- -man
+++ -cas
@@ -1,508 +1,305 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_Error_Disable_Profile_by_an_unknown_ISD_P_AID + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_02_Error_Disable_Profile_by_an_unknown_ICCID + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_03_Error_Disable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_04_Error_Disable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_05_Error_Disable_Profil_by_ISD_P_AID_not_possible_when_PPR1_is_set + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_06_Error_Disable_Profil_by_ICCID_not_possible_when_PPR1_is_set + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_07_Error_Disable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusysupported + TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_08_Error_Disable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusysupported (extracted verbatim)
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_Error_Disable_Profile_by_an_unknown_ISD_P_AID()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_AIDX);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3203800101", respData, "DisableProfileResponse");
-	
-	
-  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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_02_Error_Disable_Profile_by_an_unknown_ICCID()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROFX);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3203800101", respData, "DisableProfileResponse");//DisableProfileResponse ::= [50] SEQUENCE { -- Tag 'BF32' disableResult INTEGER {ok(0), iccidOrAidNotFound (1), profileNotInEnabledState(2), disallowedByPolicy(3), catBusy(5), undefinedError(127)} }
-	
-	
-  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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_03_Error_Disable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state ()
-{	
-    if(!Card_Have_ECC_Cert)
-		return;
-
-	TestOfMEPMode = 0;	
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ISD-P AID去失效已处于去失效状态的Operational 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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-  curStrHandle.CheckData("BF3203800102", respData, "DisableProfileResponse");
-	
-	
-	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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_04_Error_Disable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Disabled_state ()
-{	
-    if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ICCID去失效已处于去失效状态的Operational 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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-  curStrHandle.CheckData("BF3203800102", respData, "DisableProfileResponse");
-
-	
-	
-	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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_05_Error_Disable_Profil_by_ISD_P_AID_not_possible_when_PPR1_is_set ()//
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-	
-	initial_condition_PROFILE_OPERATIONAL4_is_Enabled();
-	var ISD_P_Test04 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ISD-P AID去失效设置了PPR1的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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test04);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3203800103", respData, "DisableProfileResponse");
-	
-
-  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取所有profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	try
-	{
-		
-		curStrHandle.CheckData(ICCID_OP_PROF4, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test04, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-	
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_06_Error_Disable_Profil_by_ICCID_not_possible_when_PPR1_is_set ()//
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-	
-	initial_condition_PROFILE_OPERATIONAL4_is_Enabled();
-	var ISD_P_Test04 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:通过ICCID去失效设置了PPR1的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命令,执行DisableProfileRequest,refreshFlag为 TRUE;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF4);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3203800103", respData, "DisableProfileResponse");
-
-
-  curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取所有profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-
-	
-	try
-	{
-		
-		curStrHandle.CheckData(ICCID_OP_PROF4, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test04, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-	
-	
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_07_Error_Disable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusysupported()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:eUICC支持catBusy,主动式会话进行中时,通过ISD-P AID去失效profile,不设置refreshFlag";
-	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");
-	
-	curLogicChannel = 0;
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-	sAPDU = "80F28002024F0000";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,当前有主动式命令正在进行,通过ISD-P失效profile指令不带有refreshFlag,应当失败;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3203800105", respData, "DisableProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
-	curLogicChannel = 0;
-	CardSendMessageToServer(sSendType,1,"0161XX","00");
-
-	curDis.TestStepStart2(stno++,"SCP80,发送Terminal Response");
-	TerminalResponse("00","9000");
-	HaveReEntry91XX = false;
-	
-	curLogicChannel = 1;
-	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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_08_Error_Disable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusysupported()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:eUICC支持catBusy,主动式会话进行中时,通过ICCID去失效profile,并设置refreshFlag";
-	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");
-	
-	curLogicChannel = 0;
-	var sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	curDis.TestStepStart2(stno++,"SCP80,发送get status命令,使用MNO-SD的tar");
-	sAPDU = "80F28002024F0000";
-	SendMessageToCard_GP(sSendType,"91XX",0,"B20100","12210015",sAPDU);
-	HaveReEntry91XX = true;
-	var ss = obj.GetState();
-	ReEntry91XXLength = ss.substr(2,2);
-	
-	curLogicChannel = 1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DisableProfileRequest,当前有主动式命令正在进行,通过ICCID失效profile指令不带有refreshFlag,应当失败;");
-	var disableProRequest = new DisableProfileRequest();
-	disableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	disableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	disableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(disableProRequest.hexData,"91","00","9000");
-	
-	curStrHandle.CheckData("BF3203800105", respData, "DisableProfileResponse");//catBusy(5)
-	
-	curDis.TestStepStart2(stno++,"SCP80,发送Fetch命令,检查por");
-	curLogicChannel = 0;
-	CardSendMessageToServer(sSendType,1,"0161XX","00");
-
-	curDis.TestStepStart2(stno++,"SCP80,发送Terminal Response");
-	TerminalResponse("00","9000");
-	HaveReEntry91XX = false;
-	
-	curLogicChannel = 1;
-	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(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DisableProfile_ErrorCases_Case4,Test Sequence #01 unknown ISD-P AID; #02 unknown ICCID; #03 disable when Disabled (ISD-P AID); #04 disable when Disabled (ICCID); #05 PPR1 set (ISD-P AID); #06 PPR1 set (ICCID); #07 catBusy refreshFlag not set; #08 catBusy refreshFlag set,适用性 M。
+// Test points: S1-C1 SW;S1-C2 disableResult iccidOrAidNotFound;S2-C1 SW
+//   S2-C2 contains PROFILE_INFO1;S2-C3 contains entries1 iccid 989209012143658709F5;S3-C1 SW
+//   S3-C2 disableResult iccidOrAidNotFound;S4-C1 SW;S4-C2 contains PROFILE_INFO1
+//   S4-C3 contains entries1 iccid 989209012143658709F5;S5-C1 SW
+//   S5-C2 disableResult profileNotInEnabledState;S6-C1 SW;S6-C2 contains PROFILE_INFO1_DISABLED
+//   S6-C3 contains entries1 iccid 989209012143658709F5;S7-C1 SW
+//   S7-C2 disableResult profileNotInEnabledState;S8-C1 SW;S8-C2 contains PROFILE_INFO1_DISABLED
+//   S8-C3 contains entries1 iccid 989209012143658709F5;S9-C1 SW
+//   S9-C2 disableResult disallowedByPolicy;S10-C1 SW;S10-C2 contains PROFILE_INFO4_ENABLED
+//   S10-C3 contains entries1 iccid 989209015476981032F9;S11-C1 SW
+//   S11-C2 disableResult disallowedByPolicy;S12-C1 SW;S12-C2 contains PROFILE_INFO4_ENABLED
+//   S12-C3 contains entries1 iccid 989209015476981032F9;S13-C1 SW in 9000/91XX
+//   S13-C2 disableResult catBusy;S14-C1 proactive command envelope;S15-C1 SW;S16-C1 SW
+//   S16-C2 contains PROFILE_INFO1;S16-C3 contains entries1 iccid 989209012143658709F5
+//   S17-C1 SW in 9000/91XX;S17-C2 disableResult catBusy;S18-C1 proactive command envelope;S19-C1 SW
+//   S20-C1 SW;S20-C2 contains PROFILE_INFO1;S20-C3 contains entries1 iccid 989209012143658709F5
+// 本函数由 CaseIR 4.2.22.2.4 编译生成(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 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
+// GIC1 The PROFILE_OPERATIONAL1 has been installed on the eUICC.(Seq#5/#6 以 'PROFILE_OPERATIONAL1 is not loaded' 覆盖本条): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq01-IC PROFILE_OPERATIONAL1 is Enabled; corresponds to <ISD_P_AID1>; the Operational Profile identified by <ISD_P_AIDX> is not loaded. IC1=PROC_EUICC_INITIALIZATION_SEQUENCE; IC2=PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq02-IC PROFILE_OPERATIONAL1 is Enabled; the Operational Profile identified by ICCID #ICCID_OP_PROFX is not loaded. IC1/IC2 同上。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq03/04-IC PROFILE_OPERATIONAL1 is Disabled on the eUICC(Seq03 另记 corresponds to <ISD_P_AID1>)。IC1/IC2 同上。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq05/06-IC PROFILE_OPERATIONAL1 is not loaded(覆盖 GIC);PROFILE_OPERATIONAL4 installed and Enabled(Seq05 另记 corresponds to <ISD_P_AID4>)。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq07/08-IC PROFILE_OPERATIONAL1 is Enabled(Seq07 另记 corresponds to <ISD_P_AID1>);IC3: S_Device → eUICC MTD_SEND_SMS_PP([GET_MNO_SD]) → SW=0x91XX(开启 proactive session);IC4: Do not send FETCH command。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_02_03_04_05_06_07_08_merged() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DisableProfile_ErrorCases_Case4_01_02_03_04_05_06_07_08_merged");
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/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});
+    // runtime-bound payload: ISD_P_AID4 stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/1-1/G_annexB_dynamic:L52"}
+    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID4", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+    // runtime-bound payload: ISD_P_AIDX stays in execution domain; context_lineage: {"context_id": "f3b0c696af229268", "authority_reference": "E_tc_4222/1-1/G_annexB_dynamic:L55"}
+    var cardCtxLoad3 = BindCardContext.load(bind, profileAidSession, "ISD_P_AIDX", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
+
+    // 步骤 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 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AIDX stays in execution domain
+    var s2 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
+    bind.checkData("S1-C1 SW", "9000", s2.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s2.cmd, profileAidSession);
+    var r2w2 = BindGecaProc.parseGecaResponse(s2.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S1-C2 disableResult iccidOrAidNotFound", "01", (r2w2.ok && r2w2.fields["80"] === "01") ? "01" : (r2w2.fields["80"] || "absent"));
+
+    // 步骤 3:Seq#01 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s3 = bind.sendApdu(null, "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"});
+    var r2has3_0 = false;
+    for (var r2i3_0 = 0; r2i3_0 < r2p3.elements.length; r2i3_0++) {
+        var f = r2p3.elements[r2i3_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has3_0 = true; break; }
+    }
+    bind.checkData("S2-C2 contains PROFILE_INFO1", "1", (r2p3.branch_tag === "A0" && r2has3_0) ? "1" : "0");
+    var r2has3_0 = false;
+    for (var r2i3_0 = 0; r2i3_0 < r2p3.elements.length; r2i3_0++) {
+        var f = r2p3.elements[r2i3_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has3_0 = true; break; }
+    }
+    bind.checkData("S2-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p3.branch_tag === "A0" && r2has3_0) ? "1" : "0");
+
+    // 步骤 4:Seq#02 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s4 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A9892090143658709FFFF0101FF", "00", "9000");
+    bind.checkData("S3-C1 SW", "9000", s4.sw);
+    var r2w4 = BindGecaProc.parseGecaResponse(s4.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S3-C2 disableResult iccidOrAidNotFound", "01", (r2w4.ok && r2w4.fields["80"] === "01") ? "01" : (r2w4.fields["80"] || "absent"));
+
+    // 步骤 5:Seq#02 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <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("S4-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"] === "01") { r2has5_0 = true; break; }
+    }
+    bind.checkData("S4-C2 contains PROFILE_INFO1", "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" && f["9F70"] === "01") { r2has5_0 = true; break; }
+    }
+    bind.checkData("S4-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p5.branch_tag === "A0" && r2has5_0) ? "1" : "0");
+
+    // 步骤 6:Seq#03 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s6 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
+    bind.checkData("S5-C1 SW", "9000", s6.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s6.cmd, profileAidSession);
+    var r2w6 = BindGecaProc.parseGecaResponse(s6.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S5-C2 disableResult profileNotInEnabledState", "02", (r2w6.ok && r2w6.fields["80"] === "02") ? "02" : (r2w6.fields["80"] || "absent"));
+    // S5-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S5-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 7:Seq#03 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s7 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S6-C1 SW", "9000", s7.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s7.cmd, profileAidSession);
+    var r2p7 = BindEs10xProcProfile.walkChoiceList(s7.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has7_0 = false;
+    for (var r2i7_0 = 0; r2i7_0 < r2p7.elements.length; r2i7_0++) {
+        var f = r2p7.elements[r2i7_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has7_0 = true; break; }
+    }
+    bind.checkData("S6-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p7.branch_tag === "A0" && r2has7_0) ? "1" : "0");
+    var r2has7_0 = false;
+    for (var r2i7_0 = 0; r2i7_0 < r2p7.elements.length; r2i7_0++) {
+        var f = r2p7.elements[r2i7_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has7_0 = true; break; }
+    }
+    bind.checkData("S6-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p7.branch_tag === "A0" && r2has7_0) ? "1" : "0");
+
+    // 步骤 8:Seq#04 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s8 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209012143658709F50101FF", "00", "9000");
+    bind.checkData("S7-C1 SW", "9000", s8.sw);
+    var r2w8 = BindGecaProc.parseGecaResponse(s8.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S7-C2 disableResult profileNotInEnabledState", "02", (r2w8.ok && r2w8.fields["80"] === "02") ? "02" : (r2w8.fields["80"] || "absent"));
+    // S7-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S7-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 9:Seq#04 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s9 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s9.sw);
+    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has9_0 = false;
+    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
+        var f = r2p9.elements[r2i9_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
+    }
+    bind.checkData("S8-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
+    var r2has9_0 = false;
+    for (var r2i9_0 = 0; r2i9_0 < r2p9.elements.length; r2i9_0++) {
+        var f = r2p9.elements[r2i9_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "00") { r2has9_0 = true; break; }
+    }
+    bind.checkData("S8-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p9.branch_tag === "A0" && r2has9_0) ? "1" : "0");
+
+    // 步骤 10:Seq#05 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150, RQ57_141, RQ57_142, RQ29_002, RQ29_022)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID4 stays in execution domain
+    var s10 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID4", "BF32154F10", "0101FF", profileAidSession), "00", "9000");
+    bind.checkData("S9-C1 SW", "9000", s10.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID4", s10.cmd, profileAidSession);
+    var r2w10 = BindGecaProc.parseGecaResponse(s10.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S9-C2 disableResult disallowedByPolicy", "03", (r2w10.ok && r2w10.fields["80"] === "03") ? "03" : (r2w10.fields["80"] || "absent"));
+    // S9-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S9-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 11:Seq#05 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID4 stays in execution domain
+    var s11 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID4", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S10-C1 SW", "9000", s11.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID4", s11.cmd, profileAidSession);
+    var r2p11 = BindEs10xProcProfile.walkChoiceList(s11.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has11_0 = false;
+    for (var r2i11_0 = 0; r2i11_0 < r2p11.elements.length; r2i11_0++) {
+        var f = r2p11.elements[r2i11_0].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_0 = true; break; }
+    }
+    bind.checkData("S10-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
+    var r2has11_0 = false;
+    for (var r2i11_0 = 0; r2i11_0 < r2p11.elements.length; r2i11_0++) {
+        var f = r2p11.elements[r2i11_0].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_0 = true; break; }
+    }
+    bind.checkData("S10-C3 contains entries1 iccid 989209015476981032F9", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
+
+    // 步骤 12:Seq#06 Step1] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150, RQ29_002, RQ29_022)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s12 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209015476981032F90101FF", "00", "9000");
+    bind.checkData("S11-C1 SW", "9000", s12.sw);
+    var r2w12 = BindGecaProc.parseGecaResponse(s12.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S11-C2 disableResult disallowedByPolicy", "03", (r2w12.ok && r2w12.fields["80"] === "03") ? "03" : (r2w12.fields["80"] || "absent"));
+    // S11-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S11-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 13:Seq#06 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_031, RQ32_032, RQ32_033, RQ32_034, RQ57_142_2, RQ57_142_3, RQ57_142_4, RQ57_142_15, RQ57_149, RQ57_150)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s13 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209015476981032F9", "00", "9000");
+    bind.checkData("S12-C1 SW", "9000", s13.sw);
+    var r2p13 = BindEs10xProcProfile.walkChoiceList(s13.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has13_0 = false;
+    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
+        var f = r2p13.elements[r2i13_0].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_0 = true; break; }
+    }
+    bind.checkData("S12-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
+    var r2has13_0 = false;
+    for (var r2i13_0 = 0; r2i13_0 < r2p13.elements.length; r2i13_0++) {
+        var f = r2p13.elements[r2i13_0].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_0 = true; break; }
+    }
+    bind.checkData("S12-C3 contains entries1 iccid 989209015476981032F9", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
+
+    // 步骤 14:Seq#07 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_142)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s14 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF32154F10", "010100", profileAidSession), "00", null);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s14.cmd, profileAidSession);
+    bind.checkData("S13-C1 SW in 9000/91XX", "1", (s14.sw === "9000" || (s14.sw.substring(0, 2) === "91")) ? "1" : "0");
+    var r2w14 = BindGecaProc.parseGecaResponse(s14.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S13-C2 disableResult catBusy", "05", (r2w14.ok && r2w14.fields["80"] === "05") ? "05" : (r2w14.fields["80"] || "absent"));
+    // S13-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S13-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 15:Seq#07 Step2] FETCH 'XX'(tc_step)
+    // 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 s15 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S14-C1 proactive command envelope", "1", (s15.resp.length >= 4 && s15.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S14-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+
+    // 步骤 16:Seq#07 Step3] 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 s16 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+    bind.checkData("S15-C1 SW", "9000", s16.sw);
+
+    // 步骤 17:Seq#07 Step4] MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID1 stays in execution domain
+    var s17 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF2D14A0124F10", "", profileAidSession), "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s17.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s17.cmd, profileAidSession);
+    var r2p17 = BindEs10xProcProfile.walkChoiceList(s17.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has17_0 = false;
+    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
+        var f = r2p17.elements[r2i17_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has17_0 = true; break; }
+    }
+    bind.checkData("S16-C2 contains PROFILE_INFO1", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
+    var r2has17_0 = false;
+    for (var r2i17_0 = 0; r2i17_0 < r2p17.elements.length; r2i17_0++) {
+        var f = r2p17.elements[r2i17_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has17_0 = true; break; }
+    }
+    bind.checkData("S16-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p17.branch_tag === "A0" && r2has17_0) ? "1" : "0");
+
+    // 步骤 18:Seq#08 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_142_10)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s18 = bind.sendApdu(null, "E2", "91", "00", "BF320F5A0A989209012143658709F50101FF", "00", null);
+    bind.checkData("S17-C1 SW in 9000/91XX", "1", (s18.sw === "9000" || (s18.sw.substring(0, 2) === "91")) ? "1" : "0");
+    var r2w18 = BindGecaProc.parseGecaResponse(s18.resp, {outer: "BF32", required: ["80"]});
+    bind.checkData("S17-C2 disableResult catBusy", "05", (r2w18.ok && r2w18.fields["80"] === "05") ? "05" : (r2w18.fields["80"] || "absent"));
+    // S17-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S17-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 19:Seq#08 Step2] FETCH 'XX'(tc_step)
+    // 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 s19 = bind.fetchPending("80", "12", "00", "00", null);
+    bind.checkData("S18-C1 proactive command envelope", "1", (s19.resp.length >= 4 && s19.resp.substring(0, 2) === "D0") ? "1" : "0");
+    // S18-C1: REFRESH type/mode bytes are not corpus-fixed (envelope face only; per-mode bytes absent from input).
+
+    // 步骤 20:Seq#08 Step3] 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 s20 = bind.terminalResponseForPending("80", "14", "00", "00", "9000");
+    bind.checkData("S19-C1 SW", "9000", s20.sw);
+
+    // 步骤 21:Seq#08 Step4] 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 s21 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s21.sw);
+    var r2p21 = BindEs10xProcProfile.walkChoiceList(s21.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has21_0 = false;
+    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
+        var f = r2p21.elements[r2i21_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has21_0 = true; break; }
+    }
+    bind.checkData("S20-C2 contains PROFILE_INFO1", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
+    var r2has21_0 = false;
+    for (var r2i21_0 = 0; r2i21_0 < r2p21.elements.length; r2i21_0++) {
+        var f = r2p21.elements[r2i21_0].fields;
+        if (f["5A"] === "989209012143658709F5" && f["9F70"] === "01") { r2has21_0 = true; break; }
+    }
+    bind.checkData("S20-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p21.branch_tag === "A0" && r2has21_0) ? "1" : "0");
 }