eSIM RSP 测试用例对比站

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

源码对照:4.2.5.2.1

ES8+ 存储元数据 / TC_eUICC_ES8+.StoreMetadata

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
689 行 / 34634 字符 / gb18030
-cas 入口
TC_eUICC_ES8_StoreMetadata/Import/TC_eUICC_ES8_StoreMetadata.js
828 行 / 63768 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js689 行 / 34634 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_StoreMetadata_01_Nominal_All_Metadata_fields_present_PNG_icon_used_and_PPR1_set + TC_eUICC_ES8_StoreMetadata_02_Nominal_With_JPG_icon + TC_eUICC_ES8_StoreMetadata_03_Nominal_Without_providing_Profile_Class + TC_eUICC_ES8_StoreMetadata_04_Nominal_With_PPR2_set + TC_eUICC_ES8_StoreMetadata_05_Nominal_With_PPR1_and_PPR2_set + TC_eUICC_ES8_StoreMetadata_06_Nominal_With_several_Notification_events_configured + TC_eUICC_ES8_StoreMetadata_07_Error_ICCID_already_present_in_the_eUICC + TC_eUICC_ES8_StoreMetadata_08_Error_Profile_Policy_Rule_is_set_but_Profile_Owner_is_not + TC_eUICC_ES8_StoreMetadata_09_Error_Profile_Owner_is_set_with_a_wildcard_E_digits + TC_eUICC_ES8_StoreMetadata_10_Error_Icon_Type_is_set_but_icon_is_not (extracted verbatim)
2
3function TC_eUICC_ES8_StoreMetadata_01_Nominal_All_Metadata_fields_present_PNG_icon_used_and_PPR1_set()
4{
5	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata所有字段都存在,其中设置了PNG icon和PPR1";
6	curDis.TraceStart(sno++,tracenamestr);
7
8	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
9	Ini_powerOn_eUICC_LPAe_not_activate();
10	
11	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
12	TS_MANAGE_CHANNEL_OPEN();
13	
14	curLogicChannel = 1;
15	
16	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
17	TS_SELECT("Select ISD",ISD_R_AID,"9000");
18	
19	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
20	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
21	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
22	Profile_load_procedure.ES10b_GetEUICCInfo1();
23	
24
25	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
26	Profile_load_procedure.ES10b_GetEUICCChallenge();
27	
28	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
29	Profile_load_procedure.ES10b_AuthenticateServer();
30	
31	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
32	Profile_load_procedure.ES10b_PrepareDownload();
33	
34	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
35	Profile_load_procedure.ES10b_GetEID();
36	
37	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置了所有的参数,其中配置PNG icon 和PPR1;");
38	Profile_load_procedure.serviceProviderName = SP_NAME1;	
39	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
40	Profile_load_procedure.iconType = "01";
41	Profile_load_procedure.icon = ICON_OP_PROF1;
42	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
43	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
44	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
45	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
46	Profile_load_procedure.profileClass = "02";
47	Profile_load_procedure.profilePolicyRules = "0640";
48	Profile_load_procedure.mccMnc = MCC_MNC1;
49	
50	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
51	
52
53	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
54	var proInfoListRequest = new ProfileInfoListRequest();
55	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
56	proInfoListRequest.tagList = "5A9192939495B6B799";
57	proInfoListRequest.GenHexData();
58	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
59
60	var proInfoListResponse = new  ProfileInfoListResponse();
61	proInfoListResponse.checkCardResDataFormat(respData);
62	
63	try
64	{
65		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
66		curStrHandle.CheckData(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
67		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
68		curStrHandle.CheckData("01", proInfoListResponse.profileInfoListOk.arrOfElement[0].iconType, "iconType");
69		curStrHandle.CheckData(ICON_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].icon, "icon");
70		curStrHandle.CheckData("02", proInfoListResponse.profileInfoListOk.arrOfElement[0].profileClass, "profileClass");
71		curStrHandle.CheckData("04F0", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].profileManagementOperation, "profileManagementOperation");
72		curStrHandle.CheckData(TEST_DP_ADDRESS1, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].notificationAddress, "notificationAddress");
73		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
74		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
75		
76	}catch(e){
77		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
78	}
79	
80	
81	RecoverCard();
82}
83
84function TC_eUICC_ES8_StoreMetadata_02_Nominal_With_JPG_icon ()
85{
86	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中iconType为jpg,icon为#ICON_JPG";
87	curDis.TraceStart(sno++,tracenamestr);
88
89	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
90	Ini_powerOn_eUICC_LPAe_not_activate();
91	
92	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
93	TS_MANAGE_CHANNEL_OPEN();
94	
95	curLogicChannel = 1;
96	
97	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
98	TS_SELECT("Select ISD",ISD_R_AID,"9000");
99	
100	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
101	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
102	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
103	Profile_load_procedure.ES10b_GetEUICCInfo1();
104	
105
106	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
107	Profile_load_procedure.ES10b_GetEUICCChallenge();
108	
109	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
110	Profile_load_procedure.ES10b_AuthenticateServer();
111	
112	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
113	Profile_load_procedure.ES10b_PrepareDownload();
114	
115	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
116	Profile_load_procedure.ES10b_GetEID();
117	
118	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置JPG icon;");
119	Profile_load_procedure.serviceProviderName = SP_NAME1;
120	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
121	Profile_load_procedure.iconType = "00";
122	Profile_load_procedure.icon = ICON_JPG;
123	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
124	
125
126	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
127	var proInfoListRequest = new ProfileInfoListRequest();
128	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
129	proInfoListRequest.tagList = "5A91929394";
130	proInfoListRequest.GenHexData();
131	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
132
133	var proInfoListResponse = new  ProfileInfoListResponse();
134	proInfoListResponse.checkCardResDataFormat(respData);
135	
136	try
137	{
138		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
139		curStrHandle.CheckData(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
140		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
141		curStrHandle.CheckData("00", proInfoListResponse.profileInfoListOk.arrOfElement[0].iconType, "iconType");
142		curStrHandle.CheckData(ICON_JPG, proInfoListResponse.profileInfoListOk.arrOfElement[0].icon, "icon");
143		
144	}catch(e){
145		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
146	}
147	
148	
149	RecoverCard();
150}
151
152function TC_eUICC_ES8_StoreMetadata_03_Nominal_Without_providing_Profile_Class ()
153{
154	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中未传入Profile Class。在这种情况下,默认Profile Class应该由eUICC设置为'Operational'";
155	curDis.TraceStart(sno++,tracenamestr);
156
157	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
158	Ini_powerOn_eUICC_LPAe_not_activate();
159	
160	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
161	TS_MANAGE_CHANNEL_OPEN();
162	
163	curLogicChannel = 1;
164	
165	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
166	TS_SELECT("Select ISD",ISD_R_AID,"9000");
167	
168	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
169	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
170	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
171	Profile_load_procedure.ES10b_GetEUICCInfo1();
172	
173
174	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
175	Profile_load_procedure.ES10b_GetEUICCChallenge();
176	
177	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
178	Profile_load_procedure.ES10b_AuthenticateServer();
179	
180	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
181	Profile_load_procedure.ES10b_PrepareDownload();
182	
183	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
184	Profile_load_procedure.ES10b_GetEID();
185	
186	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage, Metadata域中没有配置providing Profile Class,eUICC应自动设置默认配置文件类别为「Operational」;");
187	Profile_load_procedure.serviceProviderName = SP_NAME1;
188	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
189	
190	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
191	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
192	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
193	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
194	
195	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
196	
197
198	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
199	var proInfoListRequest = new ProfileInfoListRequest();
200	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
201	proInfoListRequest.tagList = "5A919295B6";
202	proInfoListRequest.GenHexData();
203	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
204
205	var proInfoListResponse = new  ProfileInfoListResponse();
206	proInfoListResponse.checkCardResDataFormat(respData);
207	
208	try
209	{
210		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
211		curStrHandle.CheckData(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
212		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
213		curStrHandle.CheckData("02", proInfoListResponse.profileInfoListOk.arrOfElement[0].profileClass, "profileClass");//Operational
214		
215	}catch(e){
216		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
217	}
218	
219	
220	RecoverCard();
221}
222
223function TC_eUICC_ES8_StoreMetadata_04_Nominal_With_PPR2_set ()
224{
225	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中profilePolicyRules设置为PPR2";
226	curDis.TraceStart(sno++,tracenamestr);
227
228	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
229	Ini_powerOn_eUICC_LPAe_not_activate();
230	
231	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
232	TS_MANAGE_CHANNEL_OPEN();
233	
234	curLogicChannel = 1;
235	
236	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
237	TS_SELECT("Select ISD",ISD_R_AID,"9000");
238	
239	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
240	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
241	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
242	Profile_load_procedure.ES10b_GetEUICCInfo1();
243	
244
245	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
246	Profile_load_procedure.ES10b_GetEUICCChallenge();
247	
248	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
249	Profile_load_procedure.ES10b_AuthenticateServer();
250	
251	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
252	Profile_load_procedure.ES10b_PrepareDownload();
253	
254	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
255	Profile_load_procedure.ES10b_GetEID();
256	
257	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置PPR2");
258	Profile_load_procedure.serviceProviderName = SP_NAME1;
259	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
260	Profile_load_procedure.profilePolicyRules = "0520";
261	Profile_load_procedure.mccMnc = MCC_MNC1;
262	
263	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
264	
265
266	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
267	var proInfoListRequest = new ProfileInfoListRequest();
268	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
269	proInfoListRequest.tagList = "5A9192B799";
270	proInfoListRequest.GenHexData();
271	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
272
273	var proInfoListResponse = new  ProfileInfoListResponse();
274	proInfoListResponse.checkCardResDataFormat(respData);
275	
276	try
277	{
278		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
279		curStrHandle.CheckData(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
280		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
281		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
282		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
283		
284	}catch(e){
285		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
286	}
287	
288	
289	RecoverCard();
290}
291
292function TC_eUICC_ES8_StoreMetadata_05_Nominal_With_PPR1_and_PPR2_set  ()
293{
294	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中profilePolicyRules设置为PPR1和PPR2";
295	curDis.TraceStart(sno++,tracenamestr);
296
297	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
298	Ini_powerOn_eUICC_LPAe_not_activate();
299	
300	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
301	TS_MANAGE_CHANNEL_OPEN();
302	
303	curLogicChannel = 1;
304	
305	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
306	TS_SELECT("Select ISD",ISD_R_AID,"9000");
307	
308	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
309	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
310	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
311	Profile_load_procedure.ES10b_GetEUICCInfo1();
312	
313
314	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
315	Profile_load_procedure.ES10b_GetEUICCChallenge();
316	
317	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
318	Profile_load_procedure.ES10b_AuthenticateServer();
319	
320	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
321	Profile_load_procedure.ES10b_PrepareDownload();
322	
323	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
324	Profile_load_procedure.ES10b_GetEID();
325	
326	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置PPR1和PPR2");
327	Profile_load_procedure.serviceProviderName = SP_NAME1;
328	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
329	Profile_load_procedure.profilePolicyRules = "0560";
330	Profile_load_procedure.mccMnc = MCC_MNC1;
331	
332	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
333	
334
335	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
336	var proInfoListRequest = new ProfileInfoListRequest();
337	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
338	proInfoListRequest.tagList = "5A9192B799";
339	proInfoListRequest.GenHexData();
340	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
341
342	var proInfoListResponse = new  ProfileInfoListResponse();
343	proInfoListResponse.checkCardResDataFormat(respData);
344	
345	try
346	{
347		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
348		curStrHandle.CheckData(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
349		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
350		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
351		curStrHandle.CheckData("0560", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
352		
353	}catch(e){
354		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
355	}
356	
357	
358	RecoverCard();
359}
360
361function TC_eUICC_ES8_StoreMetadata_06_Nominal_With_several_Notification_events_configured()
362{
363	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中notificationConfigurationInfo配置多个通知事件";
364	curDis.TraceStart(sno++,tracenamestr);
365
366	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
367	Ini_powerOn_eUICC_LPAe_not_activate();
368	
369	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
370	TS_MANAGE_CHANNEL_OPEN();
371	
372	curLogicChannel = 1;
373	
374	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
375	TS_SELECT("Select ISD",ISD_R_AID,"9000");
376	
377	
378	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
379	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
380	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
381	Profile_load_procedure.ES10b_GetEUICCInfo1();
382	
383	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
384	Profile_load_procedure.ES10b_GetEUICCChallenge();
385
386	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
387	Profile_load_procedure.ES10b_AuthenticateServer();
388	
389	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
390	Profile_load_procedure.ES10b_PrepareDownload();
391	
392	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
393	Profile_load_procedure.ES10b_GetEID();
394	
395	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置多个Notification events;");
396	Profile_load_procedure.serviceProviderName = SP_NAME1;
397	Profile_load_procedure.profileName = NAME_OP_PROF1;
398	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
399	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
400	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "0780";
401	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS3;
402	
403	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1] = new NotificationConfigurationInformation();
404	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1].profileManagementOperation = "0780";
405	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1].notificationAddress = TEST_DP_ADDRESS2;
406	
407	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2] = new NotificationConfigurationInformation();
408	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2].profileManagementOperation = "0640";
409	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2].notificationAddress = TEST_DP_ADDRESS2;
410	
411	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3] = new NotificationConfigurationInformation();
412	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3].profileManagementOperation = "0640";
413	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3].notificationAddress = TEST_DP_ADDRESS3;
414	
415	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4] = new NotificationConfigurationInformation();
416	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4].profileManagementOperation = "0520";
417	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4].notificationAddress = TEST_DP_ADDRESS3;
418	
419	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5] = new NotificationConfigurationInformation();
420	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5].profileManagementOperation = "0520";
421	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5].notificationAddress = TEST_DP_ADDRESS4;
422	
423	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6] = new NotificationConfigurationInformation();
424	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6].profileManagementOperation = "0410";
425	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6].notificationAddress = TEST_DP_ADDRESS1;
426	
427	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7] = new NotificationConfigurationInformation();
428	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7].profileManagementOperation = "0410";
429	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7].notificationAddress = TEST_DP_ADDRESS3;
430	
431	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
432	
433	
434	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
435	var proInfoListRequest = new ProfileInfoListRequest();
436	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
437	proInfoListRequest.tagList = "5AB6";
438	proInfoListRequest.GenHexData();
439	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
440
441	var proInfoListResponse = new  ProfileInfoListResponse();
442	proInfoListResponse.checkCardResDataFormat(respData);
443	
444	try
445	{
446		curStrHandle.CheckData(ICCID_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].iccid, "ICCID");
447		curStrHandle.CheckData("0780", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].profileManagementOperation, "profileManagementOperation");
448		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].notificationAddress, "notificationAddress");
449		
450		curStrHandle.CheckData("0780", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[1].profileManagementOperation, "profileManagementOperation");
451		curStrHandle.CheckData(TEST_DP_ADDRESS2, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[1].notificationAddress, "notificationAddress");
452		
453		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[2].profileManagementOperation, "profileManagementOperation");
454		curStrHandle.CheckData(TEST_DP_ADDRESS2, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[2].notificationAddress, "notificationAddress");
455		
456		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[3].profileManagementOperation, "profileManagementOperation");
457		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[3].notificationAddress, "notificationAddress");
458		
459		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[4].profileManagementOperation, "profileManagementOperation");
460		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[4].notificationAddress, "notificationAddress");
461		
462		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[5].profileManagementOperation, "profileManagementOperation");
463		curStrHandle.CheckData(TEST_DP_ADDRESS4, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[5].notificationAddress, "notificationAddress");
464		
465		curStrHandle.CheckData("0410", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[6].profileManagementOperation, "profileManagementOperation");
466		curStrHandle.CheckData(TEST_DP_ADDRESS1, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[6].notificationAddress, "notificationAddress");
467		
468		curStrHandle.CheckData("0410", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[7].profileManagementOperation, "profileManagementOperation");
469		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[7].notificationAddress, "notificationAddress");
470		
471		
472	}catch(e){
473		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
474	}
475	
476	
477	
478	RecoverCard();
479}
480
481function TC_eUICC_ES8_StoreMetadata_07_Error_ICCID_already_present_in_the_eUICC()
482{
483	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
484	var ISD_P_Test01 = curProfile_ISD_P_AID;
485	
486	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中iccid设置为卡上已存在的ICCID";
487	curDis.TraceStart(sno++,tracenamestr);
488
489	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
490	Ini_powerOn_eUICC_LPAe_not_activate();
491	
492	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
493	TS_MANAGE_CHANNEL_OPEN();
494	
495	curLogicChannel = 1;
496	
497	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
498	TS_SELECT("Select ISD",ISD_R_AID,"9000");
499	
500	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
501	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
502	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
503	Profile_load_procedure.ES10b_GetEUICCInfo1();
504	
505
506	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
507	Profile_load_procedure.ES10b_GetEUICCChallenge();
508	
509	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
510	Profile_load_procedure.ES10b_AuthenticateServer();
511	
512	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
513	Profile_load_procedure.ES10b_PrepareDownload();
514	
515	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
516	Profile_load_procedure.ES10b_GetEID();
517	
518	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:该ICCID已存在;");
519	Profile_load_procedure.serviceProviderName = SP_NAME1;
520	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
521	Profile_load_procedure.iconType = "01";
522	Profile_load_procedure.icon = ICON_OP_PROF1;
523	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
524	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
525	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
526	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
527	Profile_load_procedure.profileClass = "02";
528	Profile_load_procedure.profilePolicyRules = "0640";
529	Profile_load_procedure.mccMnc = MCC_MNC1;
530	
531	Profile_load_procedure.isErrorTest = true;
532	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
533	Profile_load_procedure.errorReason = ErrorReason.installFailedDueToIccidAlreadyExistsOnEuicc;
534	
535	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
536	
537	
538	RecoverCard();
539}
540
541function TC_eUICC_ES8_StoreMetadata_08_Error_Profile_Policy_Rule_is_set_but_Profile_Owner_is_not()
542{
543		
544	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Profile Policy Rule已设置,但Profile Owner未设置";
545	curDis.TraceStart(sno++,tracenamestr);
546
547	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
548	Ini_powerOn_eUICC_LPAe_not_activate();
549	
550	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
551	TS_MANAGE_CHANNEL_OPEN();
552	
553	curLogicChannel = 1;
554	
555	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
556	TS_SELECT("Select ISD",ISD_R_AID,"9000");
557	
558	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
559	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
560	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
561	Profile_load_procedure.ES10b_GetEUICCInfo1();
562	
563
564	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
565	Profile_load_procedure.ES10b_GetEUICCChallenge();
566	
567	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
568	Profile_load_procedure.ES10b_AuthenticateServer();
569	
570	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
571	Profile_load_procedure.ES10b_PrepareDownload();
572	
573	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
574	Profile_load_procedure.ES10b_GetEID();
575	
576	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:配置文件策略规则已设置,但配置文件所有者未设置;");
577	Profile_load_procedure.serviceProviderName = SP_NAME1;
578	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
579	Profile_load_procedure.profilePolicyRules = "0520";
580	Profile_load_procedure.SetProfileOwner = false;
581	
582	Profile_load_procedure.isErrorTest = true;
583	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
584	Profile_load_procedure.errorReason = ErrorReason.scp03tStructureError + "/" + ErrorReason.incorrectInputValues;
585	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
586	
587	RecoverCard();
588}
589
590function TC_eUICC_ES8_StoreMetadata_09_Error_Profile_Owner_is_set_with_a_wildcard_E_digits()
591{
592		
593	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Profile Owner设置为’EEEEEE’";
594	curDis.TraceStart(sno++,tracenamestr);
595
596	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
597	Ini_powerOn_eUICC_LPAe_not_activate();
598	
599	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
600	TS_MANAGE_CHANNEL_OPEN();
601	
602	curLogicChannel = 1;
603	
604	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
605	TS_SELECT("Select ISD",ISD_R_AID,"9000");
606	
607	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
608	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
609	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
610	Profile_load_procedure.ES10b_GetEUICCInfo1();
611	
612
613	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
614	Profile_load_procedure.ES10b_GetEUICCChallenge();
615	
616	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
617	Profile_load_procedure.ES10b_AuthenticateServer();
618	
619	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
620	Profile_load_procedure.ES10b_PrepareDownload();
621	
622	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
623	Profile_load_procedure.ES10b_GetEID();
624	
625	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:Profile Owner中出现字母通配符占位符E;");
626	Profile_load_procedure.serviceProviderName = SP_NAME1;
627	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
628	Profile_load_procedure.profilePolicyRules = "0520";
629	Profile_load_procedure.mccMnc = MCC_MNC_WILDCARD;
630	
631	Profile_load_procedure.isErrorTest = true;
632	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
633	Profile_load_procedure.errorReason = "01/07";
634	
635	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
636	
637	
638	RecoverCard();
639}
640
641function TC_eUICC_ES8_StoreMetadata_10_Error_Icon_Type_is_set_but_icon_is_not ()
642{
643		
644	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Icon Type已设置,但icon未设置。ASN.1中,如果icon type存在,则icon也应存在";
645	curDis.TraceStart(sno++,tracenamestr);
646
647	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
648	Ini_powerOn_eUICC_LPAe_not_activate();
649	
650	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
651	TS_MANAGE_CHANNEL_OPEN();
652	
653	curLogicChannel = 1;
654	
655	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
656	TS_SELECT("Select ISD",ISD_R_AID,"9000");
657	
658	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
659	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
660	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
661	Profile_load_procedure.ES10b_GetEUICCInfo1();
662	
663
664	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
665	Profile_load_procedure.ES10b_GetEUICCChallenge();
666	
667	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
668	Profile_load_procedure.ES10b_AuthenticateServer();
669	
670	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
671	Profile_load_procedure.ES10b_PrepareDownload();
672	
673	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
674	Profile_load_procedure.ES10b_GetEID();
675	
676	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:设置了Icon Type,但是没设置icon;");
677	Profile_load_procedure.serviceProviderName = SP_NAME1;
678	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
679	Profile_load_procedure.iconType = "01";
680
681	Profile_load_procedure.isErrorTest = true;
682	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
683	Profile_load_procedure.errorReason = ErrorReason.scp03tStructureError + "/" + ErrorReason.incorrectInputValues;
684	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
685	
686	
687	RecoverCard();
688}
689
-cas 盲生成TC_eUICC_ES8_StoreMetadata/Import/TC_eUICC_ES8_StoreMetadata.js828 行 / 63768 字符 / gb18030入口函数 @L22
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.StoreMetadata,Test Sequence #01–#09(#10 VOID);#01-#06 Nominal、#07-#09 Error,见 steps 前缀,适用性 M。
4// Test points: S4-C1 SW;S5-C1 SW;S6-C1 SW;S7-C1 SW;S7-C2 SW;S7-C2 resp present;S8-C1 SW
5//   S8-C2 contains iccid 989209012143658709F5;S12-C1 SW;S13-C1 SW;S14-C1 SW;S15-C1 SW;S15-C2 SW
6//   S15-C2 resp present;S16-C1 SW;S16-C2 iconType;S16-C2 icon present;S20-C1 SW;S21-C1 SW;S22-C1 SW
7//   S23-C1 SW;S23-C2 SW;S23-C2 resp present;S24-C1 SW;S24-C2 profileClass;S28-C1 SW;S29-C1 SW
8//   S30-C1 SW;S31-C1 SW;S31-C2 SW;S31-C2 resp present;S32-C1 SW
9//   S32-C2 profilePolicyRules {ppr2} oracle;S36-C1 SW;S37-C1 SW;S38-C1 SW;S39-C1 SW;S39-C2 SW
10//   S39-C2 resp present;S40-C1 SW;S40-C2 profilePolicyRules {ppr1,ppr2} oracle;S44-C1 SW;S45-C1 SW
11//   S46-C1 SW;S47-C1 SW;S47-C2 SW;S47-C2 resp present;S48-C1 SW
12//   S48-C2 notificationConfigurationInfo count 8;S53-C1 SW;S54-C1 SW;S55-C1 SW;S55-C2 SW
13//   S55-C2 resp present;S59-C1 SW;S60-C1 SW;S61-C1 SW;S61-C2 SW;S61-C2 resp present;S65-C1 SW
14//   S66-C1 SW;S67-C1 SW;S67-C2 SW;S67-C2 resp present
15// 本函数由 CaseIR 4.2.5.2.1 编译生成(fullwave-blindgen-live-70,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
16// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
17// 适用性 M:编译期门,运行时由 harness 环境前置承担。
18// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
19// GIC 通信初始化+ISD-R 选择+相互认证+End User Confirmation+PrepareDownload(#PREP_DOWNLOAD_NO_CC): declared unexpanded (no fabricated bytes; provenance = expansion_source).
20// GIC-sub PROC_EUICC_INITIALIZATION_SEQUENCE(R2 闭合,K_annexC2_procs 表1256:RESET/[SELECT_MF]/[TERMINAL_CAPABILITY_LPAd]/[TERMINAL_PROFILE]): declared unexpanded (no fabricated bytes; provenance = expansion_source).
21// GIC-sub PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR(R2 闭合,K_annexC2_procs 表1258:[MANAGE_CHANNEL_OPEN]/MTD_SELECT(#ISD_R_AID)): declared unexpanded (no fabricated bytes; provenance = expansion_source).
22function TC_eUICC_ES8_StoreMetadata_01_09_10_VOID_01_06_Nominal_07_09_Error_steps() {
23    var bind = curBind;
24
25    // 步骤 1:Seq#01 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
26    // test-tool internal preparation (no APDU face): runtime-domain
27    // values per CaseIR unresolved (G Annex B generation rules);
28    // no fabricated bytes emitted here.
29
30    // 步骤 2:Seq#01 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
31    // BPP synthesized (4.2.5.2.1 seq#1, structural layer, SCP03t-unprotected): 1349 bytes; segments: INIT=191B, A0=22B, A1=340B, A3=796B.
32    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
33    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#1 接线(段选择/注入面)
34    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
35    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
36    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
37    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
38    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
39    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
40    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
41    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
42    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
43    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
44    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
45    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
46    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
47    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
48    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
49    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
50    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
51    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
52    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
53    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
54    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
55    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
56    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
57    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
58    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
59    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
60    //   [SPEC] PE header/version — PITS asn:67-68 2/3
61    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
62    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
63    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
64    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
65    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
66    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
67    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
68    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
69
70    // 步骤 3:Seq#01 IC3: Split the <BPP> into several segments arrays named: <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>(tc_step)
71    // BPP segment declaration (no APDU face): <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>.
72    // Segment partitioning lives in bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651 segment table; single source of segmentation knowledge — wire sends BPP_SEG_INIT first).
73    // Segment bytes are runtime-domain (BPP synthesized at the MTD_GENERATE_BPP step); not injected into this script; load steps follow the SCRIPT data=null contract.
74    // S3-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
75
76    // 步骤 4:Seq#01 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
77    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
78    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
79    var s4 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
80    bind.checkData("S4-C1 SW", "9000", s4.sw);
81
82    // 步骤 5:Seq#01 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
83    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
84    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
85    var s5 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
86    bind.checkData("S5-C1 SW", "9000", s5.sw);
87
88    // 步骤 6:Seq#01 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
89    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
90    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
91    var s6 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
92    bind.checkData("S6-C1 SW", "9000", s6.sw);
93
94    // 步骤 7:Seq#01 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
95    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
96    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
97    var s7 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
98    bind.checkData("S7-C1 SW", "9000", s7.sw);
99    bind.checkData("S7-C2 SW", "9000", s7.sw);
100    bind.checkData("S7-C2 resp present", "1", s7.resp.length > 0 ? "1" : "0");
101    // S7-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
102
103    // 步骤 8:Seq#01 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
104    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
105    var s8 = bind.sendApdu(null, "E2", "91", "00", "BF2D19A00C5A0A989209012143658709F55C095A9192939495B6B799", "00", "9000");
106    bind.checkData("S8-C1 SW", "9000", s8.sw);
107    var r2p8 = BindEs10xProcProfile.walkChoiceList(s8.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
108    var r2has8_0 = false;
109    for (var r2i8_0 = 0; r2i8_0 < r2p8.elements.length; r2i8_0++) {
110        var f = r2p8.elements[r2i8_0].fields;
111        if (f["5A"] === "989209012143658709F5") { r2has8_0 = true; break; }
112    }
113    bind.checkData("S8-C2 contains iccid 989209012143658709F5", "1", (r2p8.branch_tag === "A0" && r2has8_0) ? "1" : "0");
114    // S8-C3: kind 'requirement' pattern 'metadata consistent; PPR contained; class=operational' has no static generation face (corpus vacuum; see CaseIR unresolved).
115    // S8-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
116
117    // 步骤 9:Seq#02 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
118    // test-tool internal preparation (no APDU face): runtime-domain
119    // values per CaseIR unresolved (G Annex B generation rules);
120    // no fabricated bytes emitted here.
121
122    // 步骤 10:Seq#02 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
123    // BPP synthesized (4.2.5.2.1 seq#2, structural layer, SCP03t-unprotected): 1336 bytes; segments: INIT=191B, A0=22B, A1=327B, A3=796B.
124    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
125    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#2 接线(段选择/注入面)
126    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
127    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
128    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
129    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
130    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
131    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
132    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
133    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
134    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
135    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
136    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
137    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
138    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
139    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
140    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
141    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
142    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
143    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
144    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
145    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
146    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
147    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
148    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
149    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
150    //   [SPEC] PE header/version — PITS asn:67-68 2/3
151    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
152    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
153    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
154    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
155    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
156    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
157    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
158    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
159
160    // 步骤 11:Seq#02 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
161    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
162    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
163    // S11-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
164
165    // 步骤 12:Seq#02 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
166    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
167    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
168    var s12 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
169    bind.checkData("S12-C1 SW", "9000", s12.sw);
170
171    // 步骤 13:Seq#02 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
172    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
173    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
174    var s13 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
175    bind.checkData("S13-C1 SW", "9000", s13.sw);
176
177    // 步骤 14:Seq#02 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
178    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
179    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
180    var s14 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
181    bind.checkData("S14-C1 SW", "9000", s14.sw);
182
183    // 步骤 15:Seq#02 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
184    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
185    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
186    var s15 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
187    bind.checkData("S15-C1 SW", "9000", s15.sw);
188    bind.checkData("S15-C2 SW", "9000", s15.sw);
189    bind.checkData("S15-C2 resp present", "1", s15.resp.length > 0 ? "1" : "0");
190    // S15-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
191
192    // 步骤 16:Seq#02 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071)
193    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
194    var s16 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
195    bind.checkData("S16-C1 SW", "9000", s16.sw);
196    // Inline ASCII->hex helper (UTF8String expected values; values enter as
197    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
198    function __asciiHex(text) {
199        var out = "";
200        for (var i = 0; i < text.length; i++) {
201            var c = text.charCodeAt(i).toString(16).toUpperCase();
202            out += (c.length === 1 ? "0" + c : c);
203        }
204        return out;
205    }
206    var r2p16 = BindEs10xProcProfile.walkChoiceList(s16.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
207    var r2e16 = null;
208    for (var r2i16 = 0; r2i16 < r2p16.elements.length; r2i16++) {
209        if (r2p16.elements[r2i16].fields["5A"] === "989209012143658709F5") { r2e16 = r2p16.elements[r2i16].fields; break; }
210    }
211    bind.checkData("S16-C2 iconType", "00", r2e16 === null ? "absent" : (r2e16["93"] === undefined ? "absent" : r2e16["93"]));
212    bind.checkData("S16-C2 icon present", "1", (r2e16 !== null && r2e16["94"] !== undefined) ? "1" : "0");
213    // S16-C3: kind 'requirement' pattern 'metadata consistent (jpg)' has no static generation face (corpus vacuum; see CaseIR unresolved).
214    // S16-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
215
216    // 步骤 17:Seq#03 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
217    // test-tool internal preparation (no APDU face): runtime-domain
218    // values per CaseIR unresolved (G Annex B generation rules);
219    // no fabricated bytes emitted here.
220
221    // 步骤 18:Seq#03 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
222    // BPP synthesized (4.2.5.2.1 seq#3, structural layer, SCP03t-unprotected): 1064 bytes; segments: INIT=191B, A0=22B, A1=55B, A3=796B.
223    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
224    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#3 接线(段选择/注入面)
225    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
226    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
227    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
228    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
229    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
230    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
231    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
232    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
233    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
234    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
235    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
236    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
237    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
238    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
239    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
240    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
241    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
242    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
243    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
244    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
245    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
246    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
247    //   [SPEC] PE header/version — PITS asn:67-68 2/3
248    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
249    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
250    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
251    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
252    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
253    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
254    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
255    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
256
257    // 步骤 19:Seq#03 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
258    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
259    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
260    // S19-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
261
262    // 步骤 20:Seq#03 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
263    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
264    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
265    var s20 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
266    bind.checkData("S20-C1 SW", "9000", s20.sw);
267
268    // 步骤 21:Seq#03 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
269    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
270    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
271    var s21 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
272    bind.checkData("S21-C1 SW", "9000", s21.sw);
273
274    // 步骤 22:Seq#03 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
275    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
276    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
277    var s22 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
278    bind.checkData("S22-C1 SW", "9000", s22.sw);
279
280    // 步骤 23:Seq#03 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
281    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
282    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
283    var s23 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
284    bind.checkData("S23-C1 SW", "9000", s23.sw);
285    bind.checkData("S23-C2 SW", "9000", s23.sw);
286    bind.checkData("S23-C2 resp present", "1", s23.resp.length > 0 ? "1" : "0");
287    // S23-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
288
289    // 步骤 24:Seq#03 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
290    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
291    var s24 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
292    bind.checkData("S24-C1 SW", "9000", s24.sw);
293    // Inline ASCII->hex helper (UTF8String expected values; values enter as
294    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
295    function __asciiHex(text) {
296        var out = "";
297        for (var i = 0; i < text.length; i++) {
298            var c = text.charCodeAt(i).toString(16).toUpperCase();
299            out += (c.length === 1 ? "0" + c : c);
300        }
301        return out;
302    }
303    var r2p24 = BindEs10xProcProfile.walkChoiceList(s24.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
304    var r2e24 = null;
305    for (var r2i24 = 0; r2i24 < r2p24.elements.length; r2i24++) {
306        if (r2p24.elements[r2i24].fields["5A"] === "989209012143658709F5") { r2e24 = r2p24.elements[r2i24].fields; break; }
307    }
308    bind.checkData("S24-C2 profileClass", "02", r2e24 === null ? "absent" : (r2e24["95"] === undefined ? "absent" : r2e24["95"]));
309    // S24-C3: kind 'requirement' pattern 'default profileClass=operational' has no static generation face (corpus vacuum; see CaseIR unresolved).
310    // S24-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
311
312    // 步骤 25:Seq#04 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
313    // test-tool internal preparation (no APDU face): runtime-domain
314    // values per CaseIR unresolved (G Annex B generation rules);
315    // no fabricated bytes emitted here.
316
317    // 步骤 26:Seq#04 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
318    // BPP synthesized (4.2.5.2.1 seq#4, structural layer, SCP03t-unprotected): 1080 bytes; segments: INIT=191B, A0=22B, A1=71B, A3=796B.
319    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
320    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#4 接线(段选择/注入面)
321    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
322    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
323    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
324    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
325    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
326    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
327    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
328    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
329    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
330    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
331    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
332    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
333    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
334    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
335    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
336    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
337    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
338    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
339    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
340    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
341    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
342    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
343    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
344    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
345    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
346    //   [SPEC] PE header/version — PITS asn:67-68 2/3
347    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
348    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
349    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
350    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
351    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
352    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
353    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
354    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
355
356    // 步骤 27:Seq#04 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
357    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
358    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
359    // S27-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
360
361    // 步骤 28:Seq#04 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
362    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
363    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
364    var s28 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
365    bind.checkData("S28-C1 SW", "9000", s28.sw);
366
367    // 步骤 29:Seq#04 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
368    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
369    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
370    var s29 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
371    bind.checkData("S29-C1 SW", "9000", s29.sw);
372
373    // 步骤 30:Seq#04 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
374    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
375    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
376    var s30 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
377    bind.checkData("S30-C1 SW", "9000", s30.sw);
378
379    // 步骤 31:Seq#04 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
380    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
381    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
382    var s31 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
383    bind.checkData("S31-C1 SW", "9000", s31.sw);
384    bind.checkData("S31-C2 SW", "9000", s31.sw);
385    bind.checkData("S31-C2 resp present", "1", s31.resp.length > 0 ? "1" : "0");
386    // S31-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
387
388    // 步骤 32:Seq#04 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
389    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
390    var s32 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025A99", "00", "9000");
391    bind.checkData("S32-C1 SW", "9000", s32.sw);
392    // Inline ASCII->hex helper (UTF8String expected values; values enter as
393    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
394    function __asciiHex(text) {
395        var out = "";
396        for (var i = 0; i < text.length; i++) {
397            var c = text.charCodeAt(i).toString(16).toUpperCase();
398            out += (c.length === 1 ? "0" + c : c);
399        }
400        return out;
401    }
402    var r2p32 = BindEs10xProcProfile.walkChoiceList(s32.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
403    var r2e32 = null;
404    for (var r2i32 = 0; r2i32 < r2p32.elements.length; r2i32++) {
405        if (r2p32.elements[r2i32].fields["5A"] === "989209012143658709F5") { r2e32 = r2p32.elements[r2i32].fields; break; }
406    }
407    // S32-C2: profilePolicyRules {ppr2} 等值比对基准 = PprIds BIT STRING 位定位 oracle(模块未入包)
408    // ——运行时无比对操作数,发射 fail-closed 恒断言诚实面(如实计错,不伪造通过)。
409    bind.checkData("S32-C2 profilePolicyRules {ppr2} oracle", "ppr_bits_oracle_declared", "oracle_absent_ppr_bits_module_vacuum");
410    // S32-C3: kind 'requirement' pattern 'PPR stored in profile' has no static generation face (corpus vacuum; see CaseIR unresolved).
411    // S32-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
412
413    // 步骤 33:Seq#05 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
414    // test-tool internal preparation (no APDU face): runtime-domain
415    // values per CaseIR unresolved (G Annex B generation rules);
416    // no fabricated bytes emitted here.
417
418    // 步骤 34:Seq#05 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
419    // BPP synthesized (4.2.5.2.1 seq#5, structural layer, SCP03t-unprotected): 1080 bytes; segments: INIT=191B, A0=22B, A1=71B, A3=796B.
420    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
421    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#5 接线(段选择/注入面)
422    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
423    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
424    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
425    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
426    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
427    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
428    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
429    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
430    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
431    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
432    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
433    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
434    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
435    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
436    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
437    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
438    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
439    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
440    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
441    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
442    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
443    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
444    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
445    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
446    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
447    //   [SPEC] PE header/version — PITS asn:67-68 2/3
448    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
449    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
450    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
451    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
452    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
453    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
454    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
455    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
456
457    // 步骤 35:Seq#05 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
458    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
459    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
460    // S35-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
461
462    // 步骤 36:Seq#05 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
463    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
464    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
465    var s36 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
466    bind.checkData("S36-C1 SW", "9000", s36.sw);
467
468    // 步骤 37:Seq#05 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
469    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
470    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
471    var s37 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
472    bind.checkData("S37-C1 SW", "9000", s37.sw);
473
474    // 步骤 38:Seq#05 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
475    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
476    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
477    var s38 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
478    bind.checkData("S38-C1 SW", "9000", s38.sw);
479
480    // 步骤 39:Seq#05 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
481    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
482    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
483    var s39 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
484    bind.checkData("S39-C1 SW", "9000", s39.sw);
485    bind.checkData("S39-C2 SW", "9000", s39.sw);
486    bind.checkData("S39-C2 resp present", "1", s39.resp.length > 0 ? "1" : "0");
487    // S39-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
488
489    // 步骤 40:Seq#05 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
490    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
491    var s40 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025A99", "00", "9000");
492    bind.checkData("S40-C1 SW", "9000", s40.sw);
493    // Inline ASCII->hex helper (UTF8String expected values; values enter as
494    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
495    function __asciiHex(text) {
496        var out = "";
497        for (var i = 0; i < text.length; i++) {
498            var c = text.charCodeAt(i).toString(16).toUpperCase();
499            out += (c.length === 1 ? "0" + c : c);
500        }
501        return out;
502    }
503    var r2p40 = BindEs10xProcProfile.walkChoiceList(s40.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
504    var r2e40 = null;
505    for (var r2i40 = 0; r2i40 < r2p40.elements.length; r2i40++) {
506        if (r2p40.elements[r2i40].fields["5A"] === "989209012143658709F5") { r2e40 = r2p40.elements[r2i40].fields; break; }
507    }
508    // S40-C2: profilePolicyRules {ppr1,ppr2} 等值比对基准 = PprIds BIT STRING 位定位 oracle(模块未入包)
509    // ——运行时无比对操作数,发射 fail-closed 恒断言诚实面(如实计错,不伪造通过)。
510    bind.checkData("S40-C2 profilePolicyRules {ppr1,ppr2} oracle", "ppr_bits_oracle_declared", "oracle_absent_ppr_bits_module_vacuum");
511    // S40-C3: kind 'requirement' pattern 'PPRs stored' has no static generation face (corpus vacuum; see CaseIR unresolved).
512    // S40-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
513
514    // 步骤 41:Seq#06 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
515    // test-tool internal preparation (no APDU face): runtime-domain
516    // values per CaseIR unresolved (G Annex B generation rules);
517    // no fabricated bytes emitted here.
518
519    // 步骤 42:Seq#06 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
520    // BPP synthesized (4.2.5.2.1 seq#6, structural layer, SCP03t-unprotected): 1101 bytes; segments: INIT=191B, A0=22B, A1=92B, A3=796B.
521    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
522    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#6 接线(段选择/注入面)
523    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
524    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
525    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
526    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
527    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
528    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
529    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
530    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
531    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
532    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
533    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
534    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
535    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
536    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
537    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
538    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
539    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
540    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
541    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
542    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
543    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
544    //   [SPEC] BF25/B6 notificationConfigurationInfo — SGP.22 §5.5.3 :7373 [22] SEQUENCE OF NotificationConfigurationInformation(B6/30/03/0C 结构 SPEC;事件位集/FQDN 值 HYPOTHESIS——Annex E 缺席)
545    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
546    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
547    //   [SPEC] PE header/version — PITS asn:67-68 2/3
548    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
549    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
550    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
551    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
552    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
553    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
554    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
555    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
556    //   [HYPOTHESIS] TC/metadata-notifs — SGP.23 4.2.5.2.1 seq#6 METADATA_WITH_NOTIFS:#B6 notificationConfigurationInfo(SEQUENCE OF)在场;B6/30/03/0C 结构 SPEC(SGP.22 §5.5.3 :7373),事件位集 0xF0(install/enable/disable/delete)与 FQDN 值为占位 HYPOTHESIS(Annex E 缺席)
557
558    // 步骤 43:Seq#06 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
559    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
560    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
561    // S43-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
562
563    // 步骤 44:Seq#06 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
564    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
565    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
566    var s44 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
567    bind.checkData("S44-C1 SW", "9000", s44.sw);
568
569    // 步骤 45:Seq#06 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
570    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
571    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
572    var s45 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
573    bind.checkData("S45-C1 SW", "9000", s45.sw);
574
575    // 步骤 46:Seq#06 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
576    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
577    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
578    var s46 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
579    bind.checkData("S46-C1 SW", "9000", s46.sw);
580
581    // 步骤 47:Seq#06 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
582    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
583    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
584    var s47 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
585    bind.checkData("S47-C1 SW", "9000", s47.sw);
586    bind.checkData("S47-C2 SW", "9000", s47.sw);
587    bind.checkData("S47-C2 resp present", "1", s47.resp.length > 0 ? "1" : "0");
588    // S47-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
589
590    // 步骤 48:Seq#06 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071)
591    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
592    var s48 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025AB6", "00", "9000");
593    bind.checkData("S48-C1 SW", "9000", s48.sw);
594    // Inline ASCII->hex helper (UTF8String expected values; values enter as
595    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
596    function __asciiHex(text) {
597        var out = "";
598        for (var i = 0; i < text.length; i++) {
599            var c = text.charCodeAt(i).toString(16).toUpperCase();
600            out += (c.length === 1 ? "0" + c : c);
601        }
602        return out;
603    }
604    var r2p48 = BindEs10xProcProfile.walkChoiceList(s48.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
605    var r2e48 = null;
606    for (var r2i48 = 0; r2i48 < r2p48.elements.length; r2i48++) {
607        if (r2p48.elements[r2i48].fields["5A"] === "989209012143658709F5") { r2e48 = r2p48.elements[r2i48].fields; break; }
608    }
609    bind.checkData("S48-C2 notificationConfigurationInfo count 8", "8", r2e48 === null ? "absent" : (r2e48["B6"] === undefined ? "absent" : String(BindEs10xProcProfile.parseBerTlv(r2e48["B6"]).length)));
610
611    // 步骤 49:Seq#07 IC1: 通信初始化+选 ISD-R+相互认证+End User Confirmation+#PREP_DOWNLOAD_NO_CC(General IC 前置链)(tc_step;non_wire)
612    // General IC precondition-chain prose reference (no per-line APDU
613    // materialization): sub-commands are execution-side / registered in
614    // initial_conditions; no fabricated bytes emitted here (see CaseIR
615    // unresolved/open_items).
616
617    // 步骤 50:Seq#07 IC2: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
618    // test-tool internal preparation (no APDU face): runtime-domain
619    // values per CaseIR unresolved (G Annex B generation rules);
620    // no fabricated bytes emitted here.
621
622    // 步骤 51:Seq#07 IC3: <BPP> = MTD_GENERATE_BPP(tc_step)
623    // BPP synthesized (4.2.5.2.1 seq#7, structural layer, SCP03t-unprotected): 1349 bytes; segments: INIT=191B, A0=22B, A1=340B, A3=796B.
624    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
625    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#7 接线(段选择/注入面)
626    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
627    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
628    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
629    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
630    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
631    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
632    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
633    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
634    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
635    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
636    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
637    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
638    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
639    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
640    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
641    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
642    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
643    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
644    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
645    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
646    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
647    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
648    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
649    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
650    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
651    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
652    //   [SPEC] PE header/version — PITS asn:67-68 2/3
653    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
654    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
655    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
656    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
657    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
658    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
659    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
660    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
661    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#7(E 表 :1890-1911)Error: ICCID already present in the eUICC:初始条件 PROFILE_OPERATIONAL1 已安装且 Disabled;MTD_GENERATE_BPP 第三操作数 #METADATA_OP_PROF1(=#R_GET_METADATA_OP_PROF1 回读面:iccid #ICCID_OP_PROF1、PNG icon、profileClass operational、profileOwner mccMnc、PPR1)的 ICCID 与已装 profile 重复 → A1 末包 R_PIR_ICCID_ALREADY_EXIST(errorReason installFailedDueToIccidAlreadyExistsOnEuicc;RQ55_030/RQ25_017)。结构层名义 BPP(NO_PARAM、零畸形),冲突由 eUICC 卡态触发;meta_iccid_hex 显式声明与已装 ICCID 相同(=DEFAULT_ICCID_EF)。值域 HYPOTHESIS(Annex E 缺席)。
662
663    // 步骤 52:Seq#07 IC4: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
664    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
665    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
666    // S52-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
667
668    // 步骤 53:Seq#07 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
669    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
670    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
671    var s53 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
672    bind.checkData("S53-C1 SW", "9000", s53.sw);
673
674    // 步骤 54:Seq#07 IC6: MTD_STORE_DATA_SCRIPT(tc_step)
675    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
676    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
677    var s54 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
678    bind.checkData("S54-C1 SW", "9000", s54.sw);
679
680    // 步骤 55:Seq#07 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ25_017, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026)
681    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
682    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
683    var s55 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
684    bind.checkData("S55-C1 SW", "9000", s55.sw);
685    bind.checkData("S55-C2 SW", "9000", s55.sw);
686    bind.checkData("S55-C2 resp present", "1", s55.resp.length > 0 ? "1" : "0");
687    // S55-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
688
689    // 步骤 56:Seq#08 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
690    // test-tool internal preparation (no APDU face): runtime-domain
691    // values per CaseIR unresolved (G Annex B generation rules);
692    // no fabricated bytes emitted here.
693
694    // 步骤 57:Seq#08 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
695    // BPP synthesized (4.2.5.2.1 seq#8, structural layer, SCP03t-unprotected): 1068 bytes; segments: INIT=191B, A0=22B, A1=59B, A3=796B.
696    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
697    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#8 接线(段选择/注入面)
698    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
699    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
700    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
701    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
702    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
703    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
704    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
705    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
706    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
707    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
708    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
709    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
710    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
711    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
712    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
713    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
714    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
715    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
716    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
717    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
718    //   [SPEC] BF25/99 profilePolicyRules — PPR 在场而 profileOwner 缺席(SGP.23 4.2.5.2.1 seq#08 #METADATA_PPR_NO_OWNER 拒装变体;SGP.22 :7441 SHALL 被违反)
719    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
720    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
721    //   [SPEC] PE header/version — PITS asn:67-68 2/3
722    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
723    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
724    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
725    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
726    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
727    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
728    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
729    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
730    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#8(E 表 :1913-1932)Error: Profile Policy Rule is set but Profile Owner is not:初始条件 PROFILE_OPERATIONAL1 未装载;MTD_GENERATE_BPP 第三操作数 #METADATA_PPR_NO_OWNER = StoreMetadataRequest{iccid #ICCID_OP_PROF1, serviceProviderName #SP_NAME1, profileName #NAME_OP_PROF1, profilePolicyRules {ppr2}}(Annex A :17709)——PPR2 在场而 profileOwner 缺席,违反 SGP.22 :7441 profileOwner SHALL 随 profilePolicyRules 在场(RQ55_035)→ A1 末包 R_PIR_METADATA_INVALID(NOTE: errorReason pprNotAllowed/installFailedDueToUnknownError 亦可接受)。结构层故意省略 B7 profileOwner(ppr_without_owner 抑制);iccid/sp/name 沿用本 TC 参数化缺省(HYPOTHESIS,Annex 值域面不作发布断言)。
731
732    // 步骤 58:Seq#08 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
733    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
734    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
735    // S58-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
736
737    // 步骤 59:Seq#08 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
738    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
739    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
740    var s59 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
741    bind.checkData("S59-C1 SW", "9000", s59.sw);
742
743    // 步骤 60:Seq#08 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
744    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
745    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
746    var s60 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
747    bind.checkData("S60-C1 SW", "9000", s60.sw);
748
749    // 步骤 61:Seq#08 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026, RQ25_017)
750    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
751    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
752    var s61 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
753    bind.checkData("S61-C1 SW", "9000", s61.sw);
754    bind.checkData("S61-C2 SW", "9000", s61.sw);
755    bind.checkData("S61-C2 resp present", "1", s61.resp.length > 0 ? "1" : "0");
756    // S61-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
757
758    // 步骤 62:Seq#09 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
759    // test-tool internal preparation (no APDU face): runtime-domain
760    // values per CaseIR unresolved (G Annex B generation rules);
761    // no fabricated bytes emitted here.
762
763    // 步骤 63:Seq#09 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
764    // BPP synthesized (4.2.5.2.1 seq#9, structural layer, SCP03t-unprotected): 1077 bytes; segments: INIT=191B, A0=22B, A1=68B, A3=796B.
765    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
766    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#9 接线(段选择/注入面)
767    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
768    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
769    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
770    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
771    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
772    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
773    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
774    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
775    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
776    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
777    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
778    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
779    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
780    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
781    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
782    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
783    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
784    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
785    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
786    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
787    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
788    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
789    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
790    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
791    //   [SPEC] PE header/version — PITS asn:67-68 2/3
792    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
793    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
794    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
795    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
796    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
797    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
798    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
799    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
800    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#9(E 表 :1934-1953)Error: Profile Owner is set with a wildcard ('E') digits:初始条件 PROFILE_OPERATIONAL1 未装载;MTD_GENERATE_BPP 第三操作数 #METADATA_WILDCARD = StoreMetadataRequest{iccid #ICCID_OP_PROF1, serviceProviderName #SP_NAME1, profileName #NAME_OP_PROF1, profileOwner { mccMnc #MCC_MNC_WILDCARD }, profilePolicyRules {ppr2}}(Annex A :17713);#MCC_MNC_WILDCARD = 0x92 F9 EE(Annex A :16583,24.008 BCD 编码,MNC nibble=E 通配)违反 RQ55_035 mccMnc SHALL 不含通配 'E' 数字 → A1 末包 R_PIR_METADATA_INVALID(NOTE: errorReason pprNotAllowed 亦可接受)。B7 mccMnc 取规范常量 92F9EE(SPEC);iccid/sp/name 沿用本 TC 参数化缺省(HYPOTHESIS)。
801
802    // 步骤 64:Seq#09 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
803    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
804    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
805    // S64-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
806
807    // 步骤 65:Seq#09 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
808    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
809    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
810    var s65 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
811    bind.checkData("S65-C1 SW", "9000", s65.sw);
812
813    // 步骤 66:Seq#09 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
814    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
815    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
816    var s66 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
817    bind.checkData("S66-C1 SW", "9000", s66.sw);
818
819    // 步骤 67:Seq#09 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026, RQ25_017)
820    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
821    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
822    var s67 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
823    bind.checkData("S67-C1 SW", "9000", s67.sw);
824    bind.checkData("S67-C2 SW", "9000", s67.sw);
825    bind.checkData("S67-C2 resp present", "1", s67.resp.length > 0 ? "1" : "0");
826    // S67-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
827}
828

完整 unified diff

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

展开 diff(1518 行)
--- -man
+++ -cas
@@ -1,689 +1,828 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_StoreMetadata_01_Nominal_All_Metadata_fields_present_PNG_icon_used_and_PPR1_set + TC_eUICC_ES8_StoreMetadata_02_Nominal_With_JPG_icon + TC_eUICC_ES8_StoreMetadata_03_Nominal_Without_providing_Profile_Class + TC_eUICC_ES8_StoreMetadata_04_Nominal_With_PPR2_set + TC_eUICC_ES8_StoreMetadata_05_Nominal_With_PPR1_and_PPR2_set + TC_eUICC_ES8_StoreMetadata_06_Nominal_With_several_Notification_events_configured + TC_eUICC_ES8_StoreMetadata_07_Error_ICCID_already_present_in_the_eUICC + TC_eUICC_ES8_StoreMetadata_08_Error_Profile_Policy_Rule_is_set_but_Profile_Owner_is_not + TC_eUICC_ES8_StoreMetadata_09_Error_Profile_Owner_is_set_with_a_wildcard_E_digits + TC_eUICC_ES8_StoreMetadata_10_Error_Icon_Type_is_set_but_icon_is_not (extracted verbatim)
-
-function TC_eUICC_ES8_StoreMetadata_01_Nominal_All_Metadata_fields_present_PNG_icon_used_and_PPR1_set()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata所有字段都存在,其中设置了PNG icon和PPR1";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置了所有的参数,其中配置PNG icon 和PPR1;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;	
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "01";
-	Profile_load_procedure.icon = ICON_OP_PROF1;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
-	Profile_load_procedure.profileClass = "02";
-	Profile_load_procedure.profilePolicyRules = "0640";
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A9192939495B6B799";
-	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(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
-		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
-		curStrHandle.CheckData("01", proInfoListResponse.profileInfoListOk.arrOfElement[0].iconType, "iconType");
-		curStrHandle.CheckData(ICON_OP_PROF1, proInfoListResponse.profileInfoListOk.arrOfElement[0].icon, "icon");
-		curStrHandle.CheckData("02", proInfoListResponse.profileInfoListOk.arrOfElement[0].profileClass, "profileClass");
-		curStrHandle.CheckData("04F0", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].notificationAddress, "notificationAddress");
-		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
-		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_02_Nominal_With_JPG_icon ()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中iconType为jpg,icon为#ICON_JPG";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置JPG icon;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "00";
-	Profile_load_procedure.icon = ICON_JPG;
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A91929394";
-	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(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
-		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
-		curStrHandle.CheckData("00", proInfoListResponse.profileInfoListOk.arrOfElement[0].iconType, "iconType");
-		curStrHandle.CheckData(ICON_JPG, proInfoListResponse.profileInfoListOk.arrOfElement[0].icon, "icon");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_03_Nominal_Without_providing_Profile_Class ()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中未传入Profile Class。在这种情况下,默认Profile Class应该由eUICC设置为'Operational'";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage, Metadata域中没有配置providing Profile Class,eUICC应自动设置默认配置文件类别为「Operational」;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A919295B6";
-	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(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
-		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
-		curStrHandle.CheckData("02", proInfoListResponse.profileInfoListOk.arrOfElement[0].profileClass, "profileClass");//Operational
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_04_Nominal_With_PPR2_set ()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中profilePolicyRules设置为PPR2";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置PPR2");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.profilePolicyRules = "0520";
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A9192B799";
-	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(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
-		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
-		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
-		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_05_Nominal_With_PPR1_and_PPR2_set  ()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中profilePolicyRules设置为PPR1和PPR2";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置PPR1和PPR2");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.profilePolicyRules = "0560";
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5A9192B799";
-	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(SP_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].serviceProviderName, "serviceProviderName");
-		curStrHandle.CheckData(PROFILE_OPERATIONAL1_NAME1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileName, "profileName");
-		curStrHandle.CheckData(MCC_MNC1, proInfoListResponse.profileInfoListOk.arrOfElement[0].profileOwner.mccMnc, "mccMnc");
-		curStrHandle.CheckData("0560", proInfoListResponse.profileInfoListOk.arrOfElement[0].profilePolicyRules, "profilePolicyRules");
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_06_Nominal_With_several_Notification_events_configured()
-{
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中notificationConfigurationInfo配置多个通知事件";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Metadata域中配置多个Notification events;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = NAME_OP_PROF1;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "0780";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS3;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1].profileManagementOperation = "0780";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[1].notificationAddress = TEST_DP_ADDRESS2;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2].profileManagementOperation = "0640";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[2].notificationAddress = TEST_DP_ADDRESS2;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3].profileManagementOperation = "0640";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[3].notificationAddress = TEST_DP_ADDRESS3;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4].profileManagementOperation = "0520";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[4].notificationAddress = TEST_DP_ADDRESS3;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5].profileManagementOperation = "0520";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[5].notificationAddress = TEST_DP_ADDRESS4;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6].profileManagementOperation = "0410";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[6].notificationAddress = TEST_DP_ADDRESS1;
-	
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7].profileManagementOperation = "0410";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[7].notificationAddress = TEST_DP_ADDRESS3;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile信息;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "5AB6";
-	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("0780", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[0].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0780", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[1].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[1].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[2].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS2, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[2].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0640", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[3].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[3].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[4].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[4].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0520", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[5].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS4, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[5].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0410", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[6].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS1, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[6].notificationAddress, "notificationAddress");
-		
-		curStrHandle.CheckData("0410", proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[7].profileManagementOperation, "profileManagementOperation");
-		curStrHandle.CheckData(TEST_DP_ADDRESS3, proInfoListResponse.profileInfoListOk.arrOfElement[0].notificationConfigurationInfo.arrOfElement[7].notificationAddress, "notificationAddress");
-		
-		
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_07_Error_ICCID_already_present_in_the_eUICC()
-{
-	initial_condition_PROFILE_OPERATIONAL1_is_Disabled();
-	var ISD_P_Test01 = curProfile_ISD_P_AID;
-	
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中iccid设置为卡上已存在的ICCID";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:该ICCID已存在;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "01";
-	Profile_load_procedure.icon = ICON_OP_PROF1;
-	Profile_load_procedure.notificationConfigurationInfo = new SequenceOfElement("30");
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0] = new NotificationConfigurationInformation();
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].profileManagementOperation = "04F0";
-	Profile_load_procedure.notificationConfigurationInfo.arrOfElement[0].notificationAddress = TEST_DP_ADDRESS1;
-	Profile_load_procedure.profileClass = "02";
-	Profile_load_procedure.profilePolicyRules = "0640";
-	Profile_load_procedure.mccMnc = MCC_MNC1;
-	
-	Profile_load_procedure.isErrorTest = true;
-	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
-	Profile_load_procedure.errorReason = ErrorReason.installFailedDueToIccidAlreadyExistsOnEuicc;
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_08_Error_Profile_Policy_Rule_is_set_but_Profile_Owner_is_not()
-{
-		
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Profile Policy Rule已设置,但Profile Owner未设置";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:配置文件策略规则已设置,但配置文件所有者未设置;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.profilePolicyRules = "0520";
-	Profile_load_procedure.SetProfileOwner = false;
-	
-	Profile_load_procedure.isErrorTest = true;
-	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
-	Profile_load_procedure.errorReason = ErrorReason.scp03tStructureError + "/" + ErrorReason.incorrectInputValues;
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_09_Error_Profile_Owner_is_set_with_a_wildcard_E_digits()
-{
-		
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Profile Owner设置为’EEEEEE’";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:Profile Owner中出现字母通配符占位符E;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.profilePolicyRules = "0520";
-	Profile_load_procedure.mccMnc = MCC_MNC_WILDCARD;
-	
-	Profile_load_procedure.isErrorTest = true;
-	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
-	Profile_load_procedure.errorReason = "01/07";
-	
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_StoreMetadata_10_Error_Icon_Type_is_set_but_icon_is_not ()
-{
-		
-	tracenamestr = "测试目的:下载PROFILE_OPERATIONAL1,Metadata中Icon Type已设置,但icon未设置。ASN.1中,如果icon type存在,则icon也应存在";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	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命令,执行GetEuiccInfo1Request;");
-	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
-	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
-	Profile_load_procedure.ES10b_GetEUICCInfo1();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
-	Profile_load_procedure.ES10b_GetEUICCChallenge();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
-	Profile_load_procedure.ES10b_AuthenticateServer();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
-	Profile_load_procedure.ES10b_PrepareDownload();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
-	Profile_load_procedure.ES10b_GetEID();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage,Profile在eUICC上安装失败:设置了Icon Type,但是没设置icon;");
-	Profile_load_procedure.serviceProviderName = SP_NAME1;
-	Profile_load_procedure.profileName = PROFILE_OPERATIONAL1_NAME1;
-	Profile_load_procedure.iconType = "01";
-
-	Profile_load_procedure.isErrorTest = true;
-	Profile_load_procedure.bppCommandId = BppCommandId.storeMetadata;
-	Profile_load_procedure.errorReason = ErrorReason.scp03tStructureError + "/" + ErrorReason.incorrectInputValues;
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.StoreMetadata,Test Sequence #01–#09(#10 VOID);#01-#06 Nominal、#07-#09 Error,见 steps 前缀,适用性 M。
+// Test points: S4-C1 SW;S5-C1 SW;S6-C1 SW;S7-C1 SW;S7-C2 SW;S7-C2 resp present;S8-C1 SW
+//   S8-C2 contains iccid 989209012143658709F5;S12-C1 SW;S13-C1 SW;S14-C1 SW;S15-C1 SW;S15-C2 SW
+//   S15-C2 resp present;S16-C1 SW;S16-C2 iconType;S16-C2 icon present;S20-C1 SW;S21-C1 SW;S22-C1 SW
+//   S23-C1 SW;S23-C2 SW;S23-C2 resp present;S24-C1 SW;S24-C2 profileClass;S28-C1 SW;S29-C1 SW
+//   S30-C1 SW;S31-C1 SW;S31-C2 SW;S31-C2 resp present;S32-C1 SW
+//   S32-C2 profilePolicyRules {ppr2} oracle;S36-C1 SW;S37-C1 SW;S38-C1 SW;S39-C1 SW;S39-C2 SW
+//   S39-C2 resp present;S40-C1 SW;S40-C2 profilePolicyRules {ppr1,ppr2} oracle;S44-C1 SW;S45-C1 SW
+//   S46-C1 SW;S47-C1 SW;S47-C2 SW;S47-C2 resp present;S48-C1 SW
+//   S48-C2 notificationConfigurationInfo count 8;S53-C1 SW;S54-C1 SW;S55-C1 SW;S55-C2 SW
+//   S55-C2 resp present;S59-C1 SW;S60-C1 SW;S61-C1 SW;S61-C2 SW;S61-C2 resp present;S65-C1 SW
+//   S66-C1 SW;S67-C1 SW;S67-C2 SW;S67-C2 resp present
+// 本函数由 CaseIR 4.2.5.2.1 编译生成(fullwave-blindgen-live-70,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。
+// GIC 通信初始化+ISD-R 选择+相互认证+End User Confirmation+PrepareDownload(#PREP_DOWNLOAD_NO_CC): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GIC-sub PROC_EUICC_INITIALIZATION_SEQUENCE(R2 闭合,K_annexC2_procs 表1256:RESET/[SELECT_MF]/[TERMINAL_CAPABILITY_LPAd]/[TERMINAL_PROFILE]): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GIC-sub PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR(R2 闭合,K_annexC2_procs 表1258:[MANAGE_CHANNEL_OPEN]/MTD_SELECT(#ISD_R_AID)): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_ES8_StoreMetadata_01_09_10_VOID_01_06_Nominal_07_09_Error_steps() {
+    var bind = curBind;
+
+    // 步骤 1:Seq#01 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 2:Seq#01 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#1, structural layer, SCP03t-unprotected): 1349 bytes; segments: INIT=191B, A0=22B, A1=340B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#1 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
+    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+
+    // 步骤 3:Seq#01 IC3: Split the <BPP> into several segments arrays named: <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>(tc_step)
+    // BPP segment declaration (no APDU face): <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>.
+    // Segment partitioning lives in bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651 segment table; single source of segmentation knowledge — wire sends BPP_SEG_INIT first).
+    // Segment bytes are runtime-domain (BPP synthesized at the MTD_GENERATE_BPP step); not injected into this script; load steps follow the SCRIPT data=null contract.
+    // S3-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 4:Seq#01 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s4 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S4-C1 SW", "9000", s4.sw);
+
+    // 步骤 5:Seq#01 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s5 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S5-C1 SW", "9000", s5.sw);
+
+    // 步骤 6:Seq#01 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s6 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S6-C1 SW", "9000", s6.sw);
+
+    // 步骤 7:Seq#01 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s7 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S7-C1 SW", "9000", s7.sw);
+    bind.checkData("S7-C2 SW", "9000", s7.sw);
+    bind.checkData("S7-C2 resp present", "1", s7.resp.length > 0 ? "1" : "0");
+    // S7-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 8:Seq#01 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
+    // <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", "BF2D19A00C5A0A989209012143658709F55C095A9192939495B6B799", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s8.sw);
+    var r2p8 = BindEs10xProcProfile.walkChoiceList(s8.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2has8_0 = false;
+    for (var r2i8_0 = 0; r2i8_0 < r2p8.elements.length; r2i8_0++) {
+        var f = r2p8.elements[r2i8_0].fields;
+        if (f["5A"] === "989209012143658709F5") { r2has8_0 = true; break; }
+    }
+    bind.checkData("S8-C2 contains iccid 989209012143658709F5", "1", (r2p8.branch_tag === "A0" && r2has8_0) ? "1" : "0");
+    // S8-C3: kind 'requirement' pattern 'metadata consistent; PPR contained; class=operational' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S8-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
+
+    // 步骤 9:Seq#02 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 10:Seq#02 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#2, structural layer, SCP03t-unprotected): 1336 bytes; segments: INIT=191B, A0=22B, A1=327B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#2 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+
+    // 步骤 11:Seq#02 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S11-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 12:Seq#02 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s12 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S12-C1 SW", "9000", s12.sw);
+
+    // 步骤 13:Seq#02 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s13 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S13-C1 SW", "9000", s13.sw);
+
+    // 步骤 14:Seq#02 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s14 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S14-C1 SW", "9000", s14.sw);
+
+    // 步骤 15:Seq#02 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s15 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S15-C1 SW", "9000", s15.sw);
+    bind.checkData("S15-C2 SW", "9000", s15.sw);
+    bind.checkData("S15-C2 resp present", "1", s15.resp.length > 0 ? "1" : "0");
+    // S15-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 16:Seq#02 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s16 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s16.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p16 = BindEs10xProcProfile.walkChoiceList(s16.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e16 = null;
+    for (var r2i16 = 0; r2i16 < r2p16.elements.length; r2i16++) {
+        if (r2p16.elements[r2i16].fields["5A"] === "989209012143658709F5") { r2e16 = r2p16.elements[r2i16].fields; break; }
+    }
+    bind.checkData("S16-C2 iconType", "00", r2e16 === null ? "absent" : (r2e16["93"] === undefined ? "absent" : r2e16["93"]));
+    bind.checkData("S16-C2 icon present", "1", (r2e16 !== null && r2e16["94"] !== undefined) ? "1" : "0");
+    // S16-C3: kind 'requirement' pattern 'metadata consistent (jpg)' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S16-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
+
+    // 步骤 17:Seq#03 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 18:Seq#03 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#3, structural layer, SCP03t-unprotected): 1064 bytes; segments: INIT=191B, A0=22B, A1=55B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#3 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+
+    // 步骤 19:Seq#03 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S19-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 20:Seq#03 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s20 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s20.sw);
+
+    // 步骤 21:Seq#03 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s21 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S21-C1 SW", "9000", s21.sw);
+
+    // 步骤 22:Seq#03 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s22 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S22-C1 SW", "9000", s22.sw);
+
+    // 步骤 23:Seq#03 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s23 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S23-C1 SW", "9000", s23.sw);
+    bind.checkData("S23-C2 SW", "9000", s23.sw);
+    bind.checkData("S23-C2 resp present", "1", s23.resp.length > 0 ? "1" : "0");
+    // S23-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 24:Seq#03 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s24 = bind.sendApdu(null, "E2", "91", "00", "BF2D0EA00C5A0A989209012143658709F5", "00", "9000");
+    bind.checkData("S24-C1 SW", "9000", s24.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p24 = BindEs10xProcProfile.walkChoiceList(s24.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e24 = null;
+    for (var r2i24 = 0; r2i24 < r2p24.elements.length; r2i24++) {
+        if (r2p24.elements[r2i24].fields["5A"] === "989209012143658709F5") { r2e24 = r2p24.elements[r2i24].fields; break; }
+    }
+    bind.checkData("S24-C2 profileClass", "02", r2e24 === null ? "absent" : (r2e24["95"] === undefined ? "absent" : r2e24["95"]));
+    // S24-C3: kind 'requirement' pattern 'default profileClass=operational' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S24-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
+
+    // 步骤 25:Seq#04 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 26:Seq#04 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#4, structural layer, SCP03t-unprotected): 1080 bytes; segments: INIT=191B, A0=22B, A1=71B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#4 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
+    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+
+    // 步骤 27:Seq#04 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S27-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 28:Seq#04 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s28 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S28-C1 SW", "9000", s28.sw);
+
+    // 步骤 29:Seq#04 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s29 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S29-C1 SW", "9000", s29.sw);
+
+    // 步骤 30:Seq#04 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s30 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S30-C1 SW", "9000", s30.sw);
+
+    // 步骤 31:Seq#04 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s31 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S31-C1 SW", "9000", s31.sw);
+    bind.checkData("S31-C2 SW", "9000", s31.sw);
+    bind.checkData("S31-C2 resp present", "1", s31.resp.length > 0 ? "1" : "0");
+    // S31-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 32:Seq#04 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s32 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025A99", "00", "9000");
+    bind.checkData("S32-C1 SW", "9000", s32.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p32 = BindEs10xProcProfile.walkChoiceList(s32.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e32 = null;
+    for (var r2i32 = 0; r2i32 < r2p32.elements.length; r2i32++) {
+        if (r2p32.elements[r2i32].fields["5A"] === "989209012143658709F5") { r2e32 = r2p32.elements[r2i32].fields; break; }
+    }
+    // S32-C2: profilePolicyRules {ppr2} 等值比对基准 = PprIds BIT STRING 位定位 oracle(模块未入包)
+    // ——运行时无比对操作数,发射 fail-closed 恒断言诚实面(如实计错,不伪造通过)。
+    bind.checkData("S32-C2 profilePolicyRules {ppr2} oracle", "ppr_bits_oracle_declared", "oracle_absent_ppr_bits_module_vacuum");
+    // S32-C3: kind 'requirement' pattern 'PPR stored in profile' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S32-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
+
+    // 步骤 33:Seq#05 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 34:Seq#05 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#5, structural layer, SCP03t-unprotected): 1080 bytes; segments: INIT=191B, A0=22B, A1=71B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#5 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
+    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+
+    // 步骤 35:Seq#05 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S35-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 36:Seq#05 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s36 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S36-C1 SW", "9000", s36.sw);
+
+    // 步骤 37:Seq#05 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s37 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S37-C1 SW", "9000", s37.sw);
+
+    // 步骤 38:Seq#05 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s38 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S38-C1 SW", "9000", s38.sw);
+
+    // 步骤 39:Seq#05 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s39 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S39-C1 SW", "9000", s39.sw);
+    bind.checkData("S39-C2 SW", "9000", s39.sw);
+    bind.checkData("S39-C2 resp present", "1", s39.resp.length > 0 ? "1" : "0");
+    // S39-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 40:Seq#05 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071, RQ29_001, RQ29_002)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s40 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025A99", "00", "9000");
+    bind.checkData("S40-C1 SW", "9000", s40.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p40 = BindEs10xProcProfile.walkChoiceList(s40.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e40 = null;
+    for (var r2i40 = 0; r2i40 < r2p40.elements.length; r2i40++) {
+        if (r2p40.elements[r2i40].fields["5A"] === "989209012143658709F5") { r2e40 = r2p40.elements[r2i40].fields; break; }
+    }
+    // S40-C2: profilePolicyRules {ppr1,ppr2} 等值比对基准 = PprIds BIT STRING 位定位 oracle(模块未入包)
+    // ——运行时无比对操作数,发射 fail-closed 恒断言诚实面(如实计错,不伪造通过)。
+    bind.checkData("S40-C2 profilePolicyRules {ppr1,ppr2} oracle", "ppr_bits_oracle_declared", "oracle_absent_ppr_bits_module_vacuum");
+    // S40-C3: kind 'requirement' pattern 'PPRs stored' has no static generation face (corpus vacuum; see CaseIR unresolved).
+    // S40-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
+
+    // 步骤 41:Seq#06 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 42:Seq#06 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#6, structural layer, SCP03t-unprotected): 1101 bytes; segments: INIT=191B, A0=22B, A1=92B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#6 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [SPEC] BF25/B6 notificationConfigurationInfo — SGP.22 §5.5.3 :7373 [22] SEQUENCE OF NotificationConfigurationInformation(B6/30/03/0C 结构 SPEC;事件位集/FQDN 值 HYPOTHESIS——Annex E 缺席)
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+    //   [HYPOTHESIS] TC/metadata-notifs — SGP.23 4.2.5.2.1 seq#6 METADATA_WITH_NOTIFS:#B6 notificationConfigurationInfo(SEQUENCE OF)在场;B6/30/03/0C 结构 SPEC(SGP.22 §5.5.3 :7373),事件位集 0xF0(install/enable/disable/delete)与 FQDN 值为占位 HYPOTHESIS(Annex E 缺席)
+
+    // 步骤 43:Seq#06 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S43-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 44:Seq#06 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s44 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S44-C1 SW", "9000", s44.sw);
+
+    // 步骤 45:Seq#06 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s45 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S45-C1 SW", "9000", s45.sw);
+
+    // 步骤 46:Seq#06 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_166, RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s46 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S46-C1 SW", "9000", s46.sw);
+
+    // 步骤 47:Seq#06 2: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
+    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s47 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S47-C1 SW", "9000", s47.sw);
+    bind.checkData("S47-C2 SW", "9000", s47.sw);
+    bind.checkData("S47-C2 resp present", "1", s47.resp.length > 0 ? "1" : "0");
+    // S47-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 48:Seq#06 3: MTD_STORE_DATA(tc_step;REQ: RQ32_071)
+    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
+    var s48 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C025AB6", "00", "9000");
+    bind.checkData("S48-C1 SW", "9000", s48.sw);
+    // Inline ASCII->hex helper (UTF8String expected values; values enter as
+    // ASCII literals traced to CaseIR check text / F_annexA_constants rows).
+    function __asciiHex(text) {
+        var out = "";
+        for (var i = 0; i < text.length; i++) {
+            var c = text.charCodeAt(i).toString(16).toUpperCase();
+            out += (c.length === 1 ? "0" + c : c);
+        }
+        return out;
+    }
+    var r2p48 = BindEs10xProcProfile.walkChoiceList(s48.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e48 = null;
+    for (var r2i48 = 0; r2i48 < r2p48.elements.length; r2i48++) {
+        if (r2p48.elements[r2i48].fields["5A"] === "989209012143658709F5") { r2e48 = r2p48.elements[r2i48].fields; break; }
+    }
+    bind.checkData("S48-C2 notificationConfigurationInfo count 8", "8", r2e48 === null ? "absent" : (r2e48["B6"] === undefined ? "absent" : String(BindEs10xProcProfile.parseBerTlv(r2e48["B6"]).length)));
+
+    // 步骤 49:Seq#07 IC1: 通信初始化+选 ISD-R+相互认证+End User Confirmation+#PREP_DOWNLOAD_NO_CC(General IC 前置链)(tc_step;non_wire)
+    // General IC precondition-chain prose reference (no per-line APDU
+    // materialization): sub-commands are execution-side / registered in
+    // initial_conditions; no fabricated bytes emitted here (see CaseIR
+    // unresolved/open_items).
+
+    // 步骤 50:Seq#07 IC2: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 51:Seq#07 IC3: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#7, structural layer, SCP03t-unprotected): 1349 bytes; segments: INIT=191B, A0=22B, A1=340B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#7 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/93+94 icon — Annex E 缺席,自定图标
+    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
+    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
+    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#7(E 表 :1890-1911)Error: ICCID already present in the eUICC:初始条件 PROFILE_OPERATIONAL1 已安装且 Disabled;MTD_GENERATE_BPP 第三操作数 #METADATA_OP_PROF1(=#R_GET_METADATA_OP_PROF1 回读面:iccid #ICCID_OP_PROF1、PNG icon、profileClass operational、profileOwner mccMnc、PPR1)的 ICCID 与已装 profile 重复 → A1 末包 R_PIR_ICCID_ALREADY_EXIST(errorReason installFailedDueToIccidAlreadyExistsOnEuicc;RQ55_030/RQ25_017)。结构层名义 BPP(NO_PARAM、零畸形),冲突由 eUICC 卡态触发;meta_iccid_hex 显式声明与已装 ICCID 相同(=DEFAULT_ICCID_EF)。值域 HYPOTHESIS(Annex E 缺席)。
+
+    // 步骤 52:Seq#07 IC4: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S52-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 53:Seq#07 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s53 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S53-C1 SW", "9000", s53.sw);
+
+    // 步骤 54:Seq#07 IC6: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s54 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S54-C1 SW", "9000", s54.sw);
+
+    // 步骤 55:Seq#07 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ25_017, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s55 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S55-C1 SW", "9000", s55.sw);
+    bind.checkData("S55-C2 SW", "9000", s55.sw);
+    bind.checkData("S55-C2 resp present", "1", s55.resp.length > 0 ? "1" : "0");
+    // S55-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 56:Seq#08 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 57:Seq#08 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#8, structural layer, SCP03t-unprotected): 1068 bytes; segments: INIT=191B, A0=22B, A1=59B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#8 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [SPEC] BF25/99 profilePolicyRules — PPR 在场而 profileOwner 缺席(SGP.23 4.2.5.2.1 seq#08 #METADATA_PPR_NO_OWNER 拒装变体;SGP.22 :7441 SHALL 被违反)
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#8(E 表 :1913-1932)Error: Profile Policy Rule is set but Profile Owner is not:初始条件 PROFILE_OPERATIONAL1 未装载;MTD_GENERATE_BPP 第三操作数 #METADATA_PPR_NO_OWNER = StoreMetadataRequest{iccid #ICCID_OP_PROF1, serviceProviderName #SP_NAME1, profileName #NAME_OP_PROF1, profilePolicyRules {ppr2}}(Annex A :17709)——PPR2 在场而 profileOwner 缺席,违反 SGP.22 :7441 profileOwner SHALL 随 profilePolicyRules 在场(RQ55_035)→ A1 末包 R_PIR_METADATA_INVALID(NOTE: errorReason pprNotAllowed/installFailedDueToUnknownError 亦可接受)。结构层故意省略 B7 profileOwner(ppr_without_owner 抑制);iccid/sp/name 沿用本 TC 参数化缺省(HYPOTHESIS,Annex 值域面不作发布断言)。
+
+    // 步骤 58:Seq#08 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S58-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 59:Seq#08 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s59 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S59-C1 SW", "9000", s59.sw);
+
+    // 步骤 60:Seq#08 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s60 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S60-C1 SW", "9000", s60.sw);
+
+    // 步骤 61:Seq#08 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026, RQ25_017)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s61 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S61-C1 SW", "9000", s61.sw);
+    bind.checkData("S61-C2 SW", "9000", s61.sw);
+    bind.checkData("S61-C2 resp present", "1", s61.resp.length > 0 ? "1" : "0");
+    // S61-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 62:Seq#09 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
+    // test-tool internal preparation (no APDU face): runtime-domain
+    // values per CaseIR unresolved (G Annex B generation rules);
+    // no fabricated bytes emitted here.
+
+    // 步骤 63:Seq#09 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.5.2.1 seq#9, structural layer, SCP03t-unprotected): 1077 bytes; segments: INIT=191B, A0=22B, A1=68B, A3=796B.
+    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
+    //   [SPEC] TC — SGP.23 4.2.5.2.1 seq#9 接线(段选择/注入面)
+    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
+    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
+    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
+    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
+    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
+    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
+    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
+    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
+    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
+    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
+    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
+    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
+    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
+    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
+    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
+    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
+    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
+    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
+    //   [HYPOTHESIS] BF25/B7 profileOwner — OperatorId mccMnc 值(3GPP 24.008 编码面 SPEC,值 HYPOTHESIS)
+    //   [SPEC] BF25/99 profilePolicyRules — SGP.22 :1438 PprIds BIT STRING 编码面
+    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
+    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
+    //   [SPEC] PE header/version — PITS asn:67-68 2/3
+    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
+    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
+    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
+    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
+    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
+    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
+    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
+    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
+    //   [SPEC] TC/error — SGP.23 4.2.5.2.1 seq#9(E 表 :1934-1953)Error: Profile Owner is set with a wildcard ('E') digits:初始条件 PROFILE_OPERATIONAL1 未装载;MTD_GENERATE_BPP 第三操作数 #METADATA_WILDCARD = StoreMetadataRequest{iccid #ICCID_OP_PROF1, serviceProviderName #SP_NAME1, profileName #NAME_OP_PROF1, profileOwner { mccMnc #MCC_MNC_WILDCARD }, profilePolicyRules {ppr2}}(Annex A :17713);#MCC_MNC_WILDCARD = 0x92 F9 EE(Annex A :16583,24.008 BCD 编码,MNC nibble=E 通配)违反 RQ55_035 mccMnc SHALL 不含通配 'E' 数字 → A1 末包 R_PIR_METADATA_INVALID(NOTE: errorReason pprNotAllowed 亦可接受)。B7 mccMnc 取规范常量 92F9EE(SPEC);iccid/sp/name 沿用本 TC 参数化缺省(HYPOTHESIS)。
+
+    // 步骤 64:Seq#09 IC3: Execute the step IC3 of the Test Sequence #01(切分为 <BPP_SEG_INIT>/<BPP_SEG_A0>/<BPP_SEG_A1>/<BPP_SEG_A3>)(tc_step)
+    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
+    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
+    // S64-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
+
+    // 步骤 65:Seq#09 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s65 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S65-C1 SW", "9000", s65.sw);
+
+    // 步骤 66:Seq#09 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
+    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s66 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S66-C1 SW", "9000", s66.sw);
+
+    // 步骤 67:Seq#09 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_167, RQ55_029, RQ55_031, RQ55_033, RQ55_035, RQ24_028, RQ57_040, RQ31_166, RQ55_030, RQ55_032, RQ25_024, RQ25_025, RQ25_026, RQ25_017)
+    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
+    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
+    var s67 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S67-C1 SW", "9000", s67.sw);
+    bind.checkData("S67-C2 SW", "9000", s67.sw);
+    bind.checkData("S67-C2 resp present", "1", s67.resp.length > 0 ? "1" : "0");
+    // S67-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
 }