eSIM RSP 测试用例对比站

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

源码对照:4.2.3.2.1

ES8+ 初始化安全通道 / TC_eUICC_ES8+.InitialiseSecureChannel

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
273 行 / 11827 字符 / gb18030
-cas 入口
TC_eUICC_ES8_InitialiseSecureChannel/Import/TC_eUICC_ES8_InitialiseSecureChannel.js
311 行 / 23930 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js273 行 / 11827 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_InitialiseSecureChannel_01_Error_Invalid_Remote_Operation + TC_eUICC_ES8_InitialiseSecureChannel_02_Error_Invalid_SMDP_Signature + TC_eUICC_ES8_InitialiseSecureChannel_03_Error_Invalid_Transaction_Identifier + TC_eUICC_ES8_InitialiseSecureChannel_04_Error_Invalid_CRT_Values + TC_eUICC_ES8_InitialiseSecureChannel_05_Error_InitialiseSecureChannel_request_while_Secure_Channel_Session_is_ongoing (extracted verbatim)
2
3function TC_eUICC_ES8_InitialiseSecureChannel_01_Error_Invalid_Remote_Operation()
4{
5	
6	tracenamestr = "测试目的:执行InitialiseSecureChannel,remoteOpId为#INVALID_REMOTE_OP_ID";
7	curDis.TraceStart(sno++,tracenamestr);
8	
9	curDis.TestStepStart2(stno++,"复位;");
10	ResetCard();
11	
12	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
13	TS_TERMINAL_CAPABILITY_cmd();
14	
15	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
16	TS_MANAGE_CHANNEL_OPEN();
17	
18	curLogicChannel = 1;
19	
20	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
21	TS_SELECT("Select ISD",ISD_R_AID,"9000");
22	
23	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
24	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
25	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
26	Profile_load_procedure.ES10b_GetEUICCInfo1();
27	
28	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
29	Profile_load_procedure.ES10b_GetEUICCChallenge();
30
31	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
32	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
33	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
34	Profile_load_procedure.ES10b_AuthenticateServer();
35	
36	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
37	Profile_load_procedure.ES10b_PrepareDownload();
38	
39	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
40	Profile_load_procedure.ES10b_GetEID();
41	
42	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Invalid RemoteOpId");
43	Profile_load_procedure.hostId = "47534D4120534D2D5858";
44	Profile_load_procedure.isErrorTest=true;
45	Profile_load_procedure.remoteOpId ="08";
46	Profile_load_procedure.bppCommandId="00";
47	Profile_load_procedure.errorReason="05";
48	Profile_load_procedure.simaResponse = "";
49	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
50	
51	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
52	curStrHandle.CheckData("05", errorReason, "errorReason");
53	
54	RecoverCard();
55}
56
57function TC_eUICC_ES8_InitialiseSecureChannel_02_Error_Invalid_SMDP_Signature()
58{
59			
60	tracenamestr = "测试目的:执行InitialiseSecureChannel,smdpSign为无效的SM-DP+签名";
61	curDis.TraceStart(sno++,tracenamestr);
62	
63	curDis.TestStepStart2(stno++,"复位;");
64	ResetCard();
65	
66	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
67	TS_TERMINAL_CAPABILITY_cmd();
68	
69	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
70	TS_MANAGE_CHANNEL_OPEN();
71	
72	curLogicChannel = 1;
73	
74	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
75	TS_SELECT("Select ISD",ISD_R_AID,"9000");
76	
77	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
78	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
79	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
80	Profile_load_procedure.ES10b_GetEUICCInfo1();
81	
82	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
83	Profile_load_procedure.ES10b_GetEUICCChallenge();
84
85	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
86	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
87	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
88	Profile_load_procedure.ES10b_AuthenticateServer();
89	
90	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
91	Profile_load_procedure.ES10b_PrepareDownload();
92	
93	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
94	Profile_load_procedure.ES10b_GetEID();
95	
96	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Invalid SMDP_Signature");
97	Profile_load_procedure.hostId = "47534D4120534D2D5858";
98	Profile_load_procedure.isErrorTest=true;
99	Profile_load_procedure.remoteOpId ="01";
100	Profile_load_procedure.bppCommandId="00";
101	Profile_load_procedure.errorReason="02";
102	Profile_load_procedure.simaResponse = "";
103	Profile_load_procedure.DPbpInforObj.D_key=curStrHandle.RandHexStr(32);
104	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
105	
106	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
107	curStrHandle.CheckData("02", errorReason, "errorReason");
108	
109	RecoverCard();
110}
111
112function TC_eUICC_ES8_InitialiseSecureChannel_03_Error_Invalid_Transaction_Identifier ()
113{
114	
115	tracenamestr = "测试目的:执行InitialiseSecureChannel,transactionId为无效的Transaction Identifier";
116	curDis.TraceStart(sno++,tracenamestr);
117	
118	curDis.TestStepStart2(stno++,"复位;");
119	ResetCard();
120	
121	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
122	TS_TERMINAL_CAPABILITY_cmd();
123	
124	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
125	TS_MANAGE_CHANNEL_OPEN();
126	
127	curLogicChannel = 1;
128	
129	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
130	TS_SELECT("Select ISD",ISD_R_AID,"9000");
131	
132	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
133	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
134	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
135	Profile_load_procedure.ES10b_GetEUICCInfo1();
136	
137	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
138	Profile_load_procedure.ES10b_GetEUICCChallenge();
139
140	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
141	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
142	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
143	Profile_load_procedure.ES10b_AuthenticateServer();
144	
145	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
146	Profile_load_procedure.ES10b_PrepareDownload();
147	
148	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
149	Profile_load_procedure.ES10b_GetEID();
150	
151	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Invalid_Transaction_Identifier ");
152	var curTransactionId = Profile_load_procedure.authServerRequest.serverSigned1.transactionId;
153	Profile_load_procedure.authServerRequest.serverSigned1.transactionId=curStrHandle.RandHexStr(16);
154	Profile_load_procedure.hostId = "47534D4120534D2D5858";
155	Profile_load_procedure.isErrorTest=true;
156	Profile_load_procedure.remoteOpId ="01";
157	Profile_load_procedure.bppCommandId="00";
158	Profile_load_procedure.errorReason=ErrorReason.invalidTransactionId;
159	Profile_load_procedure.simaResponse = "";
160 	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
161	
162	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
163	curStrHandle.CheckData("03", errorReason, "errorReason");
164	
165	RecoverCard();
166}
167
168function TC_eUICC_ES8_InitialiseSecureChannel_04_Error_Invalid_CRT_Values()
169{
170	
171	tracenamestr = "测试目的:执行InitialiseSecureChannel,controlRefTemplate为无效的CRT值";
172	curDis.TraceStart(sno++,tracenamestr);
173
174	curDis.TestStepStart2(stno++,"复位;");
175	ResetCard();
176	
177	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
178	TS_TERMINAL_CAPABILITY_cmd();
179	
180	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
181	TS_MANAGE_CHANNEL_OPEN();
182	
183	curLogicChannel = 1;
184	
185	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
186	TS_SELECT("Select ISD",ISD_R_AID,"9000");
187	
188	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
189	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
190	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
191	Profile_load_procedure.ES10b_GetEUICCInfo1();
192	
193	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
194	Profile_load_procedure.ES10b_GetEUICCChallenge();
195	
196	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
197	Profile_load_procedure.ES10b_AuthenticateServer();
198	
199	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
200	Profile_load_procedure.ES10b_PrepareDownload();
201	
202	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
203	Profile_load_procedure.ES10b_GetEID();
204	
205	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Invalid CRT Values");
206	Profile_load_procedure.isErrorTest=true;
207	Profile_load_procedure.CRTkeyType = "80";
208	Profile_load_procedure.errorReason="04";
209	Profile_load_procedure.InitialiseSecureChannel();
210	
211	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
212	curStrHandle.CheckData("04", errorReason, "errorReason");
213	
214  RecoverCard();
215}
216
217function TC_eUICC_ES8_InitialiseSecureChannel_05_Error_InitialiseSecureChannel_request_while_Secure_Channel_Session_is_ongoing()
218{
219	
220	tracenamestr = "测试目的:安全通道会话已在进行中时,确保eUICC能够拒绝InitialiseSecureChannel请求";
221	curDis.TraceStart(sno++,tracenamestr);
222
223	curDis.TestStepStart2(stno++,"复位;");
224	ResetCard();
225	
226	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
227	TS_TERMINAL_CAPABILITY_cmd();
228	
229	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
230	TS_MANAGE_CHANNEL_OPEN();
231	
232	curLogicChannel = 1;
233	
234	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
235	TS_SELECT("Select ISD",ISD_R_AID,"9000");
236	
237	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
238	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
239	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
240	Profile_load_procedure.ES10b_GetEUICCInfo1();
241	
242	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
243	Profile_load_procedure.ES10b_GetEUICCChallenge();
244	
245	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
246	Profile_load_procedure.ES10b_AuthenticateServer();
247	
248	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
249	Profile_load_procedure.ES10b_PrepareDownload();
250	
251	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
252	Profile_load_procedure.ES10b_GetEID();
253	
254	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--通道已被建立再发InitialiseSecureChannel");
255	Profile_load_procedure.isErrorTest=true;
256	Profile_load_procedure.errorReason="7F";
257	Profile_load_procedure.InitialiseSecureChannelOngoingRejected();
258	
259	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
260	curStrHandle.CheckData("7F", errorReason, "errorReason");
261	if(typeof(Profile_load_procedure.profInstallationResult.profileInstallationResultData.notificationMetadata.iccid) == "undefined")
262	{
263		
264		return;
265	}
266	else
267	{
268		obj.SubLevelError ("NotificationMetadata ICCID should be absent");			
269	}	
270	    	
271  RecoverCard();
272}
273
-cas 盲生成TC_eUICC_ES8_InitialiseSecureChannel/Import/TC_eUICC_ES8_InitialiseSecureChannel.js311 行 / 23930 字符 / gb18030入口函数 @L14
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.InitialiseSecureChannel,Test Sequence #01–#05(全部 Error 序列);见 steps 前缀,适用性 M。
4// Test points: S4-C1 SW;S4-C2 SW;S4-C2 resp present;S8-C1 SW;S8-C2 SW;S8-C2 resp present;S12-C1 SW
5//   S12-C2 SW;S12-C2 resp present;S16-C1 SW;S16-C2 SW;S16-C2 resp present;S20-C1 SW;S21-C1 SW
6//   S22-C1 SW acceptable
7// 本函数由 CaseIR 4.2.3.2.1 编译生成(fullwave-blindgen-live-70,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
8// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
9// 适用性 M:编译期门,运行时由 harness 环境前置承担。
10// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
11// GIC 通信初始化+ISD-R 选择+相互认证+End User Confirmation+PrepareDownload(#PREP_DOWNLOAD_NO_CC): declared unexpanded (no fabricated bytes; provenance = expansion_source).
12// 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).
13// 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).
14function TC_eUICC_ES8_InitialiseSecureChannel_01_05_Error_steps() {
15    var bind = curBind;
16
17    // 步骤 1:Seq#01 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
18    // test-tool internal preparation (no APDU face): runtime-domain
19    // values per CaseIR unresolved (G Annex B generation rules);
20    // no fabricated bytes emitted here.
21
22    // 步骤 2:Seq#01 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
23    // BPP synthesized (4.2.3.2.1 seq#1, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, A3=796B.
24    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
25    //   [SPEC] TC — SGP.23 4.2.3.2.1 seq#1 接线(段选择/注入面)
26    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
27    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
28    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
29    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
30    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
31    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
32    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
33    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
34    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
35    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
36    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
37    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
38    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
39    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
40    //   [HYPOTHESIS] BF23/82 remoteOpId — 注入 invalid_op_id:未定义 RemoteOpId(4.2.3.2.1 seq#01)
41    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
42    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
43    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
44    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
45    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
46    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
47    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
48    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
49    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
50    //   [SPEC] PE header/version — PITS asn:67-68 2/3
51    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
52    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
53    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
54    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
55    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
56    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
57    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
58    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
59
60    // 步骤 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)
61    // BPP segment declaration (no APDU face): <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>.
62    // 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).
63    // 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.
64    // S3-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
65
66    // 步骤 4:Seq#01 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_012, RQ55_015, RQ55_023, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
67    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
68    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
69    var s4 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
70    bind.checkData("S4-C1 SW", "9000", s4.sw);
71    bind.checkData("S4-C2 SW", "9000", s4.sw);
72    bind.checkData("S4-C2 resp present", "1", s4.resp.length > 0 ? "1" : "0");
73    // S4-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
74    // S4-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
75
76    // 步骤 5:Seq#02 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
77    // test-tool internal preparation (no APDU face): runtime-domain
78    // values per CaseIR unresolved (G Annex B generation rules);
79    // no fabricated bytes emitted here.
80
81    // 步骤 6:Seq#02 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
82    // BPP synthesized (4.2.3.2.1 seq#2, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, A3=796B.
83    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
84    //   [SPEC] TC — SGP.23 4.2.3.2.1 seq#2 接线(段选择/注入面)
85    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
86    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
87    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
88    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
89    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
90    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
91    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
92    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
93    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
94    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
95    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
96    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
97    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
98    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
99    //   [HYPOTHESIS] BF23/5F37 smdpSign — 注入 invalid_sign:末字节翻转(4.2.3.2.1 seq#02)
100    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
101    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
102    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
103    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
104    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
105    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
106    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
107    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
108    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
109    //   [SPEC] PE header/version — PITS asn:67-68 2/3
110    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
111    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
112    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
113    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
114    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
115    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
116    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
117    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
118
119    // 步骤 7: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)
120    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
121    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
122
123    // 步骤 8:Seq#02 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_011, RQ55_015, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
124    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
125    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
126    var s8 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
127    bind.checkData("S8-C1 SW", "9000", s8.sw);
128    bind.checkData("S8-C2 SW", "9000", s8.sw);
129    bind.checkData("S8-C2 resp present", "1", s8.resp.length > 0 ? "1" : "0");
130    // S8-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
131    // S8-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
132
133    // 步骤 9:Seq#03 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
134    // test-tool internal preparation (no APDU face): runtime-domain
135    // values per CaseIR unresolved (G Annex B generation rules);
136    // no fabricated bytes emitted here.
137
138    // 步骤 10:Seq#03 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
139    // BPP synthesized (4.2.3.2.1 seq#3, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, A3=796B.
140    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
141    //   [SPEC] TC — SGP.23 4.2.3.2.1 seq#3 接线(段选择/注入面)
142    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
143    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
144    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
145    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
146    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
147    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
148    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
149    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
150    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
151    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
152    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
153    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
154    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
155    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
156    //   [HYPOTHESIS] BF23/80 transactionId — 注入 invalid_trans_id:逐字节取反(4.2.3.2.1 seq#03)
157    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
158    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
159    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
160    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
161    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
162    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
163    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
164    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
165    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
166    //   [SPEC] PE header/version — PITS asn:67-68 2/3
167    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
168    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
169    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
170    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
171    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
172    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
173    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
174    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
175
176    // 步骤 11:Seq#03 IC3: Execute the step IC3 of the Test Sequence #01(切分)(tc_step)
177    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
178    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
179
180    // 步骤 12:Seq#03 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_013, RQ55_015, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
181    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
182    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
183    var s12 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
184    bind.checkData("S12-C1 SW", "9000", s12.sw);
185    bind.checkData("S12-C2 SW", "9000", s12.sw);
186    bind.checkData("S12-C2 resp present", "1", s12.resp.length > 0 ? "1" : "0");
187    // S12-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
188    // S12-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
189
190    // 步骤 13:Seq#04 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
191    // test-tool internal preparation (no APDU face): runtime-domain
192    // values per CaseIR unresolved (G Annex B generation rules);
193    // no fabricated bytes emitted here.
194
195    // 步骤 14:Seq#04 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
196    // BPP synthesized (4.2.3.2.1 seq#4, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, A3=796B.
197    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
198    //   [SPEC] TC — SGP.23 4.2.3.2.1 seq#4 接线(段选择/注入面)
199    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
200    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
201    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
202    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
203    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
204    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
205    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
206    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
207    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
208    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
209    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
210    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
211    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
212    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
213    //   [HYPOTHESIS] BF23/A6/81 keyLen — 注入 invalid_crt:keyLen 0x10→0x20(4.2.3.2.1 seq#04)
214    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
215    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
216    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
217    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
218    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
219    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
220    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
221    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
222    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
223    //   [SPEC] PE header/version — PITS asn:67-68 2/3
224    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
225    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
226    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
227    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
228    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
229    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
230    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
231    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
232
233    // 步骤 15:Seq#04 IC3: Execute the step IC3 of the Test Sequence #01(切分)(tc_step)
234    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
235    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
236
237    // 步骤 16:Seq#04 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_014, RQ55_015, RQ55_019, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
238    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
239    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
240    var s16 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
241    bind.checkData("S16-C1 SW", "9000", s16.sw);
242    bind.checkData("S16-C2 SW", "9000", s16.sw);
243    bind.checkData("S16-C2 resp present", "1", s16.resp.length > 0 ? "1" : "0");
244    // S16-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
245
246    // 步骤 17:Seq#05 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
247    // test-tool internal preparation (no APDU face): runtime-domain
248    // values per CaseIR unresolved (G Annex B generation rules);
249    // no fabricated bytes emitted here.
250
251    // 步骤 18:Seq#05 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
252    // BPP synthesized (4.2.3.2.1 seq#5, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, A3=796B.
253    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
254    //   [SPEC] TC — SGP.23 4.2.3.2.1 seq#5 接线(段选择/注入面)
255    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
256    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
257    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
258    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
259    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
260    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
261    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
262    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
263    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
264    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
265    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
266    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
267    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
268    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
269    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
270    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 nominal
271    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
272    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
273    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
274    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
275    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
276    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
277    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
278    //   [SPEC] PE header/version — PITS asn:67-68 2/3
279    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
280    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
281    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
282    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
283    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
284    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
285    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
286    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
287
288    // 步骤 19:Seq#05 IC3: Execute the step IC3 of the Test Sequence #01(切分)(tc_step)
289    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
290    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
291
292    // 步骤 20:Seq#05 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
293    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
294    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
295    var s20 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
296    bind.checkData("S20-C1 SW", "9000", s20.sw);
297
298    // 步骤 21:Seq#05 IC5: MTD_STORE_DATA_SCRIPT(tc_step)
299    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
300    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
301    var s21 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
302    bind.checkData("S21-C1 SW", "9000", s21.sw);
303
304    // 步骤 22:Seq#05 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ55_010, RQ57_041_1, RQ57_013, RQ57_016)
305    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
306    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
307    var s22 = bind.sendApdu(null, "E2", "00", "00", null, "00", null);
308    bind.checkData("S22-C1 SW acceptable", "1", (s22.sw === "6A88" || s22.sw === "6985" || (s22.sw === "9000" && s22.resp.length > 0)) ? "1" : "0");
309    // S22-C2: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
310}
311

