eSIM RSP 测试用例对比站

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

源码对照:4.2.21.2.4

ES10c 启用 Profile 异常用例(Case 4) / TC_eUICC_ES10c.EnableProfile_ErrorCases_Case4

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

完整 unified diff

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

展开 diff(946 行)
--- -man
+++ -cas
@@ -1,586 +1,359 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_01_Error_Enable_Profile_by_an_unknown_ISD_P_AID + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_02_Error_Enable_Profile_by_an_unknown_ICCID + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_03_Error_Enable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Enable_state + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_04_Error_Enable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Enable_state + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_05_Error_Enable_Profil_by_ISD_P_AID_not_possible_when_an_Operational_Profile_with_PPR1_is_loaded + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_06_Error_Enable_Profil_ICCID_not_possible_when_an_Operational_Profile_with_PPR1_is_loaded + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_07_Error_Enable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusy_supported + TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_08_Error_Enable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusy_supported (extracted verbatim)
-
-function TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_01_Error_Enable_Profile_by_an_unknown_ISD_P_AID()
-{
-	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激活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命令,执行EnableProfileRequest,refreshFlag为FF(true);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_AIDX);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	
-	
-	curStrHandle.CheckData("BF3103800101", respData, "EnableProfileResponse");//iccidOrAidNotFound
-	
-  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_EnableProfile_ErrorCases_Case4_02_Error_Enable_Profile_by_an_unknown_ICCID()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-  
-	tracenamestr = "测试目的:通过未知的ICCID激活profile";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest,refreshFlag为FF(true);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROFX);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	
-	
-	curStrHandle.CheckData("BF3103800101", respData, "EnableProfileResponse");
-	
-  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_EnableProfile_ErrorCases_Case4_03_Error_Enable_Profile_by_ISD_P_AID_is_not_possible_when_this_Operational_Profile_is_in_Enable_state()
-{	
-  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激活已处于激活状态的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命令,执行EnableProfileRequest,refreshFlag为FF(true);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	
-	
-	curStrHandle.CheckData("BF3103800102", respData, "EnableProfileResponse");
-	
-	
-	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_EnableProfile_ErrorCases_Case4_04_Error_Enable_Profile_by_ICCID_is_not_possible_when_this_Operational_Profile_is_in_Enable_state()
-{	
-  if(!Card_Have_ECC_Cert)
-	return;
-	
-	TestOfMEPMode = 0;	
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled(); 
-	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命令,执行EnableProfileRequest,refreshFlag为FF(true);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	
-	
-	curStrHandle.CheckData("BF3103800102", respData, "EnableProfileResponse");
-	
-	
-	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_EnableProfile_ErrorCases_Case4_05_Error_Enable_Profil_by_ISD_P_AID_not_possible_when_an_Operational_Profile_with_PPR1_is_loaded ()//
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-	TestOfMEPMode = 0;	
-	
-
-	initial_condition_PROFILE_OPERATIONAL4_is_Disabled();
-	var ISD_P_Test04 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	
-	tracenamestr = "测试目的:设置了PPR1的Operational Profile处于激活状态,通过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命令,执行EnableProfileRequest,激活Profile4成功,refreshFlag为FALSE;");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test04);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000/6985");
-	curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");//
-	
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest,激活Profile4成功后激活Profile1失败,refreshFlag为True;");
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test01);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3103800103", respData, "EnableProfileResponse");
-
-  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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-	
-	
-}
-
-function TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_06_Error_Enable_Profil_ICCID_not_possible_when_an_Operational_Profile_with_PPR1_is_loaded ()
-{
-	if(!Card_Have_ECC_Cert)
-	return;
-	
-	TestOfMEPMode = 0;	
-	
-
-	initial_condition_PROFILE_OPERATIONAL4_is_Disabled();
-	var ISD_P_Test04 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-
-	
-	tracenamestr = "测试目的:设置了PPR1的Operational Profile处于激活状态,通过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命令,执行EnableProfileRequest,激活Profile4成功,refreshFlag为FALSE;");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF4);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3103800100", respData, "EnableProfileResponse");//
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest,激活Profile4成功后激活Profile1失败,refreshFlag为FALSE;");
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF1);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","9000");
-	curStrHandle.CheckData("BF3103800103", respData, "EnableProfileResponse");
-	
-
-  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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-	
-	
-}
-
-function TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_07_Error_Enable_Profile_by_ISD_P_AID_without_refreshFlag_while_proactive_session_is_ongoing_catBusy_supported()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-
-	if(check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-		
-	TestOfMEPMode = 0;	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled(); 
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Disabled();
-	var ISD_P_Test02 = 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;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SMS-PP;");
-
-	sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	
-
-	sAPDU = "80F28002024F0000";	
-	
-	SendMessageToCard_GP(sSendType,"91XX",0,MNO_TAR_PROFILE_OPERATIONAL1,"12210015",sAPDU);
-	
-	curLogicChannel=1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest,refreshFlag为false(not set);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.isdpAid,ISD_P_Test02);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_False;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","91XX/9000");
-	
-	
-	curStrHandle.CheckData("BF3103800105", respData, "EnableProfileResponse");
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	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_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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();	
-	
-}
-
-function TC_eUICC_ES10c_EnableProfile_ErrorCases_Case4_08_Error_Enable_Profile_by_ICCID_with_refreshFlag_set_while_proactive_session_is_ongoing_catBusy_supported()
-{
-	if(!Card_Have_ECC_Cert)
-		return;
-	
-
-	if(check_Applicability_of_tests_RSP_SGP23_test("C033"))
-		return;
-		
-	TestOfMEPMode = 0;	
-	initial_condition_PROFILE_OPERATIONAL1_is_Enabled(); 
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Disabled();
-	var ISD_P_Test02 = 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;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SMS-PP;");
-
-	sSendType = SendTypeByOTA.SMS;
-	KIC = MNO_SCP80_ENC_KEY;
-	KID = MNO_SCP80_AUTH_KEY;
-	KIK = MNO_SCP80_DATA_ENC_KEY;
-	
-
-	sAPDU = "80F28002024F0000";	
-	
-	SendMessageToCard_GP(sSendType,"91XX",0,MNO_TAR_PROFILE_OPERATIONAL1,"12210015",sAPDU);
-	
-	curLogicChannel=1;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行EnableProfileRequest,refreshFlag为false(not set);");
-
-	var enableProRequest = new EnableProfileRequest();
-	enableProRequest.profileIdentifier = new ChoiceObj(tagOfProfileIdentifier.iccid,ICCID_OP_PROF2);
-	enableProRequest.refreshFlag = BooleanValue_BerCode_True;
-	enableProRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(enableProRequest.hexData,"91","00","91XX/9000");
-	
-	
-	curStrHandle.CheckData("BF3103800105", respData, "EnableProfileResponse");
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	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_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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].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.EnableProfile_ErrorCases_Case4,Test Sequence #01 unknown ISD-P AID; #02 unknown ICCID; #03 enable when Enabled (ISD-P AID); #04 enable when Enabled (ICCID); #05 PPR1 loaded (ISD-P AID); #06 PPR1 loaded (ICCID); #07 catBusy refreshFlag not set; #08 catBusy refreshFlag set,适用性 M。
+// Test points: S1-C1 SW;S1-C2 enableResult iccidOrAidNotFound;S2-C1 SW
+//   S2-C2 contains PROFILE_INFO1_DISABLED;S2-C3 contains entries1 iccid 989209012143658709F5
+//   S3-C1 SW;S3-C2 enableResult iccidOrAidNotFound;S4-C1 SW;S4-C2 contains PROFILE_INFO1_DISABLED
+//   S4-C3 contains entries1 iccid 989209012143658709F5;S5-C1 SW
+//   S5-C2 enableResult profileNotInDisabledState;S6-C1 SW;S6-C2 contains PROFILE_INFO1
+//   S6-C3 contains entries1 iccid 989209012143658709F5;S7-C1 SW
+//   S7-C2 enableResult profileNotInDisabledState;S8-C1 SW;S8-C2 contains PROFILE_INFO1
+//   S8-C3 contains entries1 iccid 989209012143658709F5;S9-C1 SW
+//   S9-C2 enableResult disallowedByPolicy;S10-C1 SW;S10-C2 contains PROFILE_INFO1_DISABLED
+//   S10-C2 contains PROFILE_INFO4_ENABLED;S10-C3 contains entries1 iccid 989209012143658709F5
+//   S10-C3 contains entries2 iccid 989209015476981032F9;S11-C1 SW
+//   S11-C2 enableResult disallowedByPolicy;S12-C1 SW;S12-C2 contains PROFILE_INFO1_DISABLED
+//   S12-C2 contains PROFILE_INFO4_ENABLED;S12-C3 contains entries1 iccid 989209012143658709F5
+//   S12-C3 contains entries2 iccid 989209015476981032F9;S13-C1 SW in 9000/91XX
+//   S13-C2 enableResult catBusy;S14-C1 proactive command envelope;S15-C1 SW;S16-C1 SW
+//   S16-C2 contains PROFILE_INFO1;S16-C2 contains PROFILE_INFO2
+//   S16-C3 contains entries1 iccid 989209012143658709F5
+//   S16-C3 contains entries2 iccid 989209013254769810F9;S17-C1 SW in 9000/91XX
+//   S17-C2 enableResult catBusy;S18-C1 proactive command envelope;S19-C1 SW;S20-C1 SW
+//   S20-C2 contains PROFILE_INFO1;S20-C2 contains PROFILE_INFO2
+//   S20-C3 contains entries1 iccid 989209012143658709F5
+//   S20-C3 contains entries2 iccid 989209013254769810F9
+// 本函数由 CaseIR 4.2.21.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 以各自 IC 'No Profile is installed' 覆盖本条): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq01-IC PROFILE_OPERATIONAL1 is Disabled; PROFILE_OPERATIONAL1 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 Disabled; 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 Enabled on the eUICC(Seq03 另记 PROFILE_OPERATIONAL1 corresponds to <ISD_P_AID1>)。IC1/IC2 同上。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq05/06-IC No Profile is installed on the eUICC(覆盖 GIC);IC3 Install PROFILE_OPERATIONAL4(对应 <ISD_P_AID4>,Seq05 注记);IC4 Install PROFILE_OPERATIONAL1(对应 <ISD_P_AID1>);IC5 Enable PROFILE_OPERATIONAL4。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// Seq07/08-IC PROFILE_OPERATIONAL1 Enabled; PROFILE_OPERATIONAL2 installed and Disabled(Seq07 另记 PROFILE_OPERATIONAL2 corresponds to <ISD_P_AID2>);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_EnableProfile_ErrorCases_Case4_01_02_03_04_05_06_07_08_merged() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_EnableProfile_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": "0d83e94538165550", "authority_reference": "E_tc_4221/40-40/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_AID2 stays in execution domain; context_lineage: {"context_id": "0d83e94538165550", "authority_reference": "E_tc_4221/1-1/G_annexB_dynamic:L52"}
+    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID2", {"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": "0d83e94538165550", "authority_reference": "E_tc_4221/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_011, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_130, RQ57_136, RQ57_137)
+    // <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", "BF31154F10", "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: "BF31", required: ["80"]});
+    bind.checkData("S1-C2 enableResult iccidOrAidNotFound", "01", (r2w2.ok && r2w2.fields["80"] === "01") ? "01" : (r2w2.fields["80"] || "absent"));
+    // S1-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S1-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 3:Seq#01 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_011, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_130, RQ57_136, RQ57_137)
+    // <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"] === "00") { r2has3_0 = true; break; }
+    }
+    bind.checkData("S2-C2 contains PROFILE_INFO1_DISABLED", "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"] === "00") { 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_011, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_130, RQ57_136, RQ57_137)
+    // <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", "BF310F5A0A9892090143658709FFFF0101FF", "00", "9000");
+    bind.checkData("S3-C1 SW", "9000", s4.sw);
+    var r2w4 = BindGecaProc.parseGecaResponse(s4.resp, {outer: "BF31", required: ["80"]});
+    bind.checkData("S3-C2 enableResult iccidOrAidNotFound", "01", (r2w4.ok && r2w4.fields["80"] === "01") ? "01" : (r2w4.fields["80"] || "absent"));
+    // S3-C3: kind 'requirement' pattern '' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S3-C3: binding:requirement_satisfied_by_same_step_result_enum_assertion (check_attestation)
+
+    // 步骤 5:Seq#02 Step2] MTD_STORE_DATA(tc_step;REQ: RQ32_011, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_130, RQ57_136, RQ57_137)
+    // <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"] === "00") { r2has5_0 = true; break; }
+    }
+    bind.checkData("S4-C2 contains PROFILE_INFO1_DISABLED", "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"] === "00") { 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_011, RQ32_012, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_137)
+    // <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", "BF31154F10", "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: "BF31", required: ["80"]});
+    bind.checkData("S5-C2 enableResult profileNotInDisabledState", "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_011, RQ32_012, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_137)
+    // <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"] === "01") { r2has7_0 = true; break; }
+    }
+    bind.checkData("S6-C2 contains PROFILE_INFO1", "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"] === "01") { 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_011, RQ32_012, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_137)
+    // <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", "BF310F5A0A989209012143658709F50101FF", "00", "9000");
+    bind.checkData("S7-C1 SW", "9000", s8.sw);
+    var r2w8 = BindGecaProc.parseGecaResponse(s8.resp, {outer: "BF31", required: ["80"]});
+    bind.checkData("S7-C2 enableResult profileNotInDisabledState", "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_011, RQ32_012, RQ32_016_1, RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_137)
+    // <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"] === "01") { r2has9_0 = true; break; }
+    }
+    bind.checkData("S8-C2 contains PROFILE_INFO1", "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"] === "01") { 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: RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_147)
+    // <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 s10 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID1", "BF31154F10", "0101FF", profileAidSession), "00", "9000");
+    bind.checkData("S9-C1 SW", "9000", s10.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID1", s10.cmd, profileAidSession);
+    var r2w10 = BindGecaProc.parseGecaResponse(s10.resp, {outer: "BF31", required: ["80"]});
+    bind.checkData("S9-C2 enableResult 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: RQ57_127, RQ57_128, RQ57_129)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s11 = bind.sendApdu(null, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S10-C1 SW", "9000", s11.sw);
+    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"] === "989209012143658709F5" && f["9F70"] === "00") { r2has11_0 = true; break; }
+    }
+    bind.checkData("S10-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
+    var r2has11_1 = false;
+    for (var r2i11_1 = 0; r2i11_1 < r2p11.elements.length; r2i11_1++) {
+        var f = r2p11.elements[r2i11_1].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_1 = true; break; }
+    }
+    bind.checkData("S10-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p11.branch_tag === "A0" && r2has11_1) ? "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"] === "989209012143658709F5" && f["9F70"] === "00") { r2has11_0 = true; break; }
+    }
+    bind.checkData("S10-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p11.branch_tag === "A0" && r2has11_0) ? "1" : "0");
+    var r2has11_1 = false;
+    for (var r2i11_1 = 0; r2i11_1 < r2p11.elements.length; r2i11_1++) {
+        var f = r2p11.elements[r2i11_1].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has11_1 = true; break; }
+    }
+    bind.checkData("S10-C3 contains entries2 iccid 989209015476981032F9", "1", (r2p11.branch_tag === "A0" && r2has11_1) ? "1" : "0");
+
+    // 步骤 12:Seq#06 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_127, RQ57_128, RQ57_129, RQ57_136, RQ57_147)
+    // <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", "BF310F5A0A989209012143658709F50101FF", "00", "9000");
+    bind.checkData("S11-C1 SW", "9000", s12.sw);
+    var r2w12 = BindGecaProc.parseGecaResponse(s12.resp, {outer: "BF31", required: ["80"]});
+    bind.checkData("S11-C2 enableResult 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: RQ57_127, RQ57_128, RQ57_129)
+    // <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", "BF2D00", "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"] === "989209012143658709F5" && f["9F70"] === "00") { r2has13_0 = true; break; }
+    }
+    bind.checkData("S12-C2 contains PROFILE_INFO1_DISABLED", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
+    var r2has13_1 = false;
+    for (var r2i13_1 = 0; r2i13_1 < r2p13.elements.length; r2i13_1++) {
+        var f = r2p13.elements[r2i13_1].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_1 = true; break; }
+    }
+    bind.checkData("S12-C2 contains PROFILE_INFO4_ENABLED", "1", (r2p13.branch_tag === "A0" && r2has13_1) ? "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"] === "989209012143658709F5" && f["9F70"] === "00") { r2has13_0 = true; break; }
+    }
+    bind.checkData("S12-C3 contains entries1 iccid 989209012143658709F5", "1", (r2p13.branch_tag === "A0" && r2has13_0) ? "1" : "0");
+    var r2has13_1 = false;
+    for (var r2i13_1 = 0; r2i13_1 < r2p13.elements.length; r2i13_1++) {
+        var f = r2p13.elements[r2i13_1].fields;
+        if (f["5A"] === "989209015476981032F9" && f["9F70"] === "01") { r2has13_1 = true; break; }
+    }
+    bind.checkData("S12-C3 contains entries2 iccid 989209015476981032F9", "1", (r2p13.branch_tag === "A0" && r2has13_1) ? "1" : "0");
+
+    // 步骤 14:Seq#07 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_127_1)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    // runtime-bound payload: ISD_P_AID2 stays in execution domain
+    var s14 = bind.sendApdu(null, "E2", "91", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID2", "BF31154F10", "010100", profileAidSession), "00", null);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID2", 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: "BF31", required: ["80"]});
+    bind.checkData("S13-C2 enableResult 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).
+    var s17 = bind.sendApdu(null, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s17.sw);
+    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_1 = false;
+    for (var r2i17_1 = 0; r2i17_1 < r2p17.elements.length; r2i17_1++) {
+        var f = r2p17.elements[r2i17_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "00") { r2has17_1 = true; break; }
+    }
+    bind.checkData("S16-C2 contains PROFILE_INFO2", "1", (r2p17.branch_tag === "A0" && r2has17_1) ? "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");
+    var r2has17_1 = false;
+    for (var r2i17_1 = 0; r2i17_1 < r2p17.elements.length; r2i17_1++) {
+        var f = r2p17.elements[r2i17_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "00") { r2has17_1 = true; break; }
+    }
+    bind.checkData("S16-C3 contains entries2 iccid 989209013254769810F9", "1", (r2p17.branch_tag === "A0" && r2has17_1) ? "1" : "0");
+
+    // 步骤 18:Seq#08 Step1] MTD_STORE_DATA(tc_step;REQ: RQ57_133_1)
+    // <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", "BF310F5A0A989209013254769810F90101FF", "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: "BF31", required: ["80"]});
+    bind.checkData("S17-C2 enableResult 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", "BF2D00", "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_1 = false;
+    for (var r2i21_1 = 0; r2i21_1 < r2p21.elements.length; r2i21_1++) {
+        var f = r2p21.elements[r2i21_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "00") { r2has21_1 = true; break; }
+    }
+    bind.checkData("S20-C2 contains PROFILE_INFO2", "1", (r2p21.branch_tag === "A0" && r2has21_1) ? "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");
+    var r2has21_1 = false;
+    for (var r2i21_1 = 0; r2i21_1 < r2p21.elements.length; r2i21_1++) {
+        var f = r2p21.elements[r2i21_1].fields;
+        if (f["5A"] === "989209013254769810F9" && f["9F70"] === "00") { r2has21_1 = true; break; }
+    }
+    bind.checkData("S20-C3 contains entries2 iccid 989209013254769810F9", "1", (r2p21.branch_tag === "A0" && r2has21_1) ? "1" : "0");
 }