eSIM RSP 测试用例对比站

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

5.2.1.2.1 下载准备重试(复用 OT 密钥)

TC_eUICC_PrepareDownload_Retry_ReuseOTKeys

章节:5.2.1 · Retry mechanism配对状态:PAIRED报告生成:2026-10-08 22:57:11数据包生成:2026-10-08 22:57:09
-man 人工切片
终态
ok `_ok` 复用(结构 A1-A7 PASS;`_ok` run 无厂商错误行)
ErrorCount
0
执行 job
20260909_020443_ok:f0b1dee828c94728ac95888a54883f21
html_run
20261007_133151
包 sha256
3536651955922356…
包大小
243.1 KB
日志源:logs/20261007_133151/extracted/ESIM_TEST_SGP_23/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair.html
-cas 盲生成
终态
failed 纯 native 零卡态前置(N0)
ErrorCount
5
执行 job
33f6cc5d5ad743ffb33618c82c9216bc
html_run
33f6cc5d_gapfix1
包 sha256
33047c56b23e7cff…
包大小
843.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 74 / cas 0 条命令;完全一致 0,核心一致 0,长度尾部差 0,man-only 74,cas-only 0
规范覆盖(l3)
spec_steps 0,缺失 REQ 0 项,checkData 47 次,计数缺口 0,物化 EXPANDED,执行 FAIL
断言自证(attestation)
js 断言 19 条 / 绑定层 24 条 / 缺口 0
机械差异分类
轴说明计数
RUN_DIFFman 通过 / cas 失败1
SCRIPT_DIALECT闭包文件差:man-only 3 / cas-only 5154
GEN_DIFF命令序列差:man-only 74 / cas-only 074

对比报告

5.2.1.2.1 TC_eUICC_PrepareDownload_Retry_ReuseOTKeys — -man ↔ -cas diff 报告

交付形态说明:本报告随专家交付包分发——-man/-cas 脚本包 zip 与 190server HTML 执行日志已内联至 packages/、evidence-html/,相应路径已相对化;TTR、spec_intl、caseir 等仓内留痕仍为生成机原始路径(未随包)。
  • 生成时间:2026-10-08 22:57:11 |引擎:holiday-blk5/0.1|配对状态:PAIRED
  • 分母口径:卡侧 61 之一

1. 配对与包

侧包/源sha256源类型入口用例
-man5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-man.zip35366519559223563ea6f69b162879cc6d952ca86319858c4b9aad7fcc84768ezipTC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair
-cas5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-cas.zip33047c56b23e7cffa6334ef49d8e6e816744332f57cf1cca81c8ac17c35f234czip—
  • man 源路径:../packages/man/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-man.zip
  • cas 源路径:../packages/cas/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-cas.zip
  • 上游来源:{"man_ledger": true, "cas_ledger": true, "naming_map": true, "html_probe": true, "man_package": true, "cas_package": true}
  • 适用性:naming-map=C019 ["C019", "C019", "C019", "C019", "C019"];caseir=C019

2. 执行摘要(双方 job/终态)

侧终态/计划备注ErrorCountjob_id业务状态TTR诊断包
-manok_ok 复用(结构 A1-A7 PASS;_ok run 无厂商错误行)020260909_020443_ok:f0b1dee828c94728ac95888a54883f21—/Users/yuhu/cas/原料/切片/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/logs/20260909_020443_ok/result/ESIM_TEST_SGP_23/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair.ttr—
-casfailed纯 native 零卡态前置(N0)533f6cc5d5ad743ffb33618c82c9216bc—/Users/yuhu/cas/experiments/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-20261008_020421/logs/33f6cc5d_gapfix1/result/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged.ttr—
  • cas 块4账本:decision=RERUN;route=native_N0;live 事件 3 条(4.6 波次进行中;以块4终版账本为准)
  • cas 4.6 波次最新执行:terminal=failed;stage=cas_gapfix_rerun;job=33f6cc5d5ad743ffb33618c82c9216bc;gaps=["gapfix-rerun:job 终态 succeeded,业务判 failed(error_count=4);failed 亦为有效终态,如实登记"]
  • cas 失败归因引用(块4):b7-attribution.md, b9-attribution.md
  • cas 证据来源分层:RERUN → 本轮 4.6 波次执行

