4.2.10.2.1 ES10b 下载准备(NIST 曲线)
TC_eUICC_ES10b.PrepareDownloadNIST
-man 人工切片
- 终态
- ok `_ok` 复用(结构 A1-A7 PASS;`_ok` run 无厂商错误行)
- ErrorCount
- 0
- 执行 job
- 20261007_115144:24f9f7cc78974b00b148b06ba6eb95fb
- html_run
- 20261007_134330
- 包 sha256
- 37d8b82f0d55bdce…
- 包大小
- 243.0 KB
日志源(切片目录内相对路径):logs/20261007_134330/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code.html
-cas 盲生成
- 终态
- failed 纯 native 零卡态前置(N0)
- ErrorCount
- 5
- 执行 job
- 27ac67b68d3a401dbc5b357e2cdf5e73
- html_run
- 27ac67b6_gapfix1
- 包 sha256
- 6e95dbbf142d875f…
- 包大小
- 837.0 KB
- 判定
- RERUN
- 路由
- native_N0
- 状态轴
- execution=red_verify / place=not_attempted / release=not_ready / card_state=n/a
差异概览(机械口径)
闭包文件层(l1)
man 34 / cas 82 个 JS;共同 31,一致 30,man-only 3,cas-only 51
命令序列层(l2)
man 55 / cas 0 条命令;完全一致 0,核心一致 0,长度尾部差 0,man-only 55,cas-only 0
规范覆盖(l3)
spec_steps 0,缺失 REQ 8 项,checkData 15 次,计数缺口 0,物化 EXPANDED,执行 FAIL
断言自证(attestation)
js 断言 6 条 / 绑定层 9 条 / 缺口 0
机械差异分类
| 轴 | 说明 | 计数 |
|---|---|---|
| RUN_DIFF | man 通过 / cas 失败 | 1 |
| SCRIPT_DIALECT | 闭包文件差:man-only 3 / cas-only 51 | 54 |
| GEN_DIFF | 命令序列差:man-only 55 / cas-only 0;REQ 覆盖缺口:['RQ31_136', 'RQ31_137', 'RQ45_006', 'RQ45_026', 'RQ45_026_1', 'RQ45_028', 'RQ45_030', 'RQ57_031'] | 63 |
对比报告
4.2.10.2.1 TC_eUICC_ES10b.PrepareDownloadNIST — -man ↔ -cas diff 报告
交付形态说明:本报告随专家交付包分发——-man/-cas脚本包 zip 与 190server HTML 执行日志已内联至packages/、evidence-html/,相应路径已相对化;TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径(未随包)。
- 生成时间:2026-10-08 22:57:09 |引擎:holiday-blk5/0.1|配对状态:
PAIRED - 分母口径:卡侧 61 之一
1. 配对与包
| 侧 | 包/源 | sha256 | 源类型 | 入口用例 |
|---|---|---|---|---|
-man | 4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-man.zip | 37d8b82f0d55bdce3701e567f221cd5c1e4e00bb7a56e31de944ac866781fbb0 | zip | TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code |
-cas | 4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-cas.zip | 6e95dbbf142d875fbbc8c67d69695342c697324d11961027c5f605d7fbb99ba4 | zip | — |
- man 源路径:
../packages/man/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-man.zip - cas 源路径:
../packages/cas/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-cas.zip - 上游来源:{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
- 适用性:naming-map=
C001["C001", "C001", "C001", "C001", "C001"];caseir=C001
2. 执行摘要(双方 job/终态)
| 侧 | 终态/计划 | 备注 | ErrorCount | job_id | 业务状态 | TTR | 诊断包 |
|---|---|---|---|---|---|---|---|
-man | ok | _ok 复用(结构 A1-A7 PASS;_ok run 无厂商错误行) | 0 | 20261007_115144:24f9f7cc78974b00b148b06ba6eb95fb | — | /Users/yuhu/cas/原料/切片/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST/logs/20260907_183703_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code.ttr | — |
-cas | failed | 纯 native 零卡态前置(N0) | 5 | 27ac67b68d3a401dbc5b357e2cdf5e73 | — | /Users/yuhu/cas/experiments/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-20261004_022631/logs/27ac67b6_gapfix1/result/TC_eUICC_ES10b_PrepareDownloadNIST/TC_eUICC_ES10b_PrepareDownloadNIST_01_03_Nominal_all_3_sequences.ttr | — |
- cas 块4账本:decision=
RERUN;route=native_N0;live 事件 2 条(4.6 波次进行中;以块4终版账本为准) - cas 4.6 波次最新执行:terminal=
failed;stage=cas_gapfix_rerun;job=27ac67b68d3a401dbc5b357e2cdf5e73;gaps=["gapfix-rerun:job 终态 succeeded,业务判 failed(error_count=4);failed 亦为有效终态,如实登记"] - cas 失败归因引用(块4):
b4-attribution.md - cas 证据来源分层:
RERUN→ 本轮 4.6 波次执行
3. HTML 执行日志状态
-man:NATIVE(../evidence/4.2.10.2.1/man/TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code.html;sha2565f99f57bcfaef15b760cd7613ee42ab7d06cc7be8f4624aeaca1e2942ee1820d;119546 bytes)-cas:NATIVE(../evidence/4.2.10.2.1/cas/TC_eUICC_ES10b_PrepareDownloadNIST.html;sha25636894e131a166e29baf761b09502630b3f801e659479f74fe9749f1ee68112ab;1258 bytes)- 纪律:原生缺失 →
HTML_UNAVAILABLE显式阻断(附探针结论);派生件仅标DERIVED_NOT_NATIVE,不冒充原生。
4. L1 脚本/依赖/命名差异(源文件闭包级)
- 闭包规模:man 34 文件 / cas 82 文件;同名 31(字节同 30,内容异 1)
- 同名内容异:
Import/TestCase_SGP_23.js - man-only 文件 3:
ESIM_TEST_SGP_23.UCE,ESIM_TEST_SGP_23.sol,MANIFEST.json - cas-only 文件 51:
Import/CapInfo.js,Import/ExecuteTestCase.js,Import/ExecuteTestCase_CSC.js,Import/ExecuteTestCase_LoadProfile_via_bip.js,Import/ExecuteTestCase_Local_Management.js,Import/ExecuteTestCase_Non_Telecom_Profile.js,Import/ExecuteTestCase_Performance.js,Import/ExecuteTestCase_PressureTest.js,Import/ExecuteTestCase_ProfileFormatTest_V_2_3_1.js,Import/ExecuteTestCase_ProfileServicesListTest.js… - 注:man 包=切片最小闭包(
script/投影);cas 包=slice_native 全工程投影(厂商参照闭包+生成体)。闭包规模差为打包形态差异;同名文件字节差集中于Import/TestCase_SGP_23.js(TC 入口本体)。
4.1 入口代码对照
- 行数:man 165 / cas 300;字符:man 5945 / cas 30625
- man 顶层调用 Top:[["TestStepStart2", 21], ["TC_eUICC_ES10b_PrepareDownload_03_Nominal_With_an_unknown_otPK_EUICC_ECKA", 3], ["check_Applicability_of_tests_RSP_SGP23_test", 3], ["TraceStart", 3], ["Ini_powerOn_eUICC_LPAe_not_activate", 3], ["TS_MANAGE_CHANNEL_OPEN", 3], ["TS_SELECT", 3], ["RSP_profile_load_procedure_LPAd", 3], ["ES10b_GetEUICCInfo1", 3], ["ES10b_GetEUICCChallenge", 3]]
- cas bind 调用:[["checkData", 15]]
| 方言映射对 | 命中数 |
|---|---|
| TS_*_cmd() ↔ bind.* 命令封装 | 6 |
unified diff(截断预览)
--- man
+++ cas
@@ -1,164 +1,299 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code + TC_eUICC_ES10b_PrepareDownloadNIST_02_Nominal_With_Confirmation_Code + TC_eUICC_ES10b_PrepareDownloadNIST_03_Nominal_With_an_unknown_otPK_EUICC_ECKA + TC_eUICC_ES10b_PrepareDownload_01_Nominal_Without_Confirmation_Code + TC_eUICC_ES10b_PrepareDownload_02_Nominal_With_Confirmation_Code + TC_eUICC_ES10b_PrepareDownload_03_Nominal_With_an_unknown_otPK_EUICC_ECKA (extracted verbatim)
+// Author: 卡思Cas智能体
+// Date: 20261005-152741
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_ES10b.PrepareDownloadNIST,Test Sequence #01-#03 Nominal (all 3 sequences),适用性 C001。
+// Test points: S1-C1 SW;S1-C2 R_PREP_DOWNLOAD response structure;S1-C2 R_PREP_DOWNLOAD outer tag
+// S1-C2 R_PREP_DOWNLOAD required members present;S2-C1 SW
+// S2-C2 R_PREP_DOWNLOAD response structure;S2-C2 R_PREP_DOWNLOAD outer tag
+// S2-C2 R_PREP_DOWNLOAD required members present;S3-C1 SW
+// S3-C2 R_PREP_DOWNLOAD response structure;S3-C2 R_PREP_DOWNLOAD outer tag
+// S3-C2 R_PREP_DOWNLOAD required members present
+// 本函数由 CaseIR 4.2.10.2.1 编译生成(fullwave-blindgen-live-70-W1-laneA2,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).
+// 适用性 C001:编译期门,运行时由 harness 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
+// TC-GEN-1 eUICC: The PROFILE_OPERATIONAL1 is not loaded on the eUICC.: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// TC-GEN-2 eUICC: S_Device 与 eUICC 通信已初始化,S_LPAd 已选 ISD-R;eUICC 与 S_SM-DP+ 已成功执行 Common Mutual Authentication;#GET_EUICC_INFO1、#GET_EUICC_CHALLENGE、#AUTHENTICATE_SMDP 已发送;签名与验证选用同一基于 NIST P-256 的 GSMA CI。: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// SEQ02-IC1 <S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSACTION_ID>)(测试工具侧计算,H_annexC1_methods 表1228:SHA-256(CC) 拼接 TransactionID 后再 SHA-256): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// SEQ03-IC1 <S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSACTION_ID>): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// SEQ03-IC2 S_SM-DP+ generates a random <OTPK_EUICC_ECKA>(随机值,与 eUICC 存储的一次性密钥对不对应): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_ES10b_PrepareDownloadNIST_01_03_Nominal_all_3_sequences() {
+ var bind = curBind;
-function TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code()
-{
+ // 步骤 1:SEQ01-1] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_130, RQ31_131, RQ31_132, RQ31_133, RQ31_134, RQ31_135, RQ31_139, RQ31_140, RQ31_141, RQ57_025, RQ57_026, RQ57_027, RQ57_028, RQ57_029, RQ57_030, RQ57_034, RQ57_035, RQ57_036, RQ57_037, RQ57_038, RQ57_039, RQ26_029, RQ26_030, RQ26_011, RQ26_034, RQ26_035, RQ31_062)
+ // PREP_DOWNLOAD 运行时绑定(PREP_DOWNLOAD_NO_CC;SGP.22 §5.7.5 PrepareDownloadRequest=BF21 成员序 smdpSigned2(30) → smdpSignature2(5F37) → smdpCertificate(30)):
+ // 无前序 cma_decl 源(GIC CMA):transactionId 运行时随机(G Annex B <S_TRANSACTION_ID>,vendor RandHexStr 机制);euiccSignature1 无源→空串,诚实守卫拦截发送(不硬造签名明文)。
+ // DPpb cert/SK=named_certs/named_sks 声明面(sha256 锚编译期已核;曲线套索引=CI 选择同号——同一 GSMA CI 链)。
+ var pd1Certs = ["308201DFA00302010202020101300A06082A8648CE3D04030230443110300E06035504030C07546573742043493111300F060355040B0C0854455354434552543110300E060355040A0C0752535054455354310B3009060355040613024954301E170D3230303430313038333434355A170D3330303333303038333434355A3025310D300B060355040A0C0441434D453114301206035504030C0B5445535420534D2D44502B3059301306072A8648CE3D020106082A8648CE3D03010703420004104C2AE3D02DEF9C979261A7C6710076B970721D0955A2644AE05FAE4BC2314E5DC09F6BF0118026165342E212318775E365F3B57325373066B9906E0BD1388DA381DF3081DC301F0603551D23041830168014F54172BDF98A95D65CBEB88A38A1C11D800A85C3301D0603551D0E04160414E6EAF71EE0FB9430ECCD1EBB421F881437C13263300E0603551D1104073005880388370A300E0603551D0F0101FF04040302078030170603551D200101FF040D300B300906076781120102010530610603551D1F045A3058302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D412E63726C302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D422E63726C300A06082A8648CE3D040302034800304502203EA51B0129FC11E843C38C8CB104244CCF92D8DDBCD4D5F9DAFD0AEF700A9B1C022100FEF382FF71FEFC58168A3607D5685DB7CB48F6B434261891496385BCD6B5857A", "308201E0A00302010202020101300A06082A8648CE3D04030230443110300E06035504030C07546573742043493111300F060355040B0C0854455354434552543110300E060355040A0C0752535054455354310B3009060355040613024954301E170D3230303430313038333434365A170D3330303333303038333434365A3025310D300B060355040A0C0441434D453114301206035504030C0B5445535420534D2D44502B305A301406072A8648CE3D020106092B240303020801010703420004893253ECC94C51DF4FEE6E0DB0951CFC65627481B5418E557069F487FAA15466A5CB8E10CC2B38099CF2A929F7F82DAC065126B71D0640961DB7F91A49E95612A381DF3081DC301F0603551D23041830168014C0BC70BA36929D43B467FF57570530E57AB8FCD8301D0603551D0E04160414A8C68DF449EB71EC723EAC132E40E4B6F54644FE300E0603551D1104073005880388370A300E0603551D0F0101FF04040302078030170603551D200101FF040D300B300906076781120102010530610603551D1F045A3058302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D412E63726C302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D422E63726C300A06082A8648CE3D04030203470030440220244ED22119D00D49D9EA4AC5D9A6D925FACFCD1998A96448A870CE47FE5E470E02206C4BC7223C925D548DDDD3D8DDD81118DA202973311F6012BB0A20E6DD2D7B7B"];
+ var pd1Sks = ["DCD694B778957E8E9ADDBDD94433E9EF8F73D11E491C48D425A38A9491BD3BED", "75FF322F416616DAE1A484EF71D4874FB0DF3295FD35C2CBA489FBB2BB9C7BF6"];
+ var pd1Tid = "";
+ for (var pd1Ri = 0; pd1Ri < 16; pd1Ri++) {
+ pd1Tid += bind.engine.Hex(Math.round(255 * Math.random()), 2);
+ }
+ var pd1Sel = 0;
+ var pd1Sig1 = "";
+ var pd1Dps = [["FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC", "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", "046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"], ["A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377", "7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9", "26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6", "048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997", "A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7"]];
+ if (pd1Sel < 0 || pd1Sig1 === "") {
+ // fail-closed 诚实面:CMA 运行时操作数缺席(CMA 失败/未执行)→ BF21 不发送(前序 CMA 步断言面已计错,本步不伪造通过)。
+ bind.checkData("S1-C1 SW", "9000", "pd1_not_executed:cma_operands_absent");
+ bind.checkData("S1-C2 R_PREP_DOWNLOAD response structure", "1", "pd1_not_executed:cma_operands_absent");
+ } else {
+ bind.engine.InitEccDomainParams(pd1Dps[pd1Sel][0], pd1Dps[pd1Sel][1], pd1Dps[pd1Sel][2], pd1Dps[pd1Sel][3], pd1Dps[pd1Sel][4], 1);
+ var pd1S2 = BindEs10xSingleRequest.buildTlv("30",
+ BindEs10xSingleRequest.buildTlv("80", pd1Tid)
+ + BindEs10xSingleRequest.buildTlv("01", "00"));
+ var pd1Sgn = "";
+ while (pd1Sgn.length != 2 * pd1Sks[pd1Sel].length) {
+ bind.engine.SleepTime(2000);
+ pd1Sgn = bind.engine.EccSignData(pd1Sks[pd1Sel], pd1S2 + BindEs10xSingleRequest.buildTlv("5F37", pd1Sig1), 33);
+ }
+ var pd1Req = BindEs10xSingleRequest.buildTlv("BF21",
+ pd1S2
+ + BindEs10xSingleRequest.buildTlv("5F37", pd1Sgn)
+ + BindEs10xSingleRequest.buildTlv("30", pd1Certs[pd1Sel]));
+ var pd1Run = BindEs10xSingleRequest.runTransport(bind.sendApdu,
+ {cla: "", ins: "E2", p1: "91", p2: "00", data: pd1Req,
+ le: "00", blockSize: 255, blockSw: "9000", final_sw: "9000"});
+ var pd1Sw = (pd1Run.final && pd1Run.final.sw) ? pd1Run.final.sw : "transport_error";
+ bind.checkData("S1-C1 SW", "9000", pd1Sw);
+ // euiccOtpk(5F49)运行时提取面登记:响应 ok 分支 euiccSigned2 成员(BF21 A0 30 5F49 路径),供后续步(RETRY 形 bppEuiccOtpk/BPP 装配)消费。
+ var pd1Otpk = "";
+ if (pd1Run.final && pd1Run.final.resp) {
+ var pd1L1 = BindEs10xSingleRequest.parseBerTlv(pd1Run.final.resp);
+ for (var pd1I1 = 0; pd1I1 < pd1L1.length && pd1Otpk === ""; pd1I1++) {
+ if (pd1L1[pd1I1].tag !== "BF21") continue;
+ var pd1L2 = BindEs10xSingleRequest.parseBerTlv(pd1L1[pd1I1].value);
+ for (var pd1I2 = 0; pd1I2 < pd1L2.length && pd1Otpk === ""; pd1I2++) {
+ if (pd1L2[pd1I2].tag !== "A0") continue;
+ var pd1L3 = BindEs10xSingleRequest.parseBerTlv(pd1L2[pd1I2].value);
+ for (var pd1I3 = 0; pd1I3 < pd1L3.length && pd1Otpk === ""; pd1I3++) {
+ if (pd1L3[pd1I3].tag !== "30") continue;
+ var pd1L4 = BindEs10xSingleRequest.parseBerTlv(pd1L3[pd1I3].value);
+ for (var pd1I4 = 0; pd1I4 < pd1L4.length; pd1I4++) {
+ if (pd1L4[pd1I4].tag === "5F49") pd1Otpk = pd1L4[pd1I4].value;
+ }
+ }
+ }
+ }
+ }
+ }
+ // R_PREP_DOWNLOAD 响应结构(S22_prep_dl §5.7.5 行 77-111:外层 BF21 CHOICE;downloadResponseOk A0{euiccSigned2 30{80,5F49}, euiccSignature2 5F37}):运行时域,仅结构与在场性断言。
+ var pd1RSR = (pd1Run.final && pd1Run.final.resp) ? BindEs10xSingleRequest.parseBerTlv(pd1Run.final.resp) : [];
+ var pd1RSOuter = pd1RSR.length === 1 ? pd1RSR[0].tag : "absent";
+ var pd1RSBr = pd1RSR.length === 1 ? BindEs10xSingleRequest.parseBerTlv(pd1RSR[0].value) : [];
+ var pd1RSA0 = false, pd1RSA1 = false, pd1RSCk = [];
+ for (var pd1RSi = 0; pd1RSi < pd1RSBr.length; pd1RSi++) {
+ if (pd1RSBr[pd1RSi].tag === "A0") { pd1RSA0 = true; pd1RSCk = BindEs10xSingleRequest.parseBerTlv(pd1RSBr[pd1RSi].value); }
+ if (pd1RSBr[pd1RSi].tag === "A1") { pd1RSA1 = true; pd1RSCk = BindEs10xSingleRequest.parseBerTlv(pd1RSBr[pd1RSi].value); }
+ }
+ var pd1RS30 = false, pd1RS5F37 = false, pd1RS80 = false, pd1RS02 = false;
+ for (var pd1RSj = 0; pd1RSj < pd1RSCk.length; pd1RSj++) {
+ if (pd1RSCk[pd1RSj].tag === "30") pd1RS30 = true;
+ if (pd1RSCk[pd1RSj].tag === "5F37") pd1RS5F37 = true;
+ if (pd1RSCk[pd1RSj].tag === "80") pd1RS80 = true;
+ if (pd1RSCk[pd1RSj].tag === "02") pd1RS02 = true;
+ }
+ var pd1RS5F49 = false;
+ if (pd1RS30) {
+ for (var pd1RSk = 0; pd1RSk < pd1RSCk.length; pd1RSk++) {
+ if (pd1RSCk[pd1RSk].tag !== "30") continue;
+ var pd1RSU = BindEs10xSingleRequest.parseBerTlv(pd1RSCk[pd1RSk].value);
+ for (var pd1RSm = 0; pd1RSm < pd1RSU.length; pd1RSm++) {
+ if (pd1RSU[pd1RSm].tag === "5F49") pd1RS5F49 = true;
+ if (pd1RSU[pd1RSm].tag === "80") pd1RS80 = true;
+ }
+ }
+ }
+ bind.checkData("S1-C2 R_PREP_DOWNLOAD outer tag", "BF21", pd1RSOuter);
+ bind.checkData("S1-C2 R_PREP_DOWNLOAD required members present", "1", (pd1RSA0 && pd1RS30 && pd1RS80 && pd1RS5F49 && pd1RS5F37) ? "1" : "0");
+ // S1-C3: binding:euicc_signature2_runtime_verify(PK_EUICC_ECDSA;S22_prep_dl) (check_attestation)
+ // S1-C4: binding:prep_download_response_tid_echo(request-S_TRANSACTION_ID;S22_prep_dl) (check_attestation)
- if(!Card_Have_ECC_Cert)
- return;
+ // 步骤 2:SEQ02-1] MTD_STORE_DATA_SCRIPT(tc_step;REQ: RQ31_130, RQ31_131, RQ31_132, RQ31_133, RQ31_134, RQ31_135, RQ31_139, RQ31_140, RQ31_141, RQ57_025, RQ57_026, RQ57_027, RQ57_028, RQ57_029, RQ57_030, RQ57_034, RQ57_035, RQ57_036, RQ57_037, RQ57_038, RQ57_039, RQ26_029, RQ26_030, RQ26_011, RQ26_034, RQ26_035, RQ31_062)
+ // PREP_DOWNLOAD 运行时绑定(PREP_DOWNLOAD_WITH_CC;SGP.22 §5.7.5 PrepareDownloadRequest=BF21 成员序 smdpSigned2(30) → smdpSignature2(5F37), hashCc 04 → smdpCertificate(30)):
…(差异行超限,共 462 行,此处截断)
- man:
ESIM_TEST_SGP_23.UCE;入口 [('TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code', 'TC_eUICC_ES10b.PrepareDownloadNIST', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"} - cas:
TC_eUICC_ES10b_PrepareDownloadNIST/TC_eUICC_ES10b_PrepareDownloadNIST.uce;入口 [('TC_eUICC_ES10b_PrepareDownloadNIST_01_03_Nominal_all_3_sequences', 'TC_eUICC_ES10b_PrepareDownloadNIST', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_ES10b_PrepareDownloadNIST_01_03_Nominal_all_3_sequences)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
5. L2 步骤/APDU/step_map 差异(结构化对齐)
- 命令计数:man 55 / cas 0;精确对齐 0,核心(CLA·INS·P1·P2·Lc)同 0,man-only 55,cas-only 0
| # | -man | -cas | 对齐 |
|---|---|---|---|
| — | man-only: @RESET, 00A40004023F00, 00C0000020, 80AA000007A9058100830137, 8010000023FFFFFFFF7F9D00DFBF00001FE20000…0000038, 801200000F, 801400000C810301250082028281830100, 0070000000, 0070000001, 01A4040010A0000005591010FFFFFFFF8900000100, 01C0000021, 81E2910003BF2000 |
6. L3 规范字段/Expected/REQ/通过条件差异
- spec:/Users/yuhu/cas/原料/切片/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST/spec_intl/SGP.23-v1.16_4.2.10_PrepareDownloadNIST.md(风格:mapping);caseir:
/Users/yuhu/cas/experiments/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-20261004_022631/caseir_materialized_gate.json
spec_intl 为人工核订映射表风格(规范步骤 ↔ 厂商脚本实现 ↔ 实跑结果):
| 规范步骤 | man 脚本实现 | man 实跑结果 |
|---|---|---|
| General IC 链(选 ISD-R+Common Mutual Authentication:#GET_EUICC_INFO1/#GET_EUICC_CHALLENGE/#AUTHENTICATE_SMDP 已发;NIST CI 选定) | 壳 L3-17(C001 门禁 L10+pkId_CI_ECDSA_NIST 注入 L13-14)→ 基底 L50-79:`Ini_po | 通过(步骤 1-6=APDU3/27/33/39/45/51 起全链绿;AuthenticateServer euiccSigned1 验签 |
1 MTD_STORE_DATA_SCRIPT(#PREP_DOWNLOAD_NO_CC) → #R_PREP_DOWNLOAD_NO_CC+SW=0x9000 | Profile_load_procedure.ES10b_PrepareDownload()(L79,无 CC 参数缺省形态,链式 ST | 通过(请求 BF21…APDU91-98 链式下发 SW=9000(APDU93/94、100/101、108/109);响应 `BF218 |
| 1 断言 a:\<EUICC_SIGNATURE2\> 用 #PK_EUICC_ECDSA 验签 | Euicc_RSP_Verify(装载过程库内部,NIST CI 公钥验签) | 通过(卡片返回签名数据正确(APDU113)=EUICC_SIGNATURE2 验签通过) |
| 1 断言 b:euiccSigned2 中 \<S_TRANSACTION_ID\> 与 #PREP_DOWNLOAD_NO_CC 相同 | 过程库 transactionId 回显比对 | 通过(transactionId 期望值=实际值 2D67D02ABD64907C7BB7CC2EBACF2FC3(APDU111/11 |
| (收尾,非规范步骤) | RecoverCard()(L81) | 通过(Transaction 2 APDU114-219:复位→MemoryReset 删 OP/TP+Reset default SM-D |
cas CaseIR 步骤/检查:
| 步 | 动作 | checks | REQ |
|---|---|---|---|
| 1 | [SEQ01-1] MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_NO_CC) | ["S1-C1", "S1-C2", "S1-C3", "S1-C4"] | ["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ57_025", "RQ57_026", "RQ57_027", "RQ57_028", "RQ57_029", "RQ57_030", "RQ57_034", "RQ57_035", "RQ57_036", "RQ57_037", "RQ57_038", "RQ57_039", "RQ26_029", "RQ26_030", "RQ26_011", "RQ26_034", "RQ26_035", "RQ31_062"] |
| 2 | [SEQ02-1] MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_WITH_CC) | ["S2-C1", "S2-C2", "S2-C3", "S2-C4", "S2-C5"] | ["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ57_025", "RQ57_026", "RQ57_027", "RQ57_028", "RQ57_029", "RQ57_030", "RQ57_034", "RQ57_035", "RQ57_036", "RQ57_037", "RQ57_038", "RQ57_039", "RQ26_029", "RQ26_030", "RQ26_011", "RQ26_034", "RQ26_035", "RQ31_062"] |
| 3 | [SEQ03-1] MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_RETRY_CC) | ["S3-C1", "S3-C2", "S3-C3", "S3-C4", "S3-C5", "S3-C6"] | ["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ31_138", "RQ57_025", "RQ57_026", "RQ57_027", "RQ57_028", "RQ57_029", "RQ57_030", "RQ57_034", "RQ57_035", "RQ57_036", "RQ57_037", "RQ57_038", "RQ57_039", "RQ57_033", "RQ26_029", "RQ26_030", "RQ26_011", "RQ26_034", "RQ26_035"] |
6.1 充分性分析(启发式,不作最终裁定)
- cas:
NO_MECHANICAL_GAPS(全步有检查=True;REQ 全覆盖=False;ErrorCount==0=False) - cas 物化核对(启发式旁证,权威见下行 attestation):声明检查 15 项 / 生成体 checkData 15 次 / S 标号重合 6 / 计数缺口 0 / 形态
EXPANDED;执行面FAIL(计数缺口须结合绑定层隐含断言核验,非直接判缺陷) - cas 编译器自证(check_attestation,同批构建):声明 None = js 6 + binding 9 + gap 0;缺口判定以本行为权威(启发式计数仅旁证)
- binding 覆盖示例:
S1-C3→binding:euicc_signature2_runtime_verify(PK_EUICC_ECDSA;S22_prep_;S1-C4→binding:prep_download_response_tid_echo(request-S_TRANSACTION_ID;S2-C3→binding:euicc_signature2_runtime_verify(PK_EUICC_ECDSA;S22_prep_;S2-C4→binding:prep_download_response_tid_echo(request-S_TRANSACTION_ID;S2-C5→binding:prep_download_response_hashcc_echo(request-S_HASHED_CC;S - cas 注释面登记检查(未以 checkData 物化、代码内有注释说明):['S1-C3', 'S1-C4', 'S2-C3', 'S2-C4', 'S2-C5', 'S3-C3', 'S3-C4', 'S3-C5', 'S3-C6']
- man:映射行 5;TTR 期望/实际回声 82;厂商工具内置审计(TTR 期望/实际回声行为证据);脚本字节级充分性不可完全外部验证
- REQ 声明面 vs caseir 引用面差异(8 项,非等价缺口判定):['RQ31_136', 'RQ31_137', 'RQ45_006', 'RQ45_026', 'RQ45_026_1', 'RQ45_028', 'RQ45_030', 'RQ57_031']
- caseir open_items:
- <S_TRANSACTION_ID> 由前置 RSP 会话确立(G_annexB 行113),本 TC 步表无提取点。
- <OTPK_EUICC_ECKA>(响应 euiccSigned2.euiccOtpk)供后续 LoadBoundProfilePackage/BPP 流程使用,本 TC 内无消费步。
- #CERT_S_SM_DPpb_ECDSA 与 <S_SM_DP+_SIGNATURE2> 依赖 SGP.26 测试证书/密钥 bundle 与运行时签名计算,均不在输入包。
- Conformance Requirements 列出的 RQ31_136/RQ31_137/RQ45_006/RQ45_026_1/RQ45_026/RQ45_028/RQ45_030 不在本 TC 各步 REQ 列、REQ 行亦不在输入包(应属 4.2.10 其他 TC),不强行映射。
- 每个测试序列执行后须执行 clean-up(CU)恢复 Common Initial State(D_tc_structure_notation 行50),编排责任。
- R2 闭合:前置交互中 #GET_EUICC_CHALLENGE(BF2E00)/#GET_EUICC_INFO1(BF2000) 请求编码已闭合(K_annexC2_procs + S22_challenge/S22_info);#AUTHENTICATE_SMDP 的 ASN.1 段(SGP.22 5.7.x AuthenticateServer)未随包发放,其请求 DER 仍真空(属编排前置,非步表步骤)。
7. 分类结论(封闭枚举)
| 轴 | 计数 | 说明 |
|---|---|---|
RUN_DIFF | 1 | man 通过 / cas 失败 |
SCRIPT_DIALECT | 54 | 闭包文件差:man-only 3 / cas-only 51 |
GEN_DIFF | 63 | 命令序列差:man-only 55 / cas-only 0;REQ 覆盖缺口:['RQ31_136', 'RQ31_137', 'RQ45_006', 'RQ45_026', 'RQ45_026_1', 'RQ45_028', 'RQ45_030', 'RQ57_031'] |
- 置信度:heuristic;需人工复核:False
8. 证据路径
- man 包:
../packages/man/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-man.zip - man TTR:
/Users/yuhu/cas/原料/切片/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST/logs/20260907_183703_ok/extracted/ESIM_TEST_SGP_23/TC_eUICC_ES10b_PrepareDownloadNIST_01_Nominal_Without_Confirmation_Code.ttr - cas 包/源:
../packages/cas/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-cas.zip - cas TTR:
/Users/yuhu/cas/experiments/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-20261004_022631/logs/27ac67b6_gapfix1/result/TC_eUICC_ES10b_PrepareDownloadNIST/TC_eUICC_ES10b_PrepareDownloadNIST_01_03_Nominal_all_3_sequences.ttr - spec_intl:
/Users/yuhu/cas/原料/切片/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST/spec_intl/SGP.23-v1.16_4.2.10_PrepareDownloadNIST.md - caseir:
/Users/yuhu/cas/experiments/4.2.10.2.1-TC_eUICC_ES10b.PrepareDownloadNIST-20261004_022631/caseir_materialized_gate.json - step_map:
—