eSIM RSP 测试用例对比站

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

源码对照:4.2.4.2.1

ES8+ 配置 ISD-P / TC_eUICC_ES8+.ConfigureISDP

左侧为人工切片入口(-man,来自 原料/切片 的最小可执行脚本),右侧为 Cas 盲生成入口(-cas,仅依据规范生成)。文件按原始编码(多为 GBK)解码为 UTF-8 显示,行号自 1 起;字节级原文与 sha256 见两侧脚本包。完整 unified diff 见本页底部折叠区,以及 报告原文 §4。
-man 入口
Import/TestCase_SGP_23.js
195 行 / 8043 字符 / gb18030
-cas 入口
TC_eUICC_ES8_ConfigureISDP/Import/TC_eUICC_ES8_ConfigureISDP.js
253 行 / 19745 字符 / gb18030
默认折行显示长行;取消勾选可横向滚动查看原始行宽
-man 人工切片Import/TestCase_SGP_23.js195 行 / 8043 字符 / gb18030入口函数 @L3
1// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_ConfigureISDP_01_Nominal_Empty_Proprietary_Data + TC_eUICC_ES8_ConfigureISDP_02_Nominal_Proprietary_Data_with_the_maximum_length_authorized_128_bytes + TC_eUICC_ES8_ConfigureISDP_03_Error_Proprietary_Data_with_the_maximum_length_exceeded_129_bytes (extracted verbatim)
2
3function TC_eUICC_ES8_ConfigureISDP_01_Nominal_Empty_Proprietary_Data()
4{
5	
6	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data为空";
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
29	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
30	Profile_load_procedure.ES10b_GetEUICCChallenge();
31
32	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
33	Profile_load_procedure.ES10b_AuthenticateServer();
34	
35	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
36	Profile_load_procedure.ES10b_PrepareDownload();
37	
38	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
39	Profile_load_procedure.ES10b_GetEID();
40	
41	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--空Proprietary 数据");
42	Profile_load_procedure.isEmptyProprietaryData = true;
43	Profile_load_procedure.ConfigureISDP();
44	
45
46	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
47	var proInfoListRequest = new ProfileInfoListRequest();
48	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
49	proInfoListRequest.tagList = "4FB8";
50	proInfoListRequest.GenHexData();
51	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
52	
53	var proInfoListResponse = new  ProfileInfoListResponse();
54	proInfoListResponse.checkCardResDataFormat(respData);
55	
56	try
57	{
58		curStrHandle.CheckData(curProfile_ISD_P_AID, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
59		curStrHandle.CheckData("不存在", proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData, "dpProprietaryData");
60	}catch(e){
61		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
62	}
63	
64	RecoverCard();
65}
66
67function TC_eUICC_ES8_ConfigureISDP_02_Nominal_Proprietary_Data_with_the_maximum_length_authorized_128_bytes()
68{
69	
70	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data为最大长度128字节";
71	curDis.TraceStart(sno++,tracenamestr);
72	
73
74	curDis.TestStepStart2(stno++,"复位;");
75	ResetCard();
76	
77	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
78	TS_TERMINAL_CAPABILITY_cmd();
79	
80	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
81	TS_MANAGE_CHANNEL_OPEN();
82	
83	curLogicChannel = 1;
84	
85	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
86	TS_SELECT("Select ISD",ISD_R_AID,"9000");
87	
88	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
89	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
90	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
91	Profile_load_procedure.ES10b_GetEUICCInfo1();
92	
93
94	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
95	Profile_load_procedure.ES10b_GetEUICCChallenge();
96
97	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
98	Profile_load_procedure.ES10b_AuthenticateServer();
99	
100	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
101	Profile_load_procedure.ES10b_PrepareDownload();
102	
103	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
104	Profile_load_procedure.ES10b_GetEID();
105	
106	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Proprietary 数据带最大长度的授权(比如128字节,其中随机数为112字节)");
107	var curadditionalSmdpData = curStrHandle.RandHexStr(112);
108	Profile_load_procedure.ConfigureISDP(curadditionalSmdpData);
109	
110	
111	
112	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
113	var proInfoListRequest = new ProfileInfoListRequest();
114	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
115	proInfoListRequest.tagList = "4FB8";
116	proInfoListRequest.GenHexData();
117	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
118	
119
120  var proInfoListResponse = new  ProfileInfoListResponse();
121	proInfoListResponse.checkCardResDataFormat(respData);
122	
123	try
124	{
125		curStrHandle.CheckData(curProfile_ISD_P_AID, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
126		curStrHandle.CheckData(Profile_load_procedure.DPbpInforObj.registeredID, proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData.dpOid, "dpOid");
127		curStrHandle.CheckData(curadditionalSmdpData, proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData.additionalSmdpData, "additionalSmdpData");		
128			
129			
130	}catch(e){
131		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
132	} 
133	
134	
135	RecoverCard();	
136}
137
138function TC_eUICC_ES8_ConfigureISDP_03_Error_Proprietary_Data_with_the_maximum_length_exceeded_129_bytes()
139{
140	
141	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data超出最大长度,为129字节";
142	curDis.TraceStart(sno++,tracenamestr);
143
144	curDis.TestStepStart2(stno++,"复位;");
145	ResetCard();
146	
147	curDis.TestStepStart2(stno++,"读卡器向卡片发送Terminal Capability命令;");
148	TS_TERMINAL_CAPABILITY_cmd();
149	
150	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
151	TS_MANAGE_CHANNEL_OPEN();
152	
153	curLogicChannel = 1;
154	
155	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
156	TS_SELECT("Select ISD",ISD_R_AID,"9000");
157	
158	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
159	var Profile_load_procedure = new RSP_profile_load_procedure_LPAd(PROFILE_OPERATIONAL1_DATA);
160	Profile_load_procedure.ICCID = ICCID_OP_PROF1;
161	Profile_load_procedure.ES10b_GetEUICCInfo1();
162	
163
164	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccChallengeRequest;");
165	Profile_load_procedure.ES10b_GetEUICCChallenge();
166
167	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行AuthenticateServerRequest;");
168	Profile_load_procedure.ES10b_AuthenticateServer();
169	
170	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行PrepareDownloadRequest;");
171	Profile_load_procedure.ES10b_PrepareDownload();
172	
173	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccDataRequest(GetEID);");
174	Profile_load_procedure.ES10b_GetEID();
175	
176	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行BoundProfilePackage;--Proprietary 数据带超过最大长度的授权(比如129字节,其中随机数为113字节)");
177
178	var Len = Profile_load_procedure.DPbpInforObj.registeredID.length/2;
179	var curadditionalSmdpData = curStrHandle.RandHexStr(123-Len);
180	Profile_load_procedure.isErrorTest=true;
181	Profile_load_procedure.errorReason="01";
182	Profile_load_procedure.ConfigureISDP(curadditionalSmdpData);
183	
184	
185	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
186	var proInfoListRequest = new ProfileInfoListRequest();
187	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
188	proInfoListRequest.tagList = "4FB8";
189	proInfoListRequest.GenHexData();
190	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
191	curStrHandle.CheckData("BF2D02A000",respData, "ProfileInfoListResponse");
192
193	RecoverCard();	
194}
195
-cas 盲生成TC_eUICC_ES8_ConfigureISDP/Import/TC_eUICC_ES8_ConfigureISDP.js253 行 / 19745 字符 / gb18030入口函数 @L15
1// Author: 卡思Cas智能体
2// Date: 20261005-152741
3// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.ConfigureISDP,Test Sequence #01 Nominal: Empty Proprietary Data; #02 Nominal: Proprietary Data with the maximum length authorized (i.e. 128 bytes); #03 Error: Proprietary Data with the maximum length exceeded (i.e. 129 bytes),适用性 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 isdpAid present;S8-C2 dpProprietaryData absent;S12-C1 SW;S13-C1 SW;S14-C1 SW;S15-C1 SW
6//   S15-C2 SW;S15-C2 resp present;S16-C1 SW;S16-C2 dpProprietaryData present;S20-C1 SW;S21-C1 SW
7//   S21-C2 SW;S21-C2 resp present
8// 本函数由 CaseIR 4.2.4.2.1 编译生成(fullwave-blindgen-live-70,SGP.23 v1.16 × SGP.22 v2.7):字节权威=CaseIR,非誊录黄金脚本。
9// Value-free template: every data byte is injected from CaseIR fields; no scaffold globals (see docs/speconly/compile-symbol-migration.md).
10// 适用性 M:编译期门,运行时由 harness 环境前置承担。
11// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
12// GIC 通信初始化+ISD-R 选择+相互认证+End User Confirmation+PrepareDownload(#PREP_DOWNLOAD_NO_CC): declared unexpanded (no fabricated bytes; provenance = expansion_source).
13// 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).
14// 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).
15function TC_eUICC_ES8_ConfigureISDP_01_02_03_merged() {
16    var bind = curBind;
17
18    // 步骤 1:Seq#01 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
19    // test-tool internal preparation (no APDU face): runtime-domain
20    // values per CaseIR unresolved (G Annex B generation rules);
21    // no fabricated bytes emitted here.
22
23    // 步骤 2:Seq#01 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
24    // BPP synthesized (4.2.4.2.1 seq#1, structural layer, SCP03t-unprotected): 1052 bytes; segments: INIT=191B, A0=7B, A1=58B, A3=796B.
25    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
26    //   [SPEC] TC — SGP.23 4.2.4.2.1 seq#1 接线(段选择/注入面)
27    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
28    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
29    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
30    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
31    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
32    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
33    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
34    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
35    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
36    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
37    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
38    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
39    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
40    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
41    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
42    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
43    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
44    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
45    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
46    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
47    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
48    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
49    //   [SPEC] PE header/version — PITS asn:67-68 2/3
50    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
51    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
52    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
53    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
54    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
55    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
56    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
57    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
58
59    // 步骤 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)
60    // BPP segment declaration (no APDU face): <BPP_SEG_INIT>, <BPP_SEG_A0>, <BPP_SEG_A1>, <BPP_SEG_A3>.
61    // 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).
62    // 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.
63    // S3-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
64
65    // 步骤 4:Seq#01 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
66    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
67    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
68    var s4 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
69    bind.checkData("S4-C1 SW", "9000", s4.sw);
70
71    // 步骤 5:Seq#01 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_165, RQ55_028, RQ24_010)
72    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
73    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
74    var s5 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
75    bind.checkData("S5-C1 SW", "9000", s5.sw);
76
77    // 步骤 6:Seq#01 2: MTD_STORE_DATA_SCRIPT(tc_step)
78    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
79    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
80    var s6 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
81    bind.checkData("S6-C1 SW", "9000", s6.sw);
82
83    // 步骤 7:Seq#01 3: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
84    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
85    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
86    var s7 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
87    bind.checkData("S7-C1 SW", "9000", s7.sw);
88    bind.checkData("S7-C2 SW", "9000", s7.sw);
89    bind.checkData("S7-C2 resp present", "1", s7.resp.length > 0 ? "1" : "0");
90    // S7-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
91    // S7-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
92
93    // 步骤 8:Seq#01 4: MTD_STORE_DATA(tc_step;REQ: RQ55_025, RQ24_010)
94    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
95    var s8 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C024FB8", "00", "9000");
96    bind.checkData("S8-C1 SW", "9000", s8.sw);
97    var r2p8 = BindEs10xProcProfile.walkChoiceList(s8.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
98    var r2e8 = r2p8.elements.length > 0 ? r2p8.elements[0].fields : null;
99    bind.checkData("S8-C2 isdpAid present", "1", (r2e8 !== null && r2e8["4F"] !== undefined) ? "1" : "0");
100    bind.checkData("S8-C2 dpProprietaryData absent", "absent", (r2e8 === null || r2e8["B8"] === undefined) ? "absent" : r2e8["B8"]);
101    // S8-C3: kind 'requirement' pattern 'ISD-P created with reserved-range AID; empty prop data not stored' has no static generation face (corpus vacuum; see CaseIR unresolved).
102    // S8-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
103
104    // 步骤 9:Seq#02 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
105    // test-tool internal preparation (no APDU face): runtime-domain
106    // values per CaseIR unresolved (G Annex B generation rules);
107    // no fabricated bytes emitted here.
108
109    // 步骤 10:Seq#02 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
110    // BPP synthesized (4.2.4.2.1 seq#2, structural layer, SCP03t-unprotected): 1186 bytes; segments: INIT=191B, A0=141B, A1=58B, A3=796B.
111    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
112    //   [SPEC] TC — SGP.23 4.2.4.2.1 seq#2 接线(段选择/注入面)
113    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
114    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
115    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
116    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
117    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
118    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
119    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
120    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
121    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
122    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
123    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
124    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
125    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
126    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
127    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
128    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 max_length
129    //   [SPEC] BF25 — SGP.22 §5.5.3 :7365 StoreMetadataRequest [37]
130    //   [SPEC] BF25/5A iccid — SGP.22 :1398 Iccid [APPLICATION 26] tag '5A';值域 HYPOTHESIS(Annex E 缺席,需与 UPP EF-ICCID 一致)
131    //   [HYPOTHESIS] BF25/91 serviceProviderName — Annex E 缺席
132    //   [HYPOTHESIS] BF25/92 profileName — Annex E 缺席
133    //   [SPEC] BF25/95 profileClass — SGP.22 :13218 ProfileClass INTEGER;取 operational(2)
134    //   [SPEC] UPP — PITS ProfileElement 序列 header+mf+usim+end(最小集)
135    //   [SPEC] PE header — PITS asn:26 ProfileElement header CHOICE [0]
136    //   [SPEC] PE header/version — PITS asn:67-68 2/3
137    //   [SPEC] PE header/profileType — PITS asn:942 Test Profile 值
138    //   [HYPOTHESIS] PE header/iccid — eUICC 忽略此值(SGP.22 :7511);随参数化 ICCID
139    //   [SPEC] PE header/services+GFSTE — PITS asn:946-958 子集转录
140    //   [SPEC] PE mf — PITS asn:222 PE-MF + mfVal :961-1039
141    //   [HYPOTHESIS] PE mf/ef-iccid — ICCID 参数化(EF 编码形态);其余模板值 SPEC
142    //   [SPEC] PE usim — PITS asn:284 PE-USIM + usimValue :1166-1218
143    //   [HYPOTHESIS] PE usim/ef-imsi — IMSI 参数化(mccMnc+MSIN);TBCD 编码面 3GPP 24.008 SPEC
144    //   [SPEC] PE end — PITS asn:906 PE-End + endVal :2106 id=99
145
146    // 步骤 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)
147    // cross-sequence IC execution reference (R2 materialized form): referenced IC declaration emitted in its source sequence; no re-expansion, no fabricated bytes here.
148    // BPP segment partitioning follows bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 segment table; single source of segmentation knowledge).
149    // S11-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
150
151    // 步骤 12:Seq#02 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
152    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
153    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
154    var s12 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
155    bind.checkData("S12-C1 SW", "9000", s12.sw);
156
157    // 步骤 13:Seq#02 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_165, RQ55_028, RQ24_010)
158    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
159    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
160    var s13 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
161    bind.checkData("S13-C1 SW", "9000", s13.sw);
162
163    // 步骤 14:Seq#02 2: MTD_STORE_DATA_SCRIPT(tc_step)
164    // BPP segment load (data=null contract): <BPP_SEG_A1> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
165    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
166    var s14 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
167    bind.checkData("S14-C1 SW", "9000", s14.sw);
168
169    // 步骤 15:Seq#02 3: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ25_023, RQ25_024)
170    // BPP segment load (data=null contract): <BPP_SEG_A3> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
171    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
172    var s15 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
173    bind.checkData("S15-C1 SW", "9000", s15.sw);
174    bind.checkData("S15-C2 SW", "9000", s15.sw);
175    bind.checkData("S15-C2 resp present", "1", s15.resp.length > 0 ? "1" : "0");
176    // S15-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
177
178    // 步骤 16:Seq#02 4: MTD_STORE_DATA(tc_step;REQ: RQ55_027, RQ24_010)
179    // <L> length binding and the conditional 61XX + GET RESPONSE chain (D.4.2) are CasBind internal state (chaining rule).
180    var s16 = bind.sendApdu(null, "E2", "91", "00", "BF2D12A00C5A0A989209012143658709F55C024FB8", "00", "9000");
181    bind.checkData("S16-C1 SW", "9000", s16.sw);
182    var r2p16 = BindEs10xProcProfile.walkChoiceList(s16.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
183    var r2dp16 = false;
184    for (var r2i16 = 0; r2i16 < r2p16.elements.length; r2i16++) {
185        if (r2p16.elements[r2i16].fields["B8"] !== undefined) { r2dp16 = true; break; }
186    }
187    bind.checkData("S16-C2 dpProprietaryData present", "1", (r2p16.branch_tag === "A0" && r2dp16) ? "1" : "0");
188    // S16-C3: kind 'requirement' pattern '128-byte prop data stored & read back' has no static generation face (corpus vacuum; see CaseIR unresolved).
189    // S16-C3: binding:bf2d_query_structure_satisfies_requirement(S22-prof_info) (check_attestation)
190
191    // 步骤 17:Seq#03 IC1: Generate the <OTPK_S_SM_DP+_ECKA> and <OT_SK_S_SM_DP+_ECKA>(tc_step;non_wire)
192    // test-tool internal preparation (no APDU face): runtime-domain
193    // values per CaseIR unresolved (G Annex B generation rules);
194    // no fabricated bytes emitted here.
195
196    // 步骤 18:Seq#03 IC2: <BPP> = MTD_GENERATE_BPP(tc_step)
197    // BPP synthesized (4.2.4.2.1 seq#3, structural layer, SCP03t-unprotected): 1187 bytes; segments: INIT=191B, A0=142B, A1=58B, A3=796B.
198    // Segment bytes are runtime-domain (BPP load step data=null per CaseIR unresolved); not injected into this script. Provenance:
199    //   [SPEC] TC — SGP.23 4.2.4.2.1 seq#3 接线(段选择/注入面)
200    //   [SPEC] BF36 — SGP.22 §2.5.4 :1566 BoundProfilePackage [54]
201    //   [SPEC] BF36/A0 — Table 4 :1588 firstSequenceOf87
202    //   [SPEC] BF36/A1 — Table 4 :1590 sequenceOf88
203    //   [SPEC] BF36/A3 — Table 4 :1595 sequenceOf86
204    //   [HYPOTHESIS] 87/88/86 段值 — UNPROTECTED:明文承载,SCP03t 包壳属后续 lane
205    //   [SPEC] BF23 — SGP.22 §5.5.1 :7241 InitialiseSecureChannelRequest [35]
206    //   [SPEC] BF23/82 remoteOpId — SGP.22 :1400 RemoteOpId [2] INTEGER
207    //   [HYPOTHESIS] BF23/80 transactionId — SM-DP+ 会话值,Annex E 缺席,调用方注入
208    //   [SPEC] BF23/A6 controlRefTemplate — SGP.22 :7255-7263 CRT 子集
209    //   [SPEC] BF23/A6/80 keyType — SGP.22 :7257 AES='88'
210    //   [SPEC] BF23/A6/81 keyLen — SGP.22 :7259 SHALL be 0x10
211    //   [HYPOTHESIS] BF23/A6/84 hostId — Host ID 值,Annex E 缺席
212    //   [HYPOTHESIS] BF23/5F49 smdpOtpk — otPK.DP.ECKA,需真实密钥协商 lane
213    //   [HYPOTHESIS] BF23/5F37 smdpSign — SK.DPbp.ECDSA 签名,需签名 lane
214    //   [SPEC] BF24 — SGP.22 §5.5.2 :7319 ConfigureISDPRequest [36]
215    //   [HYPOTHESIS] BF24/B8 dpProprietaryData — dpOid 与填充为 SM-DP+ 自有树自定值(Annex E 缺席);变体 size_exceeded
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    // 步骤 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)
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    // S19-C1: binding:bpp_split_per_annexB_segment_table(segment_bpp;SGP.22-2.5.5) (check_attestation)
237
238    // 步骤 20:Seq#03 IC4: MTD_STORE_DATA_SCRIPT(tc_step)
239    // BPP segment load (data=null contract): <BPP_SEG_INIT> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
240    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
241    var s20 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
242    bind.checkData("S20-C1 SW", "9000", s20.sw);
243
244    // 步骤 21:Seq#03 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ55_028, RQ31_165, RQ55_026, RQ25_025, RQ25_026, RQ35_003_1)
245    // BPP segment load (data=null contract): <BPP_SEG_A0> bytes are runtime-domain (BPP synthesized at MTD_GENERATE_BPP;
246    // segmentation single source = bpp_synthesizer.segment_bpp (SGP.22 §2.5.5 :1633-1651) — no bytes fabricated here.
247    var s21 = bind.sendApdu(null, "E2", "00", "00", null, "00", "9000");
248    bind.checkData("S21-C1 SW", "9000", s21.sw);
249    bind.checkData("S21-C2 SW", "9000", s21.sw);
250    bind.checkData("S21-C2 resp present", "1", s21.resp.length > 0 ? "1" : "0");
251    // S21-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
252}
253

完整 unified diff

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

展开 diff(449 行)
--- -man
+++ -cas
@@ -1,195 +1,253 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES8_ConfigureISDP_01_Nominal_Empty_Proprietary_Data + TC_eUICC_ES8_ConfigureISDP_02_Nominal_Proprietary_Data_with_the_maximum_length_authorized_128_bytes + TC_eUICC_ES8_ConfigureISDP_03_Error_Proprietary_Data_with_the_maximum_length_exceeded_129_bytes (extracted verbatim)
-
-function TC_eUICC_ES8_ConfigureISDP_01_Nominal_Empty_Proprietary_Data()
-{
-	
-	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data为空";
-	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;--空Proprietary 数据");
-	Profile_load_procedure.isEmptyProprietaryData = true;
-	Profile_load_procedure.ConfigureISDP();
-	
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "4FB8";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-	var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(curProfile_ISD_P_AID, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData("不存在", proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData, "dpProprietaryData");
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	}
-	
-	RecoverCard();
-}
-
-function TC_eUICC_ES8_ConfigureISDP_02_Nominal_Proprietary_Data_with_the_maximum_length_authorized_128_bytes()
-{
-	
-	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data为最大长度128字节";
-	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;--Proprietary 数据带最大长度的授权(比如128字节,其中随机数为112字节)");
-	var curadditionalSmdpData = curStrHandle.RandHexStr(112);
-	Profile_load_procedure.ConfigureISDP(curadditionalSmdpData);
-	
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "4FB8";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	
-
-  var proInfoListResponse = new  ProfileInfoListResponse();
-	proInfoListResponse.checkCardResDataFormat(respData);
-	
-	try
-	{
-		curStrHandle.CheckData(curProfile_ISD_P_AID, proInfoListResponse.profileInfoListOk.arrOfElement[0].isdpAid, "ISD-P AID");
-		curStrHandle.CheckData(Profile_load_procedure.DPbpInforObj.registeredID, proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData.dpOid, "dpOid");
-		curStrHandle.CheckData(curadditionalSmdpData, proInfoListResponse.profileInfoListOk.arrOfElement[0].dpProprietaryData.additionalSmdpData, "additionalSmdpData");		
-			
-			
-	}catch(e){
-		obj.SubLevel(ProfileInfoListResponse_Data_Error, level_of_SubLevel.error);
-	} 
-	
-	
-	RecoverCard();	
-}
-
-function TC_eUICC_ES8_ConfigureISDP_03_Error_Proprietary_Data_with_the_maximum_length_exceeded_129_bytes()
-{
-	
-	tracenamestr = "测试目的:执行ConfigureISDP,Proprietary Data超出最大长度,为129字节";
-	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;--Proprietary 数据带超过最大长度的授权(比如129字节,其中随机数为113字节)");
-
-	var Len = Profile_load_procedure.DPbpInforObj.registeredID.length/2;
-	var curadditionalSmdpData = curStrHandle.RandHexStr(123-Len);
-	Profile_load_procedure.isErrorTest=true;
-	Profile_load_procedure.errorReason="01";
-	Profile_load_procedure.ConfigureISDP(curadditionalSmdpData);
-	
-	
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行ProfileInfoListRequest,获取profile状态;");
-	var proInfoListRequest = new ProfileInfoListRequest();
-	proInfoListRequest.searchCriteria = new ChoiceObj(tagOfsearchCriteria_ProfileInfo.iccid,ICCID_OP_PROF1);
-	proInfoListRequest.tagList = "4FB8";
-	proInfoListRequest.GenHexData();
-	var respData = LPAd_Transport_data_to_eUICC(proInfoListRequest.hexData);
-	curStrHandle.CheckData("BF2D02A000",respData, "ProfileInfoListResponse");
-
-	RecoverCard();	
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES8+.ConfigureISDP,Test Sequence #01 Nominal: Empty Proprietary Data; #02 Nominal: Proprietary Data with the maximum length authorized (i.e. 128 bytes); #03 Error: Proprietary Data with the maximum length exceeded (i.e. 129 bytes),适用性 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 isdpAid present;S8-C2 dpProprietaryData absent;S12-C1 SW;S13-C1 SW;S14-C1 SW;S15-C1 SW
+//   S15-C2 SW;S15-C2 resp present;S16-C1 SW;S16-C2 dpProprietaryData present;S20-C1 SW;S21-C1 SW
+//   S21-C2 SW;S21-C2 resp present
+// 本函数由 CaseIR 4.2.4.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_ConfigureISDP_01_02_03_merged() {
+    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.4.2.1 seq#1, structural layer, SCP03t-unprotected): 1052 bytes; segments: INIT=191B, A0=7B, 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.4.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]
+    //   [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 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 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_165, RQ55_028, RQ24_010)
+    // 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 2: MTD_STORE_DATA_SCRIPT(tc_step)
+    // 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 3: 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)
+    // S7-C4: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
+
+    // 步骤 8:Seq#01 4: MTD_STORE_DATA(tc_step;REQ: RQ55_025, RQ24_010)
+    // <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", "BF2D12A00C5A0A989209012143658709F55C024FB8", "00", "9000");
+    bind.checkData("S8-C1 SW", "9000", s8.sw);
+    var r2p8 = BindEs10xProcProfile.walkChoiceList(s8.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2e8 = r2p8.elements.length > 0 ? r2p8.elements[0].fields : null;
+    bind.checkData("S8-C2 isdpAid present", "1", (r2e8 !== null && r2e8["4F"] !== undefined) ? "1" : "0");
+    bind.checkData("S8-C2 dpProprietaryData absent", "absent", (r2e8 === null || r2e8["B8"] === undefined) ? "absent" : r2e8["B8"]);
+    // S8-C3: kind 'requirement' pattern 'ISD-P created with reserved-range AID; empty prop data not stored' 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.4.2.1 seq#2, structural layer, SCP03t-unprotected): 1186 bytes; segments: INIT=191B, A0=141B, 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.4.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 缺席);变体 max_length
+    //   [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#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 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_165, RQ55_028, RQ24_010)
+    // 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 2: MTD_STORE_DATA_SCRIPT(tc_step)
+    // 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 3: 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 4: MTD_STORE_DATA(tc_step;REQ: RQ55_027, RQ24_010)
+    // <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", "BF2D12A00C5A0A989209012143658709F55C024FB8", "00", "9000");
+    bind.checkData("S16-C1 SW", "9000", s16.sw);
+    var r2p16 = BindEs10xProcProfile.walkChoiceList(s16.resp, {respTag: "BF2D", okTag: "A0", errTag: "81"});
+    var r2dp16 = false;
+    for (var r2i16 = 0; r2i16 < r2p16.elements.length; r2i16++) {
+        if (r2p16.elements[r2i16].fields["B8"] !== undefined) { r2dp16 = true; break; }
+    }
+    bind.checkData("S16-C2 dpProprietaryData present", "1", (r2p16.branch_tag === "A0" && r2dp16) ? "1" : "0");
+    // S16-C3: kind 'requirement' pattern '128-byte prop data stored & read back' 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.4.2.1 seq#3, structural layer, SCP03t-unprotected): 1187 bytes; segments: INIT=191B, A0=142B, 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.4.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 缺席);变体 size_exceeded
+    //   [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#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 1: MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ55_028, RQ31_165, RQ55_026, RQ25_025, RQ25_026, RQ35_003_1)
+    // 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);
+    bind.checkData("S21-C2 SW", "9000", s21.sw);
+    bind.checkData("S21-C2 resp present", "1", s21.resp.length > 0 ? "1" : "0");
+    // S21-C3: binding:bpp_seg_load_pir_runtime_semantics(S22-2.5.6;PIR-runtime-domain) (check_attestation)
 }