完整 unified diff

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

展开 diff(585 行)
--- -man
+++ -cas
@@ -1,273 +1,311 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_InitialiseSecureChannel_01_Error_Invalid_Remote_Operation + TC_eUICC_ES8_InitialiseSecureChannel_02_Error_Invalid_SMDP_Signature + TC_eUICC_ES8_InitialiseSecureChannel_03_Error_Invalid_Transaction_Identifier + TC_eUICC_ES8_InitialiseSecureChannel_04_Error_Invalid_CRT_Values + TC_eUICC_ES8_InitialiseSecureChannel_05_Error_InitialiseSecureChannel_request_while_Secure_Channel_Session_is_ongoing (extracted verbatim)
-
-function TC_eUICC_ES8_InitialiseSecureChannel_01_Error_Invalid_Remote_Operation()
-{
-	
-	tracenamestr = "测试目的:执行InitialiseSecureChannel,remoteOpId为#INVALID_REMOTE_OP_ID";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curDis.TestStepStart2(stno++,"复位;");
-	ResetCard();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
-	TS_TERMINAL_CAPABILITY_cmd();
-	
-	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;");
-	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
-	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
-	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;--Invalid RemoteOpId");
-	Profile_load_procedure.hostId = "47534D4120534D2D5858";
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.remoteOpId ="08";
-	Profile_load_procedure.bppCommandId="00";
-	Profile_load_procedure.errorReason="05";
-	Profile_load_procedure.simaResponse = "";
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
-	curStrHandle.CheckData("05", errorReason, "errorReason");
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_InitialiseSecureChannel_02_Error_Invalid_SMDP_Signature()
-{
-			
-	tracenamestr = "测试目的:执行InitialiseSecureChannel,smdpSign为无效的SM-DP+签名";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curDis.TestStepStart2(stno++,"复位;");
-	ResetCard();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
-	TS_TERMINAL_CAPABILITY_cmd();
-	
-	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;");
-	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
-	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
-	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;--Invalid SMDP_Signature");
-	Profile_load_procedure.hostId = "47534D4120534D2D5858";
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.remoteOpId ="01";
-	Profile_load_procedure.bppCommandId="00";
-	Profile_load_procedure.errorReason="02";
-	Profile_load_procedure.simaResponse = "";
-	Profile_load_procedure.DPbpInforObj.D_key=curStrHandle.RandHexStr(32);
-	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
-	curStrHandle.CheckData("02", errorReason, "errorReason");
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_InitialiseSecureChannel_03_Error_Invalid_Transaction_Identifier ()
-{
-	
-	tracenamestr = "测试目的:执行InitialiseSecureChannel,transactionId为无效的Transaction Identifier";
-	curDis.TraceStart(sno++,tracenamestr);
-	
-	curDis.TestStepStart2(stno++,"复位;");
-	ResetCard();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
-	TS_TERMINAL_CAPABILITY_cmd();
-	
-	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;");
-	ctxParamsForCommonAuthentication = "A13A800400000000A1288003050000810308000082030100008303010000840302000085030200008603090000870302010082080000000011111111";
-	Profile_load_procedure.serverAddress = TEST_DP_ADDRESS1;
-	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;--Invalid_Transaction_Identifier ");
-	var curTransactionId = Profile_load_procedure.authServerRequest.serverSigned1.transactionId;
-	Profile_load_procedure.authServerRequest.serverSigned1.transactionId=curStrHandle.RandHexStr(16);
-	Profile_load_procedure.hostId = "47534D4120534D2D5858";
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.remoteOpId ="01";
-	Profile_load_procedure.bppCommandId="00";
-	Profile_load_procedure.errorReason=ErrorReason.invalidTransactionId;
-	Profile_load_procedure.simaResponse = "";
- 	Profile_load_procedure.ES10b_LoadBoundProfilePackage();
-	
-	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
-	curStrHandle.CheckData("03", errorReason, "errorReason");
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_InitialiseSecureChannel_04_Error_Invalid_CRT_Values()
-{
-	
-	tracenamestr = "测试目的:执行InitialiseSecureChannel,controlRefTemplate为无效的CRT值";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	curDis.TestStepStart2(stno++,"复位;");
-	ResetCard();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
-	TS_TERMINAL_CAPABILITY_cmd();
-	
-	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;--Invalid CRT Values");
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.CRTkeyType = "80";
-	Profile_load_procedure.errorReason="04";
-	Profile_load_procedure.InitialiseSecureChannel();
-	
-	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
-	curStrHandle.CheckData("04", errorReason, "errorReason");
-	
-  RecoverCard();
-}
-
-function TC_eUICC_ES8_InitialiseSecureChannel_05_Error_InitialiseSecureChannel_request_while_Secure_Channel_Session_is_ongoing()
-{
-	
-	tracenamestr = "测试目的:安全通道会话已在进行中时,确保eUICC能够拒绝InitialiseSecureChannel请求";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	curDis.TestStepStart2(stno++,"复位;");
-	ResetCard();
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
-	TS_TERMINAL_CAPABILITY_cmd();
-	
-	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;--通道已被建立再发InitialiseSecureChannel");
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.errorReason="7F";
-	Profile_load_procedure.InitialiseSecureChannelOngoingRejected();
-	
-	var errorReason = Profile_load_procedure.profInstallationResult.profileInstallationResultData.finalResult.ErrorResult.errorReason;
-	curStrHandle.CheckData("7F", errorReason, "errorReason");
-	if(typeof(Profile_load_procedure.profInstallationResult.profileInstallationResultData.notificationMetadata.iccid) == "undefined")
-	{
-		
-		return;
-	}
-	else
-	{
-		obj.SubLevelError ("NotificationMetadata ICCID should be absent");			
-	}	
-	    	
-  RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.InitialiseSecureChannel,Test Sequence #01–#05(全部 Error 序列);见 steps 前缀,适用性 M。
+// Test points: S4-C1 SW;S4-C2 SW;S4-C2 resp present;S8-C1 SW;S8-C2 SW;S8-C2 resp present;S12-C1 SW
+//   S12-C2 SW;S12-C2 resp present;S16-C1 SW;S16-C2 SW;S16-C2 resp present;S20-C1 SW;S21-C1 SW
+//   S22-C1 SW acceptable
+// 本函数由 CaseIR 4.2.3.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_InitialiseSecureChannel_01_05_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.3.2.1 seq#1, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, 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.3.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
+    //   [HYPOTHESIS] BF23/82 remoteOpId — 注入 invalid_op_id:未定义 RemoteOpId(4.2.3.2.1 seq#01)
+    //   [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] 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 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_012, RQ55_015, RQ55_023, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
+    // 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);
+    bind.checkData("S4-C2 SW", "9000", s4.sw);
+    bind.checkData("S4-C2 resp present", "1", s4.resp.length > 0 ? "1" : "0");
+    // S4-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+    // S4-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 5: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.
+
+    // 步骤 6:Seq#02 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.3.2.1 seq#2, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, 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.3.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
+    //   [HYPOTHESIS] BF23/5F37 smdpSign — 注入 invalid_sign:末字节翻转(4.2.3.2.1 seq#02)
+    //   [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] 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
+
+    // 步骤 7: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).
+
+    // 步骤 8:Seq#02 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_011, RQ55_015, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
+    // 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 s8 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s8.sw);
+    bind.checkData("S8-C2 SW", "9000", s8.sw);
+    bind.checkData("S8-C2 resp present", "1", s8.resp.length > 0 ? "1" : "0");
+    // S8-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+    // S8-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 9: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.
+
+    // 步骤 10:Seq#03 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.3.2.1 seq#3, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, 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.3.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
+    //   [HYPOTHESIS] BF23/80 transactionId — 注入 invalid_trans_id:逐字节取反(4.2.3.2.1 seq#03)
+    //   [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] 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#03 IC3: Execute the step IC3 of the Test Sequence #01(切分)(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).
+
+    // 步骤 12:Seq#03 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_013, RQ55_015, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
+    // 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);
+    bind.checkData("S12-C2 SW", "9000", s12.sw);
+    bind.checkData("S12-C2 resp present", "1", s12.resp.length > 0 ? "1" : "0");
+    // S12-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+    // S12-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 13: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.
+
+    // 步骤 14:Seq#04 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.3.2.1 seq#4, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, 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.3.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
+    //   [HYPOTHESIS] BF23/A6/81 keyLen — 注入 invalid_crt:keyLen 0x10→0x20(4.2.3.2.1 seq#04)
+    //   [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] 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
+
+    // 步骤 15:Seq#04 IC3: Execute the step IC3 of the Test Sequence #01(切分)(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).
+
+    // 步骤 16:Seq#04 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_162, RQ31_163, RQ55_014, RQ55_015, RQ55_019, RQ25_024, RQ25_025, RQ25_026, RQ35_003_1)
+    // 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 s16 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s16.sw);
+    bind.checkData("S16-C2 SW", "9000", s16.sw);
+    bind.checkData("S16-C2 resp present", "1", s16.resp.length > 0 ? "1" : "0");
+    // S16-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 17: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.
+
+    // 步骤 18:Seq#05 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
+    // BPP synthesized (4.2.3.2.1 seq#5, structural layer, SCP03t-unprotected): 1067 bytes; segments: INIT=191B, A0=22B, A1=58B, 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.3.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)
+    //   [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#05 IC3: Execute the step IC3 of the Test Sequence #01(切分)(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).
+
+    // 步骤 20: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 s20 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S20-C1 SW", "9000", s20.sw);
+
+    // 步骤 21: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 s21 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
+    bind.checkData("S21-C1 SW", "9000", s21.sw);
+
+    // 步骤 22:Seq#05 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ55_010, RQ57_041_1, RQ57_013, RQ57_016)
+    // 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 s22 = bind.sendApdu(null, "E2", "00", "00", null, "00", null);
+    bind.checkData("S22-C1 SW acceptable", "1", (s22.sw === "6A88" || s22.sw === "6985" || (s22.sw === "9000" && s22.resp.length > 0)) ? "1" : "0");
+    // S22-C2: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
 }