3. HTML 执行日志状态

  • -man:NATIVE(../evidence/5.2.1.2.1/man/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair.html;sha256 00d5bd5fed885ba607f0f5eaa7e16ecc7492900958c86b2a5df85a43b5d852a8;171104 bytes)
  • -cas:NATIVE(../evidence/5.2.1.2.1/cas/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys.html;sha256 368249afb7c66615002e079164aa56532271f050c0330abf20ceed15b71def1e;1263 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 192 / cas 884;字符:man 8253 / cas 87123
  • man 顶层调用 Top:[["TestStepStart2", 35], ["ES10b_GetEUICCInfo1", 6], ["ES10b_GetEUICCChallenge", 6], ["ES10b_AuthenticateServer", 6], ["ES10b_PrepareDownload", 6], ["RSP_profile_load_procedure_LPAd", 4], ["RandHexStr", 4], ["TraceStart", 3], ["Ini_powerOn_eUICC_LPAe_not_activate", 3], ["TS_MANAGE_CHANNEL_OPEN", 3]]
  • cas bind 调用:[["checkData", 47], ["sendApdu", 8]]
方言映射对命中数
TS_*_cmd() ↔ bind.* 命令封装6
unified diff(截断预览)
--- man
+++ cas
@@ -1,191 +1,883 @@
-// slice of Import\TestCase_SGP_23.js - cases: TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair + TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_02_Nominal_Retry_after_a_CancelSession_Reason_Postponed + TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_03_Nominal_Retry_after_a_CancelSession_Reason_Timeout (extracted verbatim)
-
-function TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair()
-{
-	if (!O_E_REUSE_OTPK)
-		return;
-
-	tracenamestr = "Confirmation Code重发,使用上一个会话中的otpk";
-	curDis.TraceStart(sno++,tracenamestr);
-
-	curLogicChannel = 0;
-	curDis.TestStepStart2(stno++,"eUICC卡片初始化;");
-	Ini_powerOn_eUICC_LPAe_not_activate();
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送MANAGE_CHANNEL命令,打开辅助逻辑通道;");
-	TS_MANAGE_CHANNEL_OPEN();
-
-	curLogicChannel = 1;
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送SELECT命令,选择ISD-R;");
-	TS_SELECT("Select ISD",ISD_R_AID,"9000");
-
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行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,PREP_DOWNLOAD_WITH_CC;");
-	var chash1 = curStrHandle.RandHexStr(32);
-	Profile_load_procedure.ccRequiredFlag = "FF";
-	Profile_load_procedure.hashcc = chash1;
-	Profile_load_procedure.ES10b_PrepareDownload();
-
-	var cureuiccOtpk = Profile_load_procedure.euiccOtpk;
-	curDis.TestStepStart2(stno++,"读卡器向卡片发送 StoreData命令,执行GetEuiccInfo1Request;");
-	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,PREP_DOWNLOAD_RETRY_CC,Confirmation Code重发,使用上一个会话中的otpk;");
-	var chash1 = curStrHandle.RandHexStr(32);
-	Profile_load_procedure.ccRequiredFlag = "FF";
-	Profile_load_procedure.hashcc = chash1;
-	Profile_load_procedure.euiccOtpk = cureuiccOtpk;
-	Profile_load_procedure.ES10b_PrepareDownload();
-
-	var cureuiccOtpk2 = Profile_load_procedure.euiccOtpk;
-	curStrHandle.CheckData(cureuiccOtpk, cureuiccOtpk2, "otpk");
-
-	RecoverCard();
+// Author: 卡思Cas智能体
+// Date: 20261004-022945
+// Function: (purpose 原文未由 SGP.23 该 TC 提供,corpus vacuum 登记)TC_eUICC_PrepareDownload_Retry_ReuseOTKeys,Test Sequence #01-#03 Nominal(本 TC 全部 3 条 Test Sequence 合并展开:CC 重试复用 OT/Postponed 后重试/Timeout 后重试),适用性 C019。
+// Test points: 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 cma_ok
+//   S3-C1 Common Mutual Authentication re-execution ok;S5-C1 SW
+//   S5-C2 R_PREP_DOWNLOAD response structure;S5-C2 R_PREP_DOWNLOAD outer tag
+//   S5-C2 R_PREP_DOWNLOAD required members present;S7-C1 SW
+//   S7-C2 R_PREP_DOWNLOAD response structure;S7-C2 R_PREP_DOWNLOAD outer tag
+//   S7-C2 R_PREP_DOWNLOAD required members present;S8-C1 assemble;S8-C2 assemble;S8-C1 SW
+//   S8-C2 cancelSessionResponseOk structure;S9-C1 cma_ok
+//   S9-C1 Common Mutual Authentication re-execution ok;S10-C1 SW
+//   S10-C2 R_PREP_DOWNLOAD response structure;S10-C2 R_PREP_DOWNLOAD outer tag
+//   S10-C2 R_PREP_DOWNLOAD required members present;S12-C1 SW
+//   S12-C2 R_PREP_DOWNLOAD response structure;S12-C2 R_PREP_DOWNLOAD outer tag
+//   S12-C2 R_PREP_DOWNLOAD required members present;S13-C1 assemble;S13-C2 assemble;S13-C1 SW
+//   S13-C2 cancelSessionResponseOk structure;S14-C1 cma_ok
+//   S14-C1 Common Mutual Authentication re-execution ok;S15-C1 SW
+//   S15-C2 R_PREP_DOWNLOAD response structure;S15-C2 R_PREP_DOWNLOAD outer tag
+//   S15-C2 R_PREP_DOWNLOAD required members present
+// 本函数由 CaseIR 5.2.1.2.1 编译生成(experiments/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-20261004_022945,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).
+// 适用性 C019:编译期门,运行时由 harness 环境前置承担。
+// PRECONDITION (declared, NOT compiled): initial_conditions 缺语料过程体(Annex C.2 absent from input package, corpus vacuum): IC 序列属测试工具/卡态编排责任,本脚本不虚构初始化步骤;语义影响见 CaseIR open_items。
+// GEN-IC-1 卡态声明(E 段 General Initial Conditions,编排责任):The PROFILE_OPERATIONAL1 is not loaded on the eUICC: declared unexpanded (no fabricated bytes; provenance = expansion_source).
+// GEN-IC-2 卡态声明:通信已初始化且 S_LPAd 已选 ISD-R;Common Mutual Authentication 已成功执行(#GET_EUICC_INFO1、#GET_EUICC_CHALLENGE、#AUTHENTICATE_SMDP 已发送;签名与验证选用同一 GSMA CI): declared unexpanded (no fabricated bytes; provenance = expansion_source).
+function TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged() {
+    var bind = curBind;
+    var profileAidSession = BindEs10xProcProfileDynamic.beginSession(bind, "TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged");
+
+    // 步骤 1:<S_HASHED_CC> = MTD_GENERATE_HASHED_CC(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: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)
+    // PREP_DOWNLOAD 运行时绑定(PREP_DOWNLOAD_WITH_CC;SGP.22 §5.7.5 PrepareDownloadRequest=BF21 成员序 smdpSigned2(30) → smdpSignature2(5F37), hashCc 04 → 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 pd2Certs = ["308201DFA00302010202020101300A06082A8648CE3D04030230443110300E06035504030C07546573742043493111300F060355040B0C0854455354434552543110300E060355040A0C0752535054455354310B3009060355040613024954301E170D3230303430313038333434355A170D3330303333303038333434355A3025310D300B060355040A0C0441434D453114301206035504030C0B5445535420534D2D44502B3059301306072A8648CE3D020106082A8648CE3D03010703420004104C2AE3D02DEF9C979261A7C6710076B970721D0955A2644AE05FAE4BC2314E5DC09F6BF0118026165342E212318775E365F3B57325373066B9906E0BD1388DA381DF3081DC301F0603551D23041830168014F54172BDF98A95D65CBEB88A38A1C11D800A85C3301D0603551D0E04160414E6EAF71EE0FB9430ECCD1EBB421F881437C13263300E0603551D1104073005880388370A300E0603551D0F0101FF04040302078030170603551D200101FF040D300B300906076781120102010530610603551D1F045A3058302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D412E63726C302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D422E63726C300A06082A8648CE3D040302034800304502203EA51B0129FC11E843C38C8CB104244CCF92D8DDBCD4D5F9DAFD0AEF700A9B1C022100FEF382FF71FEFC58168A3607D5685DB7CB48F6B434261891496385BCD6B5857A", "308201E0A00302010202020101300A06082A8648CE3D04030230443110300E06035504030C07546573742043493111300F060355040B0C0854455354434552543110300E060355040A0C0752535054455354310B3009060355040613024954301E170D3230303430313038333434365A170D3330303333303038333434365A3025310D300B060355040A0C0441434D453114301206035504030C0B5445535420534D2D44502B305A301406072A8648CE3D020106092B240303020801010703420004893253ECC94C51DF4FEE6E0DB0951CFC65627481B5418E557069F487FAA15466A5CB8E10CC2B38099CF2A929F7F82DAC065126B71D0640961DB7F91A49E95612A381DF3081DC301F0603551D23041830168014C0BC70BA36929D43B467FF57570530E57AB8FCD8301D0603551D0E04160414A8C68DF449EB71EC723EAC132E40E4B6F54644FE300E0603551D1104073005880388370A300E0603551D0F0101FF04040302078030170603551D200101FF040D300B300906076781120102010530610603551D1F045A3058302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D412E63726C302AA028A0268624687474703A2F2F63692E746573742E6578616D706C652E636F6D2F43524C2D422E63726C300A06082A8648CE3D04030203470030440220244ED22119D00D49D9EA4AC5D9A6D925FACFCD1998A96448A870CE47FE5E470E02206C4BC7223C925D548DDDD3D8DDD81118DA202973311F6012BB0A20E6DD2D7B7B"];
+    var pd2Sks = ["DCD694B778957E8E9ADDBDD94433E9EF8F73D11E491C48D425A38A9491BD3BED", "75FF322F416616DAE1A484EF71D4874FB0DF3295FD35C2CBA489FBB2BB9C7BF6"];
+    var pd2Tid = "";
+    for (var pd2Ri = 0; pd2Ri < 16; pd2Ri++) {
+        pd2Tid += bind.engine.Hex(Math.round(255 * Math.random()), 2);
+    }
+    var pd2Sel = 0;
+    var pd2Sig1 = "";
+    var pd2Dps = [["FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF", "FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC", "5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B", "046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5", "FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551"], ["A9FB57DBA1EEA9BC3E660A909D838D726E3BF623D52620282013481D1F6E5377", "7D5A0975FC2C3057EEF67530417AFFE7FB8055C126DC5C6CE94A4B44F330B5D9", "26DC5C6CE94A4B44F330B5D9BBD77CBF958416295CF7E1CE6BCCDC18FF8C07B6", "048BD2AEB9CB7E57CB2C4B482FFC81B7AFB9DE27E1E3BD23C23A4453BD9ACE3262547EF835C3DAC4FD97F8461A14611DC9C27745132DED8E545C1D54C72F046997", "A9FB57DBA1EEA9BC3E660A909D838D718C397AA3B561A6F7901E0E82974856A7"]];
+    var pd2CcH = bind.engine.Sha256("30313032303330343035", 20);
+    var pd2HashCc = bind.engine.Sha256(pd2CcH + pd2Tid, (pd2CcH + pd2Tid).length);
+    if (pd2Sel < 0 || pd2Sig1 === "") {
+        // fail-closed 诚实面:CMA 运行时操作数缺席(CMA 失败/未执行)→ BF21 不发送(前序 CMA 步断言面已计错,本步不伪造通过)。
+        bind.checkData("S2-C1 SW", "9000", "pd2_not_executed:cma_operands_absent");
+        bind.checkData("S2-C2 R_PREP_DOWNLOAD response structure", "1", "pd2_not_executed:cma_operands_absent");
+    } else {
…(差异行超限,共 1076 行,此处截断)
### 4.2 UCE/命名对照
  • man:ESIM_TEST_SGP_23.UCE;入口 [('TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair', 'Retry mechanism', 'Import\\\\ExecuteTestCase_SGP_23.js(TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}
  • cas:TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys.uce;入口 [('TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged', 'TC_eUICC_PrepareDownload_Retry_ReuseOTKeys', 'Import\\\\ExecuteTestCase_spec.js(TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged)')];参数 {"ReaderName": "Identiv SCR35xx USB Smart Card Reader 0"}

5. L2 步骤/APDU/step_map 差异(结构化对齐)

  • 命令计数:man 74 / cas 0;精确对齐 0,核心(CLA·INS·P1·P2·Lc)同 0,man-only 74,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/原料/切片/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/spec_intl/SGP.23-v1.16_5.2.1.2.1_PrepareDownload_Retry_ReuseOTKeys.md(风格:mapping);caseir:/Users/yuhu/cas/experiments/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-20261008_020421/caseir_materialized_gate.json

spec_intl 为人工核订映射表风格(规范步骤 ↔ 厂商脚本实现 ↔ 实跑结果):

规范步骤man 脚本实现man 实跑结果
(前置,非规范步骤)General IC 表 1025:空卡+Mutual Auth#01 函数 L11-33:初始化(L13)→ 通道(L16)→ 选 ISD-R(L21)→ GetEUICCInfo1(L27)→ Get通过(ttr 步骤1-6,APDU3-87:复位/通道 01/ISD-R 6121→GET RESPONSE 9000(8203020500
IC1 <S_HASHED_CC>=MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSACTION_ID>)L36-38:RandHexStr(32) 模拟哈希(L36)+ccRequiredFlag="FF"(L37)+`hashcc=c(构造型 IC——hashcc 随请求实发,APDU91 请求 BF21…0101FF 5F3740 53502F8F… 在案)
1 MTD_STORE_DATA_SCRIPT(#PREP_DOWNLOAD_WITH_CC) → #R_PREP_DOWNLOAD_WITH_CC SW=0x9000+验签+transactionId/hashCc 回显+提取 <OTPK_EUICC_ECKA> 供步 4 复用L39 ES10b_PrepareDownload();L41 `cureuiccOtpk = Profile_load_procedu通过(ttr 步骤7,APDU91 请求 transactionId=528B6F5170726D7AF9164C1BC4ACC0ED
2 Execute the Common Mutual Authentication procedure(同一 GSMA CI)L44-50:GetEUICCInfo1(L44)→ GetEUICCChallenge(L47)→ AuthenticateServer(通过(ttr 步骤8-10,APDU117-165:BF20/BF2E/BF38 全 9000,新会话 transactionId=`CB0
3 <S_HASHED_CC>=MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE2, <S_TRANSACTION_ID>)L53-55:新 RandHexStr(32)(L53)+ccRequiredFlag="FF"(L54)+`hashcc=chas(构造型——hashcc2 随重试请求实发,APDU169 在案)
4 MTD_STORE_DATA_SCRIPT(#PREP_DOWNLOAD_RETRY_CC) → SW=0x9000+验签+transactionId/hashCc 回显+<OTPK_EUICC_ECKA> 与 #PREP_DOWNLOAD_RETRY_CC 中相同(复用断言)L56 euiccOtpk = cureuiccOtpk(请求侧复用前次 OTPK)+L57 `ES10b_PrepareDownloa通过(ttr 步骤11,APDU169 请求 BF21…5F4941 0425976AC8…(请求侧复用 OTPK #1 在案)→ AP
(收尾,非规范步骤)RecoverCard()(L62)通过(T2 APDU205-310:复位→MemoryReset BF3404820206C0→9000 BF3403800101→

cas CaseIR 步骤/检查:

步动作checksREQ
1<S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSAC[][]
2MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_WITH_CC)["S2-C1", "S2-C2", "S2-C3", "S2-C4", "S2-C5", "S2-C6"]["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"]
3[Seq#01] Execute the Common Mutual Authentication procedure between th["S3-C1"]["RQ57_047"]
4<S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE2, <S_TRANSAC[][]
5MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_RETRY_CC)["S5-C1", "S5-C2", "S5-C3", "S5-C4", "S5-C5", "S5-C6"]["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ31_137", "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"]
6<S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSAC[][]
7MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_WITH_CC)["S7-C1", "S7-C2", "S7-C3", "S7-C4", "S7-C5", "S7-C6"]["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"]
8MTD_STORE_DATA(#CANCEL_SESSION_POSTPONED)["S8-C1", "S8-C2"]["RQ57_112"]
9Execute the Common Mutual Authentication procedure between the eUICC a["S9-C1"]["RQ57_047"]
10MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_RETRY_C)["S10-C1", "S10-C2", "S10-C3", "S10-C4", "S10-C5", "S10-C6"]["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ31_137", "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"]
11<S_HASHED_CC> = MTD_GENERATE_HASHED_CC(#CONFIRMATION_CODE1, <S_TRANSAC[][]
12MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_WITH_CC)["S12-C1", "S12-C2", "S12-C3", "S12-C4", "S12-C5", "S12-C6"]["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"]
13MTD_STORE_DATA(#CANCEL_SESSION_TIMEOUT)["S13-C1", "S13-C2"]["RQ57_112"]
14Execute the Common Mutual Authentication procedure between the eUICC a["S14-C1"]["RQ57_047"]
15MTD_STORE_DATA_SCRIPT( #PREP_DOWNLOAD_RETRY_CC)["S15-C1", "S15-C2", "S15-C3", "S15-C4", "S15-C5", "S15-C6"]["RQ31_130", "RQ31_131", "RQ31_132", "RQ31_133", "RQ31_134", "RQ31_135", "RQ31_139", "RQ31_140", "RQ31_141", "RQ31_137", "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"]

6.1 充分性分析(启发式,不作最终裁定)

  • cas:NO_MECHANICAL_GAPS(全步有检查=True;REQ 全覆盖=True;ErrorCount==0=False)
  • cas 物化核对(启发式旁证,权威见下行 attestation):声明检查 43 项 / 生成体 checkData 47 次 / S 标号重合 19 / 计数缺口 0 / 形态 EXPANDED;执行面 FAIL(计数缺口须结合绑定层隐含断言核验,非直接判缺陷)
  • cas 编译器自证(check_attestation,同批构建):声明 None = js 19 + binding 24 + gap 0;缺口判定以本行为权威(启发式计数仅旁证)
  • binding 覆盖示例: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;S2-C6→binding:prep_download_response_otpk_extract_cross_step(5F49;S22_;S5-C3→binding:euicc_signature2_runtime_verify(PK_EUICC_ECDSA;S22_prep_
  • cas 注释面登记检查(未以 checkData 物化、代码内有注释说明):['S10-C3', 'S10-C4', 'S10-C5', 'S10-C6', 'S12-C3', 'S12-C4', 'S12-C5', 'S12-C6', 'S15-C3', 'S15-C4', 'S15-C5', 'S15-C6', 'S2-C3', 'S2-C4', 'S2-C5', 'S2-C6', 'S5-C3', 'S5-C4', 'S5-C5', 'S5-C6', 'S7-C3', 'S7-C4', 'S7-C5', 'S7-C6']
  • man:映射行 7;TTR 期望/实际回声 120;厂商工具内置审计(TTR 期望/实际回声行为证据);脚本字节级充分性不可完全外部验证
  • cas 信息步(无线上断言义务):[1, 4, 6, 11]
  • caseir open_items:
  • C019 条件语义缺失:C_conditional_codes.md 仅定义 C001-C018,而 B_applicability_rows.md 行184 将本 TC 判为 C019;C019 谓词未在输入语料给出,故 applicability.condition 置 null。A_iut_capability_defs.md 行10 含 O_E_REUSE_OTPK(eUICC 保存上次未成功下载的 otPK/otSK 供重试),与本 TC 主题直接相关,但语料未把它与 C019 显式关联。
  • Common Mutual Authentication 过程展开缺失:General Initial Condition 以及步 3、步 9、步 14 的 'Execute the Common Mutual Authentication procedure' 引用 #GET_EUICC_INFO1 / #GET_EUICC_CHALLENGE / #AUTHENTICATE_SMDP,但输入段无 CMA 的 PROC_* 分步展开(K_annexC2_procs.md 仅含 PROC_EUICC_INITIALIZATION_SEQUENCE 与 PROC_OPEN_LOGICAL_CHANNEL_AND_SELECT_ISDR),相应步的 command 无法展开为具体 APDU。
  • #02 步骤4(本产物步 10)的 Sequence 列字面为 '#PREP_DOWNLOAD_RETRY_C',而同表 Expected 列引用 '#PREP_DOWNLOAD_RETRY_CC';步 10 的 action 按语料逐字转录 '#PREP_DOWNLOAD_RETRY_C',疑为规范笔误。
  • 多测试序列归属:本 CaseIR 覆盖 TC 的 #01/#02/#03 三序列(tc 定义含三序列,Conformance Requirements 含仅在 #02/#03 被覆盖的 RQ57_112)。#01/#02/#03 的 IC1 哈希行(MTD_GENERATE_HASHED_CC)按 E 表行序物化为步 1/6/11,三序列合并为连续编号 1-15;dynamic_extracts.used_by 与 cross_step_refs 按全局步号。
  • 所有 command.data(PrepareDownloadRequest / CancelSessionRequest 的 DER)与 <S_HASHED_CC> 均因动态成员值(transactionId / signature / hashCc / otpk / certificate)无字面字节而置 null 并逐条登记 unresolved(对应 der_encoding.der_hex=null)。
  • 卡态编排责任、真卡资源预算与实跑取证等非 CaseIR 范围事项不在本文件处理。

7. 分类结论(封闭枚举)

轴计数说明
RUN_DIFF1man 通过 / cas 失败
SCRIPT_DIALECT54闭包文件差:man-only 3 / cas-only 51
GEN_DIFF74命令序列差:man-only 74 / cas-only 0
  • 置信度:heuristic;需人工复核:False

8. 证据路径

  • man 包:../packages/man/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-man.zip
  • man TTR:/Users/yuhu/cas/原料/切片/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/logs/20260909_020443_ok/result/ESIM_TEST_SGP_23/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_Nominal_Confirmation_Code_retry_mechanism_by_reusing_previous_One_Time_key_pair.ttr
  • cas 包/源:../packages/cas/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-cas.zip
  • cas TTR:/Users/yuhu/cas/experiments/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-20261008_020421/logs/33f6cc5d_gapfix1/result/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/TC_eUICC_PrepareDownload_Retry_ReuseOTKeys_01_03_merged.ttr
  • spec_intl:/Users/yuhu/cas/原料/切片/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys/spec_intl/SGP.23-v1.16_5.2.1.2.1_PrepareDownload_Retry_ReuseOTKeys.md
  • caseir:/Users/yuhu/cas/experiments/5.2.1.2.1-TC_eUICC_PrepareDownload_Retry_ReuseOTKeys-20261008_020421/caseir_materialized_gate.json
  • step_map:—