源码对照: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");
}