eSIM RSP 测试用例对比站

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

源码对照:4.2.23.2.2

ES10c 删除 Profile 异常用例(Case 3) / TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case3

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
386 行 / 17670 字符 / gb18030
-cas 入口
TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3/Import/TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3.js
215 行 / 18777 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js386 行 / 17670 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_02_Delete_Profile_not_possible_with_unknown_ICCID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set (extracted verbatim)
2
3function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID()
4{
5	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
6	var ISD_P_Test01 = curProfile_ISD_P_AID;
7	
8	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
9	var ISD_P_Test02 = curProfile_ISD_P_AID;
10
11	tracenamestr = "测试目的:通过未知的ISD-P AID删除profile应不成功";
12	curDis.TraceStart(sno++,tracenamestr);
13	
14	curLogicChannel = 0;
15	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
16	Ini_powerOn_eUICC_LPAe_not_activate();
17	
18	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
19	TS_MANAGE_CHANNEL_OPEN();
20	
21	curLogicChannel = 1;
22	
23	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
24	TS_SELECT("Select ISD",ISD_R_AID,"9000");
25	
26	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
27	var deleProfileRequest = new DeleteProfileRequest();
28	deleProfileRequest.isdpAid = ISD_P_AIDX;
29	deleProfileRequest.GenHexData();
30	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6A82");//Case 3指令P1值为90   见SGP.22 5.7.18
31	
32	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
33	
34	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
35	var proInfoListRequest = new ProfileInfoListRequest();
36	proInfoListRequest.tagList = "5A4F9F70";
37	proInfoListRequest.GenHexData();
38	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
39	
40	
41	var proInfoListResponse = new  ProfileInfoListResponse();
42	proInfoListResponse.checkCardResDataFormat(respData);
43	
44	try
45	{
46		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
47		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
48		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
49		
50		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
51		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
52		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
53	}catch(e){
54		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
55	}
56	
57	
58	RecoverCard();
59}
60
61function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_02_Delete_Profile_not_possible_with_unknown_ICCID()
62{
63	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
64	var ISD_P_Test01 = curProfile_ISD_P_AID;
65	
66	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
67	var ISD_P_Test02 = curProfile_ISD_P_AID;
68
69	tracenamestr = "测试目的:通过未知的ICCID删除profile应不成功";
70	curDis.TraceStart(sno++,tracenamestr);
71	
72	curLogicChannel = 0;
73	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
74	Ini_powerOn_eUICC_LPAe_not_activate();
75	
76	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
77	TS_MANAGE_CHANNEL_OPEN();
78	
79	curLogicChannel = 1;
80	
81	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
82	TS_SELECT("Select ISD",ISD_R_AID,"9000");
83	
84	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
85	var deleProfileRequest = new DeleteProfileRequest();
86	deleProfileRequest.iccid = ICCID_OP_PROFX;
87	deleProfileRequest.GenHexData();
88	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6A82");//Case 3指令P1值为90   见SGP.22 5.7.18
89	
90	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
91	
92	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
93	var proInfoListRequest = new ProfileInfoListRequest();
94	proInfoListRequest.tagList = "5A4F9F70";
95	proInfoListRequest.GenHexData();
96	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
97	
98	
99	var proInfoListResponse = new  ProfileInfoListResponse();
100	proInfoListResponse.checkCardResDataFormat(respData);
101	
102	try
103	{
104		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
105		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
106		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
107		
108		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
109		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
110		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
111	}catch(e){
112		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
113	}
114	
115	
116	RecoverCard();
117}
118
119function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
120{
121	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
122	var ISD_P_Test01 = curProfile_ISD_P_AID;
123	
124	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
125	var ISD_P_Test02 = curProfile_ISD_P_AID;
126
127	tracenamestr = "测试目的:通过ISD-P AID删除处于激活状态的Operational Profile应不成功";
128	curDis.TraceStart(sno++,tracenamestr);
129	
130	curLogicChannel = 0;
131	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
132	Ini_powerOn_eUICC_LPAe_not_activate();
133	
134	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
135	TS_MANAGE_CHANNEL_OPEN();
136	
137	curLogicChannel = 1;
138	
139	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
140	TS_SELECT("Select ISD",ISD_R_AID,"9000");
141	
142	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
143	var deleProfileRequest = new DeleteProfileRequest();
144	deleProfileRequest.isdpAid = ISD_P_Test02;
145	deleProfileRequest.GenHexData();
146	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
147	
148	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
149	
150	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
151	var proInfoListRequest = new ProfileInfoListRequest();
152	proInfoListRequest.tagList = "5A4F9F70";
153	proInfoListRequest.GenHexData();
154	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
155	
156	
157	var proInfoListResponse = new  ProfileInfoListResponse();
158	proInfoListResponse.checkCardResDataFormat(respData);
159	
160	try
161	{
162		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
163		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
164		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
165		
166		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
167		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
168		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
169	}catch(e){
170		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
171	}
172	
173	
174	RecoverCard();
175}
176
177function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
178{
179	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
180	var ISD_P_Test01 = curProfile_ISD_P_AID;
181	
182	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
183	var ISD_P_Test02 = curProfile_ISD_P_AID;
184
185	tracenamestr = "测试目的:通过ICCID删除处于激活状态的Operational Profile应不成功";
186	curDis.TraceStart(sno++,tracenamestr);
187	
188	curLogicChannel = 0;
189	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
190	Ini_powerOn_eUICC_LPAe_not_activate();
191	
192	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
193	TS_MANAGE_CHANNEL_OPEN();
194	
195	curLogicChannel = 1;
196	
197	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
198	TS_SELECT("Select ISD",ISD_R_AID,"9000");
199	
200	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile;");
201	var deleProfileRequest = new DeleteProfileRequest();
202	deleProfileRequest.iccid = ICCID_OP_PROF2;
203	deleProfileRequest.GenHexData();
204	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
205	
206	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
207	
208	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
209	var proInfoListRequest = new ProfileInfoListRequest();
210	proInfoListRequest.tagList = "5A4F9F70";
211	proInfoListRequest.GenHexData();
212	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
213	
214	
215	var proInfoListResponse = new  ProfileInfoListResponse();
216	proInfoListResponse.checkCardResDataFormat(respData);
217	
218	try
219	{
220		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
221		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
222		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
223		
224		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
225		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
226		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
227	}catch(e){
228		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
229	}
230	
231	
232	RecoverCard();
233}
234
235function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
236{
237	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
238	var ISD_P_Test03 = curProfile_ISD_P_AID;
239
240	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
241	var ISD_P_Test01 = curProfile_ISD_P_AID;
242	
243	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
244	var ISD_P_Test02 = curProfile_ISD_P_AID;
245	
246	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
247	var setNicknameRequest = new SetNicknameRequest();
248	setNicknameRequest.iccid = ICCID_OP_PROF3;
249	setNicknameRequest.profileNickname = NICKNAME3;
250	setNicknameRequest.GenHexData();
251	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
252	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
253
254	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
255	curDis.TraceStart(sno++,tracenamestr);
256	
257	curLogicChannel = 0;
258	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
259	Ini_powerOn_eUICC_LPAe_not_activate();
260	
261	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
262	TS_MANAGE_CHANNEL_OPEN();
263	
264	curLogicChannel = 1;
265	
266	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
267	TS_SELECT("Select ISD",ISD_R_AID,"9000");
268	
269	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD_P_AID删除profile3;");
270	var deleProfileRequest = new DeleteProfileRequest();
271	deleProfileRequest.isdpAid = ISD_P_Test03;
272	deleProfileRequest.GenHexData();
273	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
274	
275	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
276	
277	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
278	var proInfoListRequest = new ProfileInfoListRequest();
279	proInfoListRequest.GenHexData();
280	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
281	
282	
283	var proInfoListResponse = new  ProfileInfoListResponse();
284	proInfoListResponse.checkCardResDataFormat(respData);
285	
286	try
287	{
288		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
289		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
290		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
291		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
292		
293		
294		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
295		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
296		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
297		
298		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
299		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
300		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
301		
302		
303	}catch(e){
304		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
305	}
306	
307	
308	RecoverCard();
309}
310
311function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
312{
313	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
314	var ISD_P_Test03 = curProfile_ISD_P_AID;
315
316	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
317	var ISD_P_Test01 = curProfile_ISD_P_AID;
318	
319	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
320	var ISD_P_Test02 = curProfile_ISD_P_AID;
321	
322	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
323	var setNicknameRequest = new SetNicknameRequest();
324	setNicknameRequest.iccid = ICCID_OP_PROF3;
325	setNicknameRequest.profileNickname = NICKNAME3;
326	setNicknameRequest.GenHexData();
327	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
328	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
329
330	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
331	curDis.TraceStart(sno++,tracenamestr);
332	
333	curLogicChannel = 0;
334	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
335	Ini_powerOn_eUICC_LPAe_not_activate();
336	
337	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
338	TS_MANAGE_CHANNEL_OPEN();
339	
340	curLogicChannel = 1;
341	
342	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
343	TS_SELECT("Select ISD",ISD_R_AID,"9000");
344	
345	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile3;");
346	var deleProfileRequest = new DeleteProfileRequest();
347    deleProfileRequest.iccid = ICCID_OP_PROF3;
348	deleProfileRequest.GenHexData();
349	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
350	
351	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
352	
353	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
354	var proInfoListRequest = new ProfileInfoListRequest();
355	proInfoListRequest.GenHexData();
356	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
357	
358	
359	var proInfoListResponse = new  ProfileInfoListResponse();
360	proInfoListResponse.checkCardResDataFormat(respData);
361	
362	try
363	{
364		curStrHandle.CheckData(ICCID_OP_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
365		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
366		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
367		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
368		
369		
370		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[1].iccid, "ICCID");
371		curStrHandle.CheckData(ISD_P_Test01, proInfoListResponse.profileInfoListOk.arrOfElement[1].isdpAid, "ISD-P AID");
372		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
373		
374		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
375		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
376		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
377		
378		
379	}catch(e){
380		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
381	}
382	
383	
384	RecoverCard();
385}
386
-cas 盲生成TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3/Import/TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3.js215 行 / 18777 字符 / gb18030
1// Author: 卡思Cas智能体
2// Date: 20261004-021956
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case3,Test Sequence #01-#06 Error(本 TC 全部 6 条 Test Sequence 合并展开),适用性 M。
4// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
5//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;ICH-IC2-K1-C4 SW;ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
6//   ICH-IC2-K2-C4 SW;S1-C1 SW;S1-C2 response data absent;S2-C1 SW;S2-C2 profileInfoListOk count 2
7//   S2-C3 iccid;S2-C3 isdpAid present;S2-C3 profileState;S2-C3 serviceProviderName SP Name 1
8//   S2-C3 profileName Operational Profile Name 1;S2-C3 iconType;S2-C3 icon present
9//   S2-C3 profileClass;S2-C4 iccid;S2-C4 isdpAid present;S2-C4 profileState;S2-C4 profileClass
10//   S3-C1 SW;S3-C2 response data absent;S4-C1 SW;S4-C2 profileInfoListOk count 2;S5-C1 SW
11//   S5-C2 response data absent;S6-C1 SW;S6-C2 profileInfoListOk count 2;S7-C1 SW
12//   S7-C2 response data absent;S8-C1 SW;S8-C2 profileInfoListOk count 2;S9-C1 SW
13//   S9-C2 response data absent;S10-C1 SW;S10-C2 profileInfoListOk count 3;S10-C3 iccid
14//   S10-C3 isdpAid present;S10-C3 profileState;S10-C3 profileNickname Nickname 3
15//   S10-C3 profileClass;S11-C1 SW;S11-C2 response data absent;S12-C1 SW
16//   S12-C2 profileInfoListOk count 3
17// 本函数由 CaseIR 4.2.23.2.2 编译生成(4.2.23.2.2-TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case3-20261004_021956,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
18// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
19// 适用性 M:编译期门,运行时由 harness 环境前置承担。
20function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_06_Error_TC_6_Test_Sequence() {
21    var bind = curBind;
22    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_06_Error_TC_6_Test_Sequence");
23    // runtime-bound payload: ISD_P_AID2 stays in execution domain; context_lineage: {"context_id": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/90-90/G_annexB_dynamic:L52"}
24    var cardCtxLoad1 = 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});
25    // runtime-bound payload: ISD_P_AID3 stays in execution domain; context_lineage: {"context_id": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/178-178/G_annexB_dynamic:L53"}
26    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID3", {"tag":"4F","bytes":16,"range":{"minHex":"A0000005591010FFFFFFFF8900001000","maxHex":"A0000005591010FFFFFFFF8900FFFF00","lastByte":"00"}}, {token: CARD_CONTEXT_TOKEN, domainId: CARD_CONTEXT_DOMAIN});
27    // runtime-bound payload: ISD_P_AIDX stays in execution domain; context_lineage: {"context_id": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/86-86/G_annexB_dynamic:L55"}
28    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});
29    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
30
31    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
32    var s14 = bind.resetAndAtr();
33    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s14.atr_hex !== "" ? "1" : "0");
34
35    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
36    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
37    var s15 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
38    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s15.resp.length > 0 ? "1" : "0");
39    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s15.sw);
40
41    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
42    var s16 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
43    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s16.sw);
44
45    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
46    var steady17 = bind.runToSteadyState(function () {
47        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
48    });
49    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady17.final.sw);
50
51    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
52    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
53    var s18 = bind.manageChannelOpen("9000");
54    bind.checkData("ICH-IC2-K1-C4 SW", "9000", s18.sw);
55    bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s18.chan !== null ? "1" : "0");
56
57    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
58    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
59    var s19 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
60    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
61    bind.checkData("ICH-IC2-K2-C4 SW", "9000", s19.sw);
62
63    // 步骤 1:MTD_STORE_DATA(tc_step)
64    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
65    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
66
67    // 步骤 2:Seq#01] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
68    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
69    var sdCla2 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
70    // runtime-bound payload: ISD_P_AIDX stays in execution domain
71    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF33124F10", "", profileAidSession), null, "6A82");
72    bind.checkData("S1-C1 SW", "6A82", s2.sw);
73    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s2.cmd, profileAidSession);
74    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
75
76    // 步骤 3:Seq#01] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
77    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
78    var sdCla3 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
79    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", "BF2D00", "00", "9000");
80    bind.checkData("S2-C1 SW", "9000", s3.sw);
81    // Inline ASCII->hex helper (UTF8String expected values; values enter as
82    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
83    function __asciiHex(text) {
84        var out = "";
85        for (var i = 0; i < text.length; i++) {
86            var c = text.charCodeAt(i).toString(16).toUpperCase();
87            out += (c.length === 1 ? "0" + c : c);
88        }
89        return out;
90    }
91    var r2p3 = BindEs10xProcProfile.walkChoiceList(s3.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
92    bind.checkData("S2-C2 profileInfoListOk count 2", "1", (r2p3.branch_tag === "A0" && r2p3.elements.length === 2) ? "1" : "0");
93    var r2e3 = null;
94    for (var r2i3 = 0; r2i3 < r2p3.elements.length; r2i3++) {
95        if (r2p3.elements[r2i3].fields["5A"] === "989209012143658709F5") { r2e3 = r2p3.elements[r2i3].fields; break; }
96    }
97    bind.checkData("S2-C3 iccid", "989209012143658709F5", r2e3 === null ? "absent" : (r2e3["5A"] === undefined ? "absent" : r2e3["5A"]));
98    bind.checkData("S2-C3 isdpAid present", "1", (r2e3 !== null && r2e3["4F"] !== undefined) ? "1" : "0");
99    bind.checkData("S2-C3 profileState", "00", r2e3 === null ? "absent" : (r2e3["9F70"] === undefined ? "absent" : r2e3["9F70"]));
100    var r2a3_91 = __asciiHex("SP Name 1");
101    bind.checkData("S2-C3 serviceProviderName SP Name 1", r2a3_91, r2e3 === null ? "absent" : (r2e3["91"] === undefined ? "absent" : r2e3["91"]));
102    var r2a3_92 = __asciiHex("Operational Profile Name 1");
103    bind.checkData("S2-C3 profileName Operational Profile Name 1", r2a3_92, r2e3 === null ? "absent" : (r2e3["92"] === undefined ? "absent" : r2e3["92"]));
104    bind.checkData("S2-C3 iconType", "01", r2e3 === null ? "absent" : (r2e3["93"] === undefined ? "absent" : r2e3["93"]));
105    bind.checkData("S2-C3 icon present", "1", (r2e3 !== null && r2e3["94"] !== undefined) ? "1" : "0");
106    bind.checkData("S2-C3 profileClass", "02", r2e3 === null ? "absent" : (r2e3["95"] === undefined ? "absent" : r2e3["95"]));
107    var r2e3 = null;
108    for (var r2i3 = 0; r2i3 < r2p3.elements.length; r2i3++) {
109        if (r2p3.elements[r2i3].fields["5A"] === "989209013254769810F9") { r2e3 = r2p3.elements[r2i3].fields; break; }
110    }
111    bind.checkData("S2-C4 iccid", "989209013254769810F9", r2e3 === null ? "absent" : (r2e3["5A"] === undefined ? "absent" : r2e3["5A"]));
112    bind.checkData("S2-C4 isdpAid present", "1", (r2e3 !== null && r2e3["4F"] !== undefined) ? "1" : "0");
113    bind.checkData("S2-C4 profileState", "01", r2e3 === null ? "absent" : (r2e3["9F70"] === undefined ? "absent" : r2e3["9F70"]));
114    bind.checkData("S2-C4 profileClass", "02", r2e3 === null ? "absent" : (r2e3["95"] === undefined ? "absent" : r2e3["95"]));
115
116    // 步骤 4:Seq#02] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
117    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
118    var sdCla4 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
119    var s4 = bind.sendApdu(sdCla4, "E2", "90", "00", "BF330C5A0A9892090143658709FFFF", null, "6A82");
120    bind.checkData("S3-C1 SW", "6A82", s4.sw);
121    bind.checkData("S3-C2 response data absent", "1", s4.resp === "" ? "1" : "0");
122
123    // 步骤 5:Seq#02] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
124    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
125    var sdCla5 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
126    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D00", "00", "9000");
127    bind.checkData("S4-C1 SW", "9000", s5.sw);
128    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
129    bind.checkData("S4-C2 profileInfoListOk count 2", "1", (r2p5.branch_tag === "A0" && r2p5.elements.length === 2) ? "1" : "0");
130
131    // 步骤 6:Seq#03] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
132    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
133    var sdCla6 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
134    // runtime-bound payload: ISD_P_AID2 stays in execution domain
135    var s6 = bind.sendApdu(sdCla6, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID2", "BF33124F10", "", profileAidSession), null, "6985");
136    bind.checkData("S5-C1 SW", "6985", s6.sw);
137    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID2", s6.cmd, profileAidSession);
138    bind.checkData("S5-C2 response data absent", "1", s6.resp === "" ? "1" : "0");
139
140    // 步骤 7:Seq#03] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
141    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
142    var sdCla7 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
143    var s7 = bind.sendApdu(sdCla7, "E2", "91", "00", "BF2D00", "00", "9000");
144    bind.checkData("S6-C1 SW", "9000", s7.sw);
145    var r2p7 = BindEs10xProcProfile.walkChoiceList(s7.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
146    bind.checkData("S6-C2 profileInfoListOk count 2", "1", (r2p7.branch_tag === "A0" && r2p7.elements.length === 2) ? "1" : "0");
147
148    // 步骤 8:Seq#04] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
149    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
150    var sdCla8 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
151    var s8 = bind.sendApdu(sdCla8, "E2", "90", "00", "BF330C5A0A989209013254769810F9", null, "6985");
152    bind.checkData("S7-C1 SW", "6985", s8.sw);
153    bind.checkData("S7-C2 response data absent", "1", s8.resp === "" ? "1" : "0");
154
155    // 步骤 9:Seq#04] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
156    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
157    var sdCla9 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
158    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2D00", "00", "9000");
159    bind.checkData("S8-C1 SW", "9000", s9.sw);
160    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
161    bind.checkData("S8-C2 profileInfoListOk count 2", "1", (r2p9.branch_tag === "A0" && r2p9.elements.length === 2) ? "1" : "0");
162
163    // 步骤 10:Seq#05] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
164    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
165    var sdCla10 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
166    // runtime-bound payload: ISD_P_AID3 stays in execution domain
167    var s10 = bind.sendApdu(sdCla10, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID3", "BF33124F10", "", profileAidSession), null, "6985");
168    bind.checkData("S9-C1 SW", "6985", s10.sw);
169    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID3", s10.cmd, profileAidSession);
170    bind.checkData("S9-C2 response data absent", "1", s10.resp === "" ? "1" : "0");
171
172    // 步骤 11:Seq#05] MTD_STORE_DATA(tc_step;REQ: RQ57_154, RQ57_156, RQ57_160, RQ57_162)
173    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
174    var sdCla11 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
175    var s11 = bind.sendApdu(sdCla11, "E2", "91", "00", "BF2D00", "00", "9000");
176    bind.checkData("S10-C1 SW", "9000", s11.sw);
177    // Inline ASCII->hex helper (UTF8String expected values; values enter as
178    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
179    function __asciiHex(text) {
180        var out = "";
181        for (var i = 0; i < text.length; i++) {
182            var c = text.charCodeAt(i).toString(16).toUpperCase();
183            out += (c.length === 1 ? "0" + c : c);
184        }
185        return out;
186    }
187    var r2p11 = BindEs10xProcProfile.walkChoiceList(s11.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
188    bind.checkData("S10-C2 profileInfoListOk count 3", "1", (r2p11.branch_tag === "A0" && r2p11.elements.length === 3) ? "1" : "0");
189    var r2e11 = null;
190    for (var r2i11 = 0; r2i11 < r2p11.elements.length; r2i11++) {
191        if (r2p11.elements[r2i11].fields["5A"] === "989209014365870921F5") { r2e11 = r2p11.elements[r2i11].fields; break; }
192    }
193    bind.checkData("S10-C3 iccid", "989209014365870921F5", r2e11 === null ? "absent" : (r2e11["5A"] === undefined ? "absent" : r2e11["5A"]));
194    bind.checkData("S10-C3 isdpAid present", "1", (r2e11 !== null && r2e11["4F"] !== undefined) ? "1" : "0");
195    bind.checkData("S10-C3 profileState", "00", r2e11 === null ? "absent" : (r2e11["9F70"] === undefined ? "absent" : r2e11["9F70"]));
196    var r2a11_90 = __asciiHex("Nickname 3");
197    bind.checkData("S10-C3 profileNickname Nickname 3", r2a11_90, r2e11 === null ? "absent" : (r2e11["90"] === undefined ? "absent" : r2e11["90"]));
198    bind.checkData("S10-C3 profileClass", "02", r2e11 === null ? "absent" : (r2e11["95"] === undefined ? "absent" : r2e11["95"]));
199
200    // 步骤 12:Seq#06] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
201    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
202    var sdCla12 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
203    var s12 = bind.sendApdu(sdCla12, "E2", "90", "00", "BF330C5A0A989209014365870921F5", null, "6985");
204    bind.checkData("S11-C1 SW", "6985", s12.sw);
205    bind.checkData("S11-C2 response data absent", "1", s12.resp === "" ? "1" : "0");
206
207    // 步骤 13:Seq#06] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
208    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
209    var sdCla13 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
210    var s13 = bind.sendApdu(sdCla13, "E2", "91", "00", "BF2D00", "00", "9000");
211    bind.checkData("S12-C1 SW", "9000", s13.sw);
212    var r2p13 = BindEs10xProcProfile.walkChoiceList(s13.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
213    bind.checkData("S12-C2 profileInfoListOk count 3", "1", (r2p13.branch_tag === "A0" && r2p13.elements.length === 3) ? "1" : "0");
214}
215

完整 unified diff

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

展开 diff(602 行)
--- -man
+++ -cas
@@ -1,386 +1,215 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_02_Delete_Profile_not_possible_with_unknown_ICCID + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set + TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set (extracted verbatim)
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_Delete_Profile_not_possible_with_unknown_ISD_P_AID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过未知的ISD-P AID删除profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_AIDX;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6A82");//Case 3指令P1值为90   见SGP.22 5.7.18
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	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");
-		
-		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_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_02_Delete_Profile_not_possible_with_unknown_ICCID()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-
-	tracenamestr = "测试目的:通过未知的ICCID删除profile应不成功";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.iccid = ICCID_OP_PROFX;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6A82");//Case 3指令P1值为90   见SGP.22 5.7.18
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	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");
-		
-		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_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_03_Delete_Profile_by_ISDP_AID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = 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命令,执行DeleteProfileRequest,通过ISD-P AID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test02;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	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");
-		
-		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_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_04_Delete_Profile_by_ICCID_not_possible_when_this_Operational_Profile_is_in_Enabled_state()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = 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命令,执行DeleteProfileRequest,通过ICCID删除profile;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.iccid = ICCID_OP_PROF2;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	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");
-		
-		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_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[1].profileState, "profile State");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_05_Delete_Profile_by_ISDP_AID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
-{
-	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
-	var ISD_P_Test03 = curProfile_ISD_P_AID;
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
-	var setNicknameRequest = new SetNicknameRequest();
-	setNicknameRequest.iccid = ICCID_OP_PROF3;
-	setNicknameRequest.profileNickname = NICKNAME3;
-	setNicknameRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
-	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
-
-	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ISD_P_AID删除profile3;");
-	var deleProfileRequest = new DeleteProfileRequest();
-	deleProfileRequest.isdpAid = ISD_P_Test03;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	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_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
-		
-		
-		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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_06_Delete_Profile_by_ICCID_not_possible_not_possible_when_PPR2_is_set ()//PPR:0520
-{
-	initial_condition_PROFILE_OPERATIONAL3_is_Disabled();
-	var ISD_P_Test03 = curProfile_ISD_P_AID;
-
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	initial_condition_PROFILE_OPERATIONAL2_is_Enabled();
-	var ISD_P_Test02 = curProfile_ISD_P_AID;
-	
-	curDis.TestStepStart("读卡器向卡片发送 StoreData命令,执行SetNickname,profile3的Nickname为NICKNAME3;");
-	var setNicknameRequest = new SetNicknameRequest();
-	setNicknameRequest.iccid = ICCID_OP_PROF3;
-	setNicknameRequest.profileNickname = NICKNAME3;
-	setNicknameRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(setNicknameRequest.hexData);
-	curStrHandle.CheckData("BF2903800100", respData,"SetNickname Response");
-
-	tracenamestr = "Case3异常测试:当配置文件策略规则为“禁止删除此配置文件”时,无法删除该运营配置文件。";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-	
-	curLogicChannel = 1;
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行DeleteProfileRequest,通过ICCID删除profile3;");
-	var deleProfileRequest = new DeleteProfileRequest();
-    deleProfileRequest.iccid = ICCID_OP_PROF3;
-	deleProfileRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(deleProfileRequest.hexData,"90","00","6985");
-	
-	curStrHandle.CheckData("", respData, "DeleteProfileResponse");
-	
-	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_PROF3, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test03, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_DISABLED, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileState, "profile State");
-		curStrHandle.CheckData(NICKNAME3, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileNickname, "nickname");
-		
-		
-		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");
-		
-		curStrHandle.CheckData(ICCID_OP_PROF2, proInfoListResponse.profileInfoListOk.arrOfElement[2].iccid, "ICCID");
-		curStrHandle.CheckData(ISD_P_Test02, proInfoListResponse.profileInfoListOk.arrOfElement[2].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_ENABLED, proInfoListResponse.profileInfoListOk.arrOfElement[2].profileState, "profile State");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261004-021956
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case3,Test Sequence #01-#06 Error(本 TC 全部 6 条 Test Sequence 合并展开),适用性 M。
+// Test points: ICH-IC1-K1-C1 ATR_present;ICH-IC1-K2-C2 FCP_Template;ICH-IC1-K2-C4 SW
+//   ICH-IC1-K3-C4 SW;ICH-IC1-K4-C4 final SW;ICH-IC2-K1-C4 SW;ICH-IC2-K1-C3 CHANNEL_NUMBER extracted
+//   ICH-IC2-K2-C4 SW;S1-C1 SW;S1-C2 response data absent;S2-C1 SW;S2-C2 profileInfoListOk count 2
+//   S2-C3 iccid;S2-C3 isdpAid present;S2-C3 profileState;S2-C3 serviceProviderName SP Name 1
+//   S2-C3 profileName Operational Profile Name 1;S2-C3 iconType;S2-C3 icon present
+//   S2-C3 profileClass;S2-C4 iccid;S2-C4 isdpAid present;S2-C4 profileState;S2-C4 profileClass
+//   S3-C1 SW;S3-C2 response data absent;S4-C1 SW;S4-C2 profileInfoListOk count 2;S5-C1 SW
+//   S5-C2 response data absent;S6-C1 SW;S6-C2 profileInfoListOk count 2;S7-C1 SW
+//   S7-C2 response data absent;S8-C1 SW;S8-C2 profileInfoListOk count 2;S9-C1 SW
+//   S9-C2 response data absent;S10-C1 SW;S10-C2 profileInfoListOk count 3;S10-C3 iccid
+//   S10-C3 isdpAid present;S10-C3 profileState;S10-C3 profileNickname Nickname 3
+//   S10-C3 profileClass;S11-C1 SW;S11-C2 response data absent;S12-C1 SW
+//   S12-C2 profileInfoListOk count 3
+// 本函数由 CaseIR 4.2.23.2.2 编译生成(4.2.23.2.2-TC_eUICC_ES10c.DeleteProfile_ErrorCases_Case3-20261004_021956,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
+// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
+// 适用性 M:编译期门,运行时由 harness 环境前置承担。
+function TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_06_Error_TC_6_Test_Sequence() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_ES10c_DeleteProfile_ErrorCases_Case3_01_06_Error_TC_6_Test_Sequence");
+    // runtime-bound payload: ISD_P_AID2 stays in execution domain; context_lineage: {"context_id": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/90-90/G_annexB_dynamic:L52"}
+    var cardCtxLoad1 = 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_AID3 stays in execution domain; context_lineage: {"context_id": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/178-178/G_annexB_dynamic:L53"}
+    var cardCtxLoad2 = BindCardContext.load(bind, profileAidSession, "ISD_P_AID3", {"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": "b665e489fcbe7cb0", "authority_reference": "E_tc_4223/86-86/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});
+    // PREFLIGHT_CONTEXT AUTHORIZED_DISCOVERY: declared unexpanded (non-PROC row or K corpus vacuum; see CaseIR open_items).
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 1):RESET(K 语料机械展开)
+    var s14 = bind.resetAndAtr();
+    bind.checkData("ICH-IC1-K1-C1 ATR_present", "1", s14.atr_hex !== "" ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 2):SELECT_MF(K 语料机械展开)
+    // FCP outer tag not materialized from clause: tag-face asserted only when corpus fixes the tag byte (e.g. TS 102 221 FCP '62').
+    var s15 = bind.sendApdu("00", "A4", "00", "04", "3F00", "00", "9000");
+    bind.checkData("ICH-IC1-K2-C2 FCP_Template", "1", s15.resp.length > 0 ? "1" : "0");
+    bind.checkData("ICH-IC1-K2-C4 SW", "9000", s15.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 3):TERMINAL_CAPABILITY_LPAd(K 语料机械展开)
+    var s16 = bind.sendApdu("80", "AA", "00", "00", "A9058100830107", null, "9000");
+    bind.checkData("ICH-IC1-K3-C4 SW", "9000", s16.sw);
+
+    // IC head inline (initial_conditions → PROC_EUICC_INITIALIZATION_SEQUENCE, K row 4):TERMINAL_PROFILE(K 语料机械展开)
+    var steady17 = bind.runToSteadyState(function () {
+        return bind.sendTerminalProfile("FFFFFFFF7F9D00DFBF00001FE2000000C7EB0000000168005000000000000200", "9000");
+    });
+    bind.checkData("ICH-IC1-K4-C4 final SW", "9000", steady17.final.sw);
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 1):MANAGE_CHANNEL_OPEN(K 语料机械展开)
+    // CHANNEL_NUMBER extraction and dynamic CLA rebinding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s18 = bind.manageChannelOpen("9000");
+    bind.checkData("ICH-IC2-K1-C4 SW", "9000", s18.sw);
+    bind.checkData("ICH-IC2-K1-C3 CHANNEL_NUMBER extracted", "1", s18.chan !== null ? "1" : "0");
+
+    // IC head inline (initial_conditions → PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR, K row 2):MTD_SELECT(K 语料机械展开)
+    // CLA = bound channel (cla_rule) and <L> length binding are CasBind internal state (chaining rule; no generated-code re-implementation).
+    var s19 = bind.sendApdu(null, "A4", "04", "00", "A0000005591010FFFFFFFF8900000100", null, "9000");
+    // MTD_SELECT expected face is SW-only (K Annex C.2 open-channel procedure step 2: no FCI content assertion in corpus); no fabricated template parse.
+    bind.checkData("ICH-IC2-K2-C4 SW", "9000", s19.sw);
+
+    // 步骤 1:MTD_STORE_DATA(tc_step)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s1 = bind.sendApdu("81", "E2", "91", "00", "BF2D035C014F", "00", "9000");
+
+    // 步骤 2:Seq#01] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla2 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AIDX stays in execution domain
+    var s2 = bind.sendApdu(sdCla2, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AIDX", "BF33124F10", "", profileAidSession), null, "6A82");
+    bind.checkData("S1-C1 SW", "6A82", s2.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AIDX", s2.cmd, profileAidSession);
+    bind.checkData("S1-C2 response data absent", "1", s2.resp === "" ? "1" : "0");
+
+    // 步骤 3:Seq#01] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla3 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s3 = bind.sendApdu(sdCla3, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S2-C1 SW", "9000", s3.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p3 = BindEs10xProcProfile.walkChoiceList(s3.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S2-C2 profileInfoListOk count 2", "1", (r2p3.branch_tag === "A0" && r2p3.elements.length === 2) ? "1" : "0");
+    var r2e3 = null;
+    for (var r2i3 = 0; r2i3 < r2p3.elements.length; r2i3++) {
+        if (r2p3.elements[r2i3].fields["5A"] === "989209012143658709F5") { r2e3 = r2p3.elements[r2i3].fields; break; }
+    }
+    bind.checkData("S2-C3 iccid", "989209012143658709F5", r2e3 === null ? "absent" : (r2e3["5A"] === undefined ? "absent" : r2e3["5A"]));
+    bind.checkData("S2-C3 isdpAid present", "1", (r2e3 !== null && r2e3["4F"] !== undefined) ? "1" : "0");
+    bind.checkData("S2-C3 profileState", "00", r2e3 === null ? "absent" : (r2e3["9F70"] === undefined ? "absent" : r2e3["9F70"]));
+    var r2a3_91 = __asciiHex("SP Name 1");
+    bind.checkData("S2-C3 serviceProviderName SP Name 1", r2a3_91, r2e3 === null ? "absent" : (r2e3["91"] === undefined ? "absent" : r2e3["91"]));
+    var r2a3_92 = __asciiHex("Operational Profile Name 1");
+    bind.checkData("S2-C3 profileName Operational Profile Name 1", r2a3_92, r2e3 === null ? "absent" : (r2e3["92"] === undefined ? "absent" : r2e3["92"]));
+    bind.checkData("S2-C3 iconType", "01", r2e3 === null ? "absent" : (r2e3["93"] === undefined ? "absent" : r2e3["93"]));
+    bind.checkData("S2-C3 icon present", "1", (r2e3 !== null && r2e3["94"] !== undefined) ? "1" : "0");
+    bind.checkData("S2-C3 profileClass", "02", r2e3 === null ? "absent" : (r2e3["95"] === undefined ? "absent" : r2e3["95"]));
+    var r2e3 = null;
+    for (var r2i3 = 0; r2i3 < r2p3.elements.length; r2i3++) {
+        if (r2p3.elements[r2i3].fields["5A"] === "989209013254769810F9") { r2e3 = r2p3.elements[r2i3].fields; break; }
+    }
+    bind.checkData("S2-C4 iccid", "989209013254769810F9", r2e3 === null ? "absent" : (r2e3["5A"] === undefined ? "absent" : r2e3["5A"]));
+    bind.checkData("S2-C4 isdpAid present", "1", (r2e3 !== null && r2e3["4F"] !== undefined) ? "1" : "0");
+    bind.checkData("S2-C4 profileState", "01", r2e3 === null ? "absent" : (r2e3["9F70"] === undefined ? "absent" : r2e3["9F70"]));
+    bind.checkData("S2-C4 profileClass", "02", r2e3 === null ? "absent" : (r2e3["95"] === undefined ? "absent" : r2e3["95"]));
+
+    // 步骤 4:Seq#02] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla4 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s4 = bind.sendApdu(sdCla4, "E2", "90", "00", "BF330C5A0A9892090143658709FFFF", null, "6A82");
+    bind.checkData("S3-C1 SW", "6A82", s4.sw);
+    bind.checkData("S3-C2 response data absent", "1", s4.resp === "" ? "1" : "0");
+
+    // 步骤 5:Seq#02] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ57_154, RQ57_157, RQ57_160, RQ57_161)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla5 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s5 = bind.sendApdu(sdCla5, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s5.sw);
+    var r2p5 = BindEs10xProcProfile.walkChoiceList(s5.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S4-C2 profileInfoListOk count 2", "1", (r2p5.branch_tag === "A0" && r2p5.elements.length === 2) ? "1" : "0");
+
+    // 步骤 6:Seq#03] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla6 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID2 stays in execution domain
+    var s6 = bind.sendApdu(sdCla6, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID2", "BF33124F10", "", profileAidSession), null, "6985");
+    bind.checkData("S5-C1 SW", "6985", s6.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID2", s6.cmd, profileAidSession);
+    bind.checkData("S5-C2 response data absent", "1", s6.resp === "" ? "1" : "0");
+
+    // 步骤 7:Seq#03] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla7 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s7 = bind.sendApdu(sdCla7, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S6-C1 SW", "9000", s7.sw);
+    var r2p7 = BindEs10xProcProfile.walkChoiceList(s7.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S6-C2 profileInfoListOk count 2", "1", (r2p7.branch_tag === "A0" && r2p7.elements.length === 2) ? "1" : "0");
+
+    // 步骤 8:Seq#04] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla8 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s8 = bind.sendApdu(sdCla8, "E2", "90", "00", "BF330C5A0A989209013254769810F9", null, "6985");
+    bind.checkData("S7-C1 SW", "6985", s8.sw);
+    bind.checkData("S7-C2 response data absent", "1", s8.resp === "" ? "1" : "0");
+
+    // 步骤 9:Seq#04] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_155, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla9 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s9 = bind.sendApdu(sdCla9, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s9.sw);
+    var r2p9 = BindEs10xProcProfile.walkChoiceList(s9.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S8-C2 profileInfoListOk count 2", "1", (r2p9.branch_tag === "A0" && r2p9.elements.length === 2) ? "1" : "0");
+
+    // 步骤 10:Seq#05] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla10 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    // runtime-bound payload: ISD_P_AID3 stays in execution domain
+    var s10 = bind.sendApdu(sdCla10, "E2", "90", "00", BindEs10xProcProfileDynamic.bindProfileAidTemplate(bind, "ISD_P_AID3", "BF33124F10", "", profileAidSession), null, "6985");
+    bind.checkData("S9-C1 SW", "6985", s10.sw);
+    BindEs10xProcProfileDynamic.assertBoundPayload(bind, "ISD_P_AID3", s10.cmd, profileAidSession);
+    bind.checkData("S9-C2 response data absent", "1", s10.resp === "" ? "1" : "0");
+
+    // 步骤 11:Seq#05] MTD_STORE_DATA(tc_step;REQ: RQ57_154, RQ57_156, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla11 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s11 = bind.sendApdu(sdCla11, "E2", "91", "00", "BF2D00", "00", "9000");
+    bind.checkData("S10-C1 SW", "9000", s11.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p11 = BindEs10xProcProfile.walkChoiceList(s11.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    bind.checkData("S10-C2 profileInfoListOk count 3", "1", (r2p11.branch_tag === "A0" && r2p11.elements.length === 3) ? "1" : "0");
+    var r2e11 = null;
+    for (var r2i11 = 0; r2i11 < r2p11.elements.length; r2i11++) {
+        if (r2p11.elements[r2i11].fields["5A"] === "989209014365870921F5") { r2e11 = r2p11.elements[r2i11].fields; break; }
+    }
+    bind.checkData("S10-C3 iccid", "989209014365870921F5", r2e11 === null ? "absent" : (r2e11["5A"] === undefined ? "absent" : r2e11["5A"]));
+    bind.checkData("S10-C3 isdpAid present", "1", (r2e11 !== null && r2e11["4F"] !== undefined) ? "1" : "0");
+    bind.checkData("S10-C3 profileState", "00", r2e11 === null ? "absent" : (r2e11["9F70"] === undefined ? "absent" : r2e11["9F70"]));
+    var r2a11_90 = __asciiHex("Nickname 3");
+    bind.checkData("S10-C3 profileNickname Nickname 3", r2a11_90, r2e11 === null ? "absent" : (r2e11["90"] === undefined ? "absent" : r2e11["90"]));
+    bind.checkData("S10-C3 profileClass", "02", r2e11 === null ? "absent" : (r2e11["95"] === undefined ? "absent" : r2e11["95"]));
+
+    // 步骤 12:Seq#06] MTD_STORE_DATA_Case3(tc_step;REQ: RQ24_016, RQ29_002, RQ29_022, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla12 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s12 = bind.sendApdu(sdCla12, "E2", "90", "00", "BF330C5A0A989209014365870921F5", null, "6985");
+    bind.checkData("S11-C1 SW", "6985", s12.sw);
+    bind.checkData("S11-C2 response data absent", "1", s12.resp === "" ? "1" : "0");
+
+    // 步骤 13:Seq#06] MTD_STORE_DATA(tc_step;REQ: RQ24_016, RQ32_049, RQ32_050, RQ57_154, RQ57_156, RQ57_160, RQ57_162)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var sdCla13 = s18.chan !== null ? (s18.chan <= 3 ? 128 + s18.chan : 188 + s18.chan).toString(16).toUpperCase() : null;
+    var s13 = bind.sendApdu(sdCla13, "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"});
+    bind.checkData("S12-C2 profileInfoListOk count 3", "1", (r2p13.branch_tag === "A0" && r2p13.elements.length === 3) ? "1" : "0");
 }