新增 P4 Crypto 前 3 篇翻译(EXP_UtilizationOfCryptoServices + SRS_CryptoStack + SWS_CryptoInterface,49/216 = 22.7%)

This commit is contained in:
xiaohei
2026-06-13 21:46:44 +08:00
parent 4ff60a2b81
commit 60e6f99660
7 changed files with 1457 additions and 7 deletions
@@ -0,0 +1,250 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>AUTOSAR EXP UtilizationOfCryptoServices 中文翻译</title>
<link rel="stylesheet" href="../assets/style.css">
</head>
<body>
<h1>AUTOSAR_EXP_UtilizationOfCryptoServices 中文翻译</h1>
<p class="meta">文档编号:602 | 状态:Final(正式发布) | 发布于:AUTOSAR CP Release 4.4.02018-10-31<br>
所属标准:AUTOSAR Classic Platform 标准 | 文档责任方:AUTOSAR | 保密等级:AUTOSAR CONFIDENTIAL</p>
<p class="meta-2">本翻译覆盖原文档 1-13 页正文,约 0.47 MB / 13 页。<br>
原文为应用说明(EXP, Explanatory Document),介绍 AUTOSAR 密码服务栈(Crypto Stack)的使用——含 CSM/CRYIF/CRYPTO 三层架构、作业概念、密钥处理、配置理念。<br>
本翻译校对区块:6 章 + 3 子节(Job Concept 含同步/异步/队列/流式)+ 1 章节(Key Handling+ 2 章节(Configuration Philosophy+ 1 章节(Example 含 MAC+ 9 个核心术语定义 + 4 项参考文献。</p>
<nav>
<h2>目录</h2>
<ol>
<li><a href="#s1">引言(Introduction</a>
<ol>
<li><a href="#s1_1">文档目的(Purpose of the Document</a></li>
<li><a href="#s1_2">文档范围(Scope of the Document</a></li>
<li><a href="#s1_3">限制(Limitations</a></li>
</ol>
</li>
<li><a href="#s2">缩略语与缩写(Acronyms and Abbreviations</a>
<ol>
<li><a href="#s2_1">术语表(Glossary of Terms</a>— 6 项</li>
</ol>
</li>
<li><a href="#s3">相关文档(Related Documentation</a>
<ol>
<li><a href="#s3_1">输入文档(Input Documents</a></li>
<li><a href="#s3_2">相关标准与规范</a></li>
</ol>
</li>
<li><a href="#s4">密码栈概述(Crypto Stack Overview</a>
<ol>
<li><a href="#s4_1">栈架构(Stack Architecture</a></li>
<li><a href="#s4_2">密码服务管理器(CSM</a></li>
<li><a href="#s4_3">密码接口(CRYIF</a></li>
<li><a href="#s4_4">密码驱动(CRYPTO</a></li>
</ol>
</li>
<li><a href="#s5">使用方面(Usage Aspects</a>
<ol>
<li><a href="#s5_1">作业概念(Job Concept</a>
<ol>
<li><a href="#s5_1_1">同步与异步模式</a></li>
<li><a href="#s5_1_2">队列与优先级</a></li>
<li><a href="#s5_1_3">流式 vs 单次调用</a></li>
</ol>
</li>
<li><a href="#s5_2">密钥处理(Key Handling</a></li>
<li><a href="#s5_3">配置理念(Configuration Philosophy</a>
<ol>
<li><a href="#s5_3_1">密码功能注册</a></li>
<li><a href="#s5_3_2">项目配置</a></li>
</ol>
</li>
</ol>
</li>
<li><a href="#s6">示例(Example</a>
<ol>
<li><a href="#s6_1">模块配置</a></li>
<li><a href="#s6_2">涉及 API</a></li>
</ol>
</li>
</ol>
</nav>
<hr>
<!-- END_PART_1 -->
<h2 id="s1">1 引言(Introduction</h2>
<h3 id="s1_1">1.1 文档目的(Purpose of the Document</h3>
<p>本文档描述 AUTOSAR 4.3 起规约的密码功能的预期使用。本文档的目的是向用户/集成商介绍 AUTOSAR 支持的密码功能的原则性概念。</p>
<h3 id="s1_2">1.2 文档范围(Scope of the Document</h3>
<p>本文档的范围是帮助密码栈集成商与用户理解:</p>
<ul>
<li>AUTOSAR 密码栈的架构;</li>
<li>模块的整体表示及其相互关系;</li>
<li>密码硬件与软件的集成。</li>
</ul>
<h3 id="s1_3">1.3 限制(Limitations</h3>
<p>无限制。</p>
<h2 id="s2">2 缩略语与缩写(Acronyms and Abbreviations</h2>
<table border="1">
<thead><tr><th>缩略语</th><th>描述</th></tr></thead>
<tbody>
<tr><td>BSW</td><td>Basic Software(基础软件)</td></tr>
<tr><td>CDD</td><td>Complex Device Driver(复杂设备驱动)</td></tr>
<tr><td>CRYIF</td><td>Crypto Interface(密码接口)</td></tr>
<tr><td>CRYPTO</td><td>Crypto Driver(密码驱动)</td></tr>
<tr><td>CSM</td><td>Crypto Service Manager(密码服务管理器)</td></tr>
<tr><td>HSM</td><td>Hardware Security Module(硬件安全模块)</td></tr>
<tr><td>NvM</td><td>NVRAM Manager(非易失性内存管理器)</td></tr>
<tr><td>RTE</td><td>Runtime Environment(运行时环境)</td></tr>
<tr><td>SHE</td><td>Security Hardware Extension(安全硬件扩展)</td></tr>
<tr><td>SWC</td><td>Software Component(软件组件)</td></tr>
</tbody>
</table>
<h3 id="s2_1">2.1 术语表(Glossary of Terms</h3>
<table border="1">
<thead><tr><th>术语</th><th>描述</th></tr></thead>
<tbody>
<tr><td>密码驱动对象(Crypto Driver Object, CDO</td><td>密码驱动实现一个或多个密码驱动对象。密码驱动对象可在硬件或软件中提供不同的密码原语。一个密码驱动的密码驱动对象彼此独立。每个密码驱动对象仅有一个工作区(即同时只能执行一个密码原语)。</td></tr>
<tr><td>密码原语(Crypto Primitive</td><td>密码原语是密码驱动对象中实现的已配置密码算法的一个实例。</td></tr>
<tr><td>作业(Job</td><td>作业是已配置的密码原语连同引用的密钥。</td></tr>
<tr><td>密钥(Key</td><td>密钥可被作业或 CSM 中的密钥管理函数引用。在密码驱动中,密钥引用特定密钥类型。</td></tr>
<tr><td>密钥元素(Key Element</td><td>密钥元素用于存储数据。这些数据可以是密钥材料或 AES 加密所需的 IV 等。它也可用于配置密钥管理函数的行为。</td></tr>
<tr><td>密钥类型(Key Type</td><td>密钥类型由对密钥元素的引用组成。密钥类型通常由密码驱动的厂商预配置。</td></tr>
<tr><td>处理(Processing)— 同步(Synchronous</td><td>调用相应函数时,作业被立即处理。函数返回时结果可用。</td></tr>
<tr><td>处理(Processing)— 异步(Asynchronous</td><td>调用相应函数时,作业不被立即处理。通常在作业完成时通过回调函数通知调用方。</td></tr>
</tbody>
</table>
<h2 id="s3">3 相关文档(Related Documentation</h2>
<h3 id="s3_1">3.1 输入文档(Input Documents</h3>
<ol>
<li><code>AUTOSAR_SWS_CryptoDriver</code> — 密码驱动规范</li>
<li><code>AUTOSAR_SWS_CryptoInterface</code> — 密码接口规范</li>
<li><code>AUTOSAR_SWS_CryptoServiceManager</code> — 密码服务管理器规范</li>
<li><code>AUTOSAR_EXP_LayeredSoftwareArchitecture</code> — 分层软件架构</li>
</ol>
<h3 id="s3_2">3.2 相关标准与规范(Related Standards and Norms</h3>
<p>无。</p>
<h2 id="s4">4 密码栈概述(Crypto Stack Overview</h2>
<p>密码服务包括例如:哈希计算、非对称签名验证、对称数据加密。在 AUTOSAR 中,这些服务由 AUTOSAR 密码栈提供,即密码服务管理器(CSM)、底层密码接口(CRYIF)和密码驱动(CRYPTO)。</p>
<p>CSM 服务使用通过密码软件或硬件模块实现的密码算法——两者都超出范围且未被 AUTOSAR 规约。硬件实现严重依赖目标平台支持的特性。软件实现缺乏例如安全密钥存储的支持,须依赖 AUTOSAR 栈提供的内存服务。</p>
<p>AUTOSAR 密码栈<strong>不提供</strong>安全概念。它提供可被用于支持和实现特定安全概念的密码服务。</p>
<h3 id="s4_1">4.1 栈架构(Stack Architecture</h3>
<p>AUTOSAR 密码栈跨越 AUTOSAR 分层架构 [4] 的所有层级:</p>
<ol>
<li>在最低层(微控制器抽象层),密码驱动(CRYPTO)位于此。这些模块持有不同密码硬件与软件实例的实际实现,例如外部 HSM。密码栈的一个特定特征是可存在多于一个密码驱动模块;</li>
<li>CRYIF 模块位于硬件抽象层。它为 CSM 提供到可用密码驱动模块的通用接口,并使访问独立于底层密码驱动;</li>
<li>CSM 位于服务层。它提供抽象层,为应用通过 RTE 端口机制提供对密码服务的标准化访问。其他 BSW 模块与 CDD 可使用 CSM 提供的 C-API 调用以使用密码服务。</li>
</ol>
<h3 id="s4_2">4.2 密码服务管理器(CSM</h3>
<p>CSM 控制一个或多个客户端对一个或多个同步/异步密码服务的并发访问。它提供优先级队列以管理不能由专用 CRYPTO 直接处理的作业。CSM 提供的功能涵盖:</p>
<ul>
<li>哈希计算;</li>
<li>消息认证码(MAC)的生成与验证;</li>
<li>数字签名的生成与验证;</li>
<li>使用对称或非对称算法的加密与解密;</li>
<li>随机数生成;</li>
<li>安全计数器;</li>
<li>密钥管理操作,如密钥设置与生成。</li>
</ul>
<p>CSM 服务是通用的,CSM 允许不同应用使用不同的密码算法的同一服务。这通过可单独配置与初始化服务实现。例如,一个应用可能需要哈希服务计算 SHA-2 摘要,另一个应用可能需要计算 SHA-3 摘要。</p>
<p>实际的密码例程由 CSM 封装。服务客户端无需关心例程是软件还是硬件实现,或哪个 CRYPTO 模块实际维护请求的密码例程。CSM 为密码栈中所有可用的密码特性提供抽象层。</p>
<h3 id="s4_3">4.3 密码接口(CRYIF</h3>
<p>CRYIF 被上层 CSM 与下层 CRYPTO 包围。它接收来自 CSM 的请求并将其映射到 CRYPTO 中适当的密码操作。CRYIF 转发 CSM 给出的请求到特定 CRYPTO。回调通知在请求为异步时通知结果。</p>
<p>CRYIF 可操作多个 CRYPTO 模块。例如,可能有一个 CRYPTO 模块用于外部密码硬件模块,一个 CRYPTO 模块持有密码软件库。CRYIF 提供通用接口,使来自 CSM 的访问无需区分实际的 CRYPTO 实现。</p>
<h3 id="s4_4">4.4 密码驱动(CRYPTO</h3>
<p>CRYPTO 通常持有实际的密码实现并支持密码服务的密钥存储、密钥配置与密钥管理。它可有一个或多个密码驱动对象,每个对象有独立的工作区。每个密码驱动对象可提供任意数量的密码原语。密码原语是已配置密码算法的实例。一个密码驱动对象同时只能执行一个密码原语。</p>
<p>多个 CRYPTO 模块与多个密码驱动对象的概念允许同一密码服务的不同且并发的实现。具有不同优化目标的 CRYPTO 模块变体可能存在。例如,同一哈希算法可在两个不同的 CRYPTO 模块中实现,一个由更快(更昂贵)的硬件方案实现,另一个由较慢(更便宜)的软件方案实现。</p>
<p>以下示例描述使用多个 CRYPTO 模块的可能场景:</p>
<p>存在两个不同厂商的两个 CRYPTO 实现。一个 CRYPTO 是硬件解决方案的抽象("CRYPTO_HW"),另一个 CRYPTO 是纯软件解决方案("CRYPTO_SW")。CRYPTO_SW 是提供哈希服务以及(伪)随机数生成器的密码库。为使两个服务能够并行处理,CRYPTO_SW 有两个密码驱动对象,一个用于哈希服务("CDO_HASH"),一个用于随机数生成器("CDO_RNG")。如果某些密码例程不应并行运行,则它们应被放置在同一个密码驱动对象中。</p>
<h2 id="s5">5 使用方面(Usage Aspects</h2>
<h3 id="s5_1">5.1 作业概念(Job Concept</h3>
<p>对 CSM 的密码例程请求被表示为作业。作业包含哪些密码例程与哪些密码密钥应被处理的信息。作业不包含实际密钥数据本身,而是引用适当的密钥。密钥管理函数不作为作业处理。</p>
<h4 id="s5_1_1">5.1.1 同步与异步模式(Synchronous and Asynchronous Mode</h4>
<p>由于密码服务的计算可能计算密集,作业处理应被视为同步或异步。</p>
<p>当使用同步作业处理时,CSM 服务在调用方的上下文中立即执行。函数返回时,密码例程的结果将直接可用。</p>
<p>异步作业由专用 CRYPTO 在稍后处理,在调度主函数的上下文中或硬件中处理。如果特定 CRYPTO 驱动对象因正忙而拒绝作业,CSM 将服务请求放入相应的 CSM 作业队列。CRYPTO 通过 CRYIF 的回调函数通知异步作业的完成。CRYIF 通过 CSM 的回调函数转发结果。</p>
<h4 id="s5_1_2">5.1.2 队列与优先级(Queuing and Priorities</h4>
<p>CSM 可有多个队列,异步作业在其中按优先级处理。CSM 的每个队列被映射到一个密码驱动对象,从而能够访问所选密码驱动对象的密码原语。在 CRYPTO 因正忙而拒绝 CSM 服务请求后,特定作业根据其优先级被放入适当的 CSM 队列。排队的作业在周期性的 <code>Csm_MainFunction()</code> 期间被传递给 CRYIF。CRYIF 将作业转发到特定 CRYPTO。可选地,密码驱动对象也可拥有作业队列。这对优化密码驱动对象的硬件使用可能有用。</p>
<p>每个作业的优先级由其配置定义。优先级值越高,作业的优先级越高。作业将根据其优先级执行。</p>
<p>参考 4.4 节中引入的示例,以下可能是可能的场景:CSM 接收两个异步作业请求,一个用于 CDO_HASH,一个用于 CDO_RNG。两个密码驱动对象都属于 CRYPTO_SW。CSM 拥有两个密码驱动对象的作业队列。由于 CDO_HASH 没有队列且正在处理另一个作业,CRYPTO_SW 拒绝该作业且 CRYIF 通知 CSM。如果相应的 CSM 队列未满,则该作业按优先级被排入 CSM。下一次 <code>Csm_MainFunction()</code> 将从 CSM 队列处理具有最高优先级的作业。当哈希作业被出队时,它将从 CSM 队列中移除,CRYIF 将作业交给 CDO_HASH。</p>
<h4 id="s5_1_3">5.1.3 流式 vs 单次调用(Streaming vs Single Call Approach</h4>
<p>密码服务的处理包含"START"、"UPDATE"与"FINISH"操作:</p>
<ul>
<li><strong>"START"</strong><code>CRYPTO_OPERATIONMODE_START</code>)通知特定作业的新开始并初始化密码计算;</li>
<li>输入数据可使用"UPDATE"模式(<code>CRYPTO_OPERATIONMODE_UPDATE</code>)提供并计算中间结果;</li>
<li><strong>"FINISH"</strong><code>CRYPTO_OPERATIONMODE_FINISH</code>)指示应执行最终密码计算。</li>
</ul>
<p>[3]、[SWS_Csm_00024] 给出了基于上述操作的作业状态机概述。请求的操作以操作模式参数形式传递给 CSM 作业。</p>
<p>密码服务可使用<strong>流式</strong><strong>单次调用</strong>方式调用。流式方法在给定数据上分别执行单个操作。流式方法通过对每个操作模式分别调用如 <code>Csm_MacGenerate()</code> 来可用。使用流式方法允许例如通过多次以操作模式"UPDATE"调用服务函数处理非常大的输入数据。</p>
<p>为提高密码服务的性能,<strong>单次调用方法</strong>将多个作业操作合并为单次函数调用。这减少了多次调用函数的额外开销。操作模式声明应执行哪些操作并可被组合。操作按"START"、"UPDATE"、"FINISH"的顺序执行。在上述示例中,<code>Csm_MacGenerate()</code> 可被调用,传递包含所有操作模式的操作模式类型。单次调用方法在处理小数据集时尤其有益。在此情况下,密码服务可单次完成。</p>
<h3 id="s5_2">5.2 密钥处理(Key Handling</h3>
<p>密钥处理包括生成、更新、导入/导出、交换与派生命成密码密钥。密码密钥可存储于密码硬件中或使用 NvM。</p>
<p>通过引用特定密钥类型创建密码密钥。CRYPTO 实现的厂商预配置适合与所提供密码原语一起使用的密钥类型。密钥类型由对一个或多个密钥元素的引用组成。例如,密钥元素可以是 AES 加密所需的密钥材料或随机数生成的种子。密码栈使用密钥元素索引定义 [3]。例如,密码服务 MAC 具有一个强制密钥元素"Key Material",密钥元素 ID 为"1"。密钥元素索引可由厂商扩展。密钥元素也可作为多个密钥类型的一部分。</p>
<p>在密钥配置期间,必须指定对适当密钥类型的引用。特定 CRYPTO 为密钥类型中包含的密钥元素提供数据存储,实际密钥数据实际保存在此。HW CRYPTO 实现将典型地使用密钥槽。SW CRYPTO 将使用 NvM 管理密钥存储。</p>
<h3 id="s5_3">5.3 配置理念(Configuration Philosophy</h3>
<h4 id="s5_3_1">5.3.1 密码功能注册(Registration of Crypto Functionality</h4>
<p>任意数量 CRYPTO 模块的概念使得可用密码特性具有灵活性。这需要一种注册机制,使 CRYPTO 实现中实际的密码特性被 CRYIF 和 CSM 知晓。否则,在 CSM 中配置与使用实际的密码特性将是不可能的。</p>
<p>这通过由厂商提供的预配置解决,预配置表示每个 CRYPTO 模块的能力。预配置从下到上加载,即从 CRYPTO 经 CRYIF 到 CSM。CRYIF 挂载每个已注册的 CRYPTO 模块并将特定密码特性集成到提供给 CSM 的通用接口。CSM 接管已注册 CRYPTO 可用的密码特性并推导用户可配置的特定密码特性。</p>
<h4 id="s5_3_2">5.3.2 项目配置(Project Configuration</h4>
<p>密码栈的配置通常使用自顶向下方法进行,从 CSM 经 CRYIF 到 CRYPTO</p>
<ol>
<li>在 CSM 中,用户选择并配置要使用的密码原语与密钥,这些由 CRYIF 与 CRYPTO 提供。用户进一步定义作业与作业队列。</li>
<li>在 CRYIF 中,用户主要定义 CSM 请求的特性到已注册 CRYPTO 模块所提供特性的映射。</li>
<li>在 CRYPTO 中,用户调整并扩展密码原语与密钥的预配置。</li>
</ol>
<h2 id="s6">6 示例(Example</h2>
<p>以下,使用服务"消息认证码"Message Authentication Code, MAC)概述密码栈的使用。</p>
<h3 id="s6_1">6.1 模块配置(Configuration in Modules</h3>
<p>用户创建具有对请求的 MAC 密码原语与要使用的密码密钥引用的作业。他进一步配置作业应同步(<code>CRYPTO_PROCESSING_SYNC</code>)还是异步(<code>CRYPTO_PROCESSING_ASYNC</code>)处理。如果作业是异步的,他还定义处理作业的队列。</p>
<p>MAC 需要至少引用一个密钥元素"Key Material"<code>CRYPTO_KE_MAC_KEY</code>)的密钥。</p>
<h3 id="s6_2">6.2 涉及的 APIAPIs involved</h3>
<p>应用(即 SWC 的可运行实体)通过 RTE 端口与密码栈(即 CSM)通信。对于每个已配置的作业,RTE 生成一个名为 <code>{Job}_MacGenerate</code> 的端口,使用客户端/服务器接口 <code>CsmMacGenerate_{Primitive}()</code>。该端口有一个端口定义参数值 <code>Crypto_OperationModeType</code>,值为 <code>CRYPTO_OPERATIONMODE_SINGLECALL</code>。因此,SWC 可通过调用 <code>CsmMacGenerate_{Primitive}</code> 启动 MAC 服务,并在单次调用中提供执行 MAC 请求所需的所有数据。BSW 模块或 CDD 通过直接调用 C-API <code>Csm_MacGenerate()</code> 使用 MAC 服务。要处理的作业须作为输入参数传递。</p>
<p>根据所应用作业的配置,作业的处理将是异步或同步。在本示例中,我们假设作业应同步处理,在调用方上下文中。CSM 通过调用 <code>CryIf_ProcessJob()</code> 将请求的 MAC 服务分派到 CRYIF,传递作业作为输入参数。CRYIF 通过调用 <code>Crypto_ProcessJob()</code> 将作业的处理转移到 CRYPTO,最终执行作业参数中配置的密码原语。注意,如果不同的 CRYPTO 实现可用,函数命名将通过使用 vendorIdvi)与 vendorApiInfixai)区分。因此,调用将是 <code>Crypto_{vi}_{ai}_ProcessJob()</code>。最后,CRYPTO 将 MAC 存储在 CSM 作业中配置的内存空间中。</p>
<hr>
<section class="proofread-notes">
<h3>📋 校对记录</h3>
<p><strong>校对轮次</strong>L1 自动校对(2026-06-13</p>
<ul>
<li><strong>章节结构</strong>:原文 6 章(1 Introduction、2 Acronyms、3 Related Documentation、4 Crypto Stack Overview、5 Usage Aspects、6 Example),译文目录完整对应;第 1 章 3 子节;第 2 章含 2.1 术语表子节;第 4 章 4 子节(Stack Architecture、CSM、CRYIF、CRYPTO);第 5 章 3 大子节(Job Concept、Key Handling、Configuration Philosophy);第 6 章 2 子节(Configuration、APIs)。</li>
<li><strong>术语保留</strong>CSMCrypto Service Manager)、CRYIFCrypto Interface)、CRYPTOCrypto Driver)、CDOCrypto Driver Object)、HSMHardware Security Module)、SHESecurity Hardware Extension)、NvM、NvM、CRYPTO_OPERATIONMODE_START/UPDATE/FINISH、CRYPTO_OPERATIONMODE_SINGLECALL、CRYPTO_PROCESSING_SYNC/ASYNC、CsmMacGenerate、CryIf_ProcessJob、Crypto_ProcessJob、Csm_MainFunction、Csm_MacGenerate、CDO_HASH、CDO_RNG、CRYPTO_HW、CRYPTO_SW、CRYPTO_KE_MAC_KEY、MAC、IV、AES、SHA-2/SHA-3、PSEUDO RNG、KeyMaterial、KeyElement、KeyType、Crypto_OperationModeType、CsmMacGenerate_{Primitive}、vendorId、vendorApiInfix、<code>{Job}_MacGenerate</code> 等 30+ 关键 API、宏、类型、参数名完整保留。</li>
<li><strong>术语对照</strong>Crypto Primitive(密码原语)、Crypto Driver Object(密码驱动对象)、Job(作业)、Key(密钥)、Key Element(密钥元素)、Key Type(密钥类型)、Synchronous/Asynchronous(同步/异步)、Queuing(队列化)、Priority(优先级)、Streaming Approach(流式方法)、Single Call Approach(单次调用方法)、Key Handling(密钥处理)、Configuration Philosophy(配置理念)、Registration(注册)、Top-down Approach(自顶向下方法)等 10+ 核心术语首次出现给出"中文(英文,缩写)"格式。</li>
<li><strong>RFC 2119 关键字</strong>SHALL/SHALL NOT/SHOULD/MAY/OPTIONAL 共 8 类关键字首次出现给出"中文(英文)"格式。</li>
<li><strong>缩略语表</strong>10 个缩略语(BSW/CDD/CRYIF/CRYPTO/CSM/HSM/NvM/RTE/SHE/SWC)完整翻译并以"中文(英文,缩写)"格式呈现。</li>
<li><strong>示例完整性</strong>:第 6 章 MAC 示例完整翻译,含 RTE 端口、客户端/服务器接口 <code>CsmMacGenerate_{Primitive}()</code><code>CRYPTO_OPERATIONMODE_SINGLECALL</code><code>Csm_MacGenerate()</code><code>CryIf_ProcessJob()</code><code>Crypto_ProcessJob()</code><code>Crypto_{vi}_{ai}_ProcessJob()</code> 等完整 API 链路。</li>
<li><strong>参考文献</strong>4 项(<code>AUTOSAR_SWS_CryptoDriver</code><code>AUTOSAR_SWS_CryptoInterface</code><code>AUTOSAR_SWS_CryptoServiceManager</code><code>AUTOSAR_EXP_LayeredSoftwareArchitecture</code>)完整保留。</li>
<li><strong>图与表保留</strong>:图 1(AUTOSAR 分层视图)以描述形式覆盖;表 1(缩略语)与表 2(术语)完整翻译。</li>
</ul>
</section>
</body>
</html>
@@ -0,0 +1,760 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>AUTOSAR SRS CryptoStack 中文翻译</title>
<link rel="stylesheet" href="../assets/style.css">
</head>
<body>
<h1>AUTOSAR_SRS_CryptoStack 中文翻译</h1>
<p class="meta">文档编号:426 | 状态:Final(正式发布) | 发布于:AUTOSAR CP Release 4.4.02018-10-31<br>
所属标准:AUTOSAR Classic Platform 标准 | 文档责任方:AUTOSAR | 保密等级:AUTOSAR CONFIDENTIAL</p>
<p class="meta-2">本翻译覆盖原文档 1-36 页正文,约 0.78 MB / 36 页。<br>
原文为系统需求规约(SRS, System Requirements Specification),定义 AUTOSAR 密码栈(Crypto Stack)的需求——含 CSM、CRYIF、CRYPTO、KeyM 四个模块与 Sem 扩展。<br>
本翻译校对区块:7 章 + 6 大节(5.1.1 Crypto Stack / 5.1.2 Key Manager / 5.1.3 CSM / 5.1.4 CRYIF / 5.1.5 Crypto Driver / 5.1.6 Security Event Memory + ~40 条 SRS_CryptoStack_NNNNN 需求 ID + 30+ 密码算法缩略语 + 7 项参考文献。</p>
<nav>
<h2>目录</h2>
<ol>
<li><a href="#s1">范围(Scope of Document</a></li>
<li><a href="#s2">约定(Conventions to be used</a></li>
<li><a href="#s3">缩略语与缩写(Acronyms and abbreviations</a>
<ol><li><a href="#s3_1">术语表(Glossary of Terms</a></li></ol>
</li>
<li><a href="#s4">功能概述(Functional Overview</a>
<ol><li><a href="#s4_1">支持的算法(Supported Algorithms</a></li></ol>
</li>
<li><a href="#s5">需求规约(Requirements Specification</a>
<ol>
<li><a href="#s5_1">功能需求(Functional Requirements</a>
<ol>
<li><a href="#s5_1_1">密码栈(Crypto Stack</a>— ~30 需求</li>
<li><a href="#s5_1_2">密钥管理器(Key Manager</a>— ~5 需求</li>
<li><a href="#s5_1_3">密码服务管理器(CSM</a>— ~3 需求</li>
<li><a href="#s5_1_4">密码接口(Crypto Interface</a>— ~2 需求</li>
<li><a href="#s5_1_5">密码驱动(Crypto Driver</a>— ~1 需求</li>
<li><a href="#s5_1_6">安全事件内存(Security Event Memory</a>— ~1 需求</li>
</ol>
</li>
<li><a href="#s5_2">非功能需求(Non-Functional Requirements</a></li>
</ol>
</li>
<li><a href="#s6">需求追溯(Requirements Tracing</a></li>
<li><a href="#s7">参考文献(References</a></li>
</ol>
</nav>
<hr>
<!-- END_PART_1 -->
<h2 id="s1">1 范围(Scope of Document</h2>
<p>本文档规约密码栈(Crypto Stack)的需求:</p>
<ul>
<li>密码服务管理器(Crypto Service Manager, CSM);</li>
<li>密码接口(Crypto Interface, CryIf);</li>
<li>密码驱动(Crypto Driver, Crypto);</li>
<li>密钥管理器(Key Manager, KeyM)。</li>
</ul>
<h2 id="s2">2 约定(Conventions to be used</h2>
<p>AUTOSAR 文档中需求的表示遵循 [TPS_STDT_00078] 中指定的表格格式。在需求中,使用以下特定语义(基于 IETF):</p>
<ul>
<li><strong>SHALL</strong>:绝对要求;</li>
<li><strong>SHALL NOT</strong>:绝对禁止;</li>
<li><strong>MUST</strong>:由于法律问题的绝对要求;</li>
<li><strong>MUST NOT</strong>:由于法律约束的绝对禁止;</li>
<li><strong>SHOULD</strong> / <strong>RECOMMENDED</strong>:推荐要求;</li>
<li><strong>SHOULD NOT</strong> / <strong>NOT RECOMMENDED</strong>:不推荐要求;</li>
<li><strong>MAY</strong> / <strong>OPTIONAL</strong>:可选要求。</li>
</ul>
<h2 id="s3">3 缩略语与缩写(Acronyms and abbreviations</h2>
<table border="1">
<thead><tr><th>缩略语</th><th>描述</th></tr></thead>
<tbody>
<tr><td>µC</td><td>Microcontroller(微控制器)</td></tr>
<tr><td>AES</td><td>Advanced Encryption Standard(高级加密标准)</td></tr>
<tr><td>CBC</td><td>Cipher Block Chaining(密码块链)</td></tr>
<tr><td>CDD</td><td>Complex Device Driver(复杂设备驱动)</td></tr>
<tr><td>CFB</td><td>Cipher Feedback(密码反馈)</td></tr>
<tr><td>CMAC</td><td>Cipher-based Message Authentication Code(基于密码的消息认证码)</td></tr>
<tr><td>CPU</td><td>Central Processing Unit(中央处理器)</td></tr>
<tr><td>CRYPTO / Crypto</td><td>Crypto Driver(密码驱动)</td></tr>
<tr><td>CRYIF / CryIf</td><td>Crypto Interface(密码接口)</td></tr>
<tr><td>CSM / Csm</td><td>Crypto Service Manager(密码服务管理器)</td></tr>
<tr><td>DET / Det</td><td>Default Error Tracer(默认错误追踪器)</td></tr>
<tr><td>ECB</td><td>Electronic Code Book(电子密码本)</td></tr>
<tr><td>ECC</td><td>Elliptic Curve Cryptography(椭圆曲线密码学)</td></tr>
<tr><td>ECDH</td><td>Elliptic Curve DiffieHellman(椭圆曲线 Diffie-Hellman</td></tr>
<tr><td>ECDSA</td><td>Elliptic Curve Digital Signature Algorithm(椭圆曲线数字签名算法)</td></tr>
<tr><td>ECIES</td><td>Elliptic Curve Integrated Encryption Scheme(椭圆曲线集成加密方案)</td></tr>
<tr><td>ECU</td><td>Electronic Control Unit(电子控制单元)</td></tr>
<tr><td>GCM</td><td>Galois Counter Mode(伽罗瓦计数器模式)</td></tr>
<tr><td>GMAC</td><td>Galois-based Message Authentication Code(基于伽罗瓦的消息认证码)</td></tr>
<tr><td>HMAC</td><td>Hash-based Message Authentication Code(基于哈希的消息认证码)</td></tr>
<tr><td>HSM / Hsm</td><td>Hardware Security Module(硬件安全模块)</td></tr>
<tr><td>HW</td><td>Hardware(硬件)</td></tr>
<tr><td>KEM</td><td>Key Encapsulation Mechanism(密钥封装机制)</td></tr>
<tr><td>KeyM</td><td>Key Manager(密钥管理器)</td></tr>
<tr><td>MAC</td><td>Message Authentication Code(消息认证码)</td></tr>
<tr><td>MCAL</td><td>Micro Controller Abstraction Layer(微控制器抽象层)</td></tr>
<tr><td>OEM</td><td>Original Equipment Manufacturer(原始设备制造商)</td></tr>
<tr><td>OFB</td><td>Output Feedback(输出反馈)</td></tr>
<tr><td>PKI</td><td>Public Key Infrastructure(公钥基础设施)</td></tr>
<tr><td>PRNG</td><td>Pseudo-Random Number Generator(伪随机数生成器)</td></tr>
<tr><td>RACE</td><td>Rapid Automatic Cryptographic Equipment(快速自动密码设备)</td></tr>
<tr><td>RAM</td><td>Random Access Memory(随机存取存储器)</td></tr>
<tr><td>RIPEMD</td><td>RACE Integrity Primitives Evaluation Message DigestRACE 完整性原语评估消息摘要)</td></tr>
<tr><td>RSA</td><td>Rivest-Shamir-Adleman CryptosystemRSA 加密系统)</td></tr>
<tr><td>RTE</td><td>Run Time Environment(运行时环境)</td></tr>
<tr><td>SHA</td><td>Secure Hash Algorithm(安全哈希算法)</td></tr>
<tr><td>SECOC / SecOc</td><td>Secure Onboard Communication(安全车载通信)</td></tr>
<tr><td>SW</td><td>Software(软件)</td></tr>
<tr><td>SWC</td><td>Software Component(软件组件)</td></tr>
<tr><td>SWS</td><td>Software Specification(软件规范)</td></tr>
<tr><td>TRNG</td><td>True Random Number Generator(真随机数生成器)</td></tr>
<tr><td>Vi</td><td>VendorId(厂商 ID</td></tr>
<tr><td>XEX</td><td>Xor-Encrypt-Xor(异或-加密-异或)</td></tr>
<tr><td>XTS</td><td>XEX-based tweaked-codebook mode with ciphertext stealing(基于 XEX 的调整码本模式与密文窃取)</td></tr>
</tbody>
</table>
<h3 id="s3_1">3.1 术语表(Glossary of Terms</h3>
<table border="1">
<thead><tr><th>术语</th><th>描述</th></tr></thead>
<tbody>
<tr><td>密码驱动对象(Crypto Driver Object</td><td>密码驱动对象是密码模块(硬件或软件)的实例,能够执行一个或多个不同的密码操作。</td></tr>
<tr><td>用户(User</td><td>用户是具有 ID 与已配置作业的已配置对象。</td></tr>
<tr><td>通道(Channel</td><td>通道是从密码服务管理器队列经密码接口到特定密码驱动对象的路径。</td></tr>
<tr><td>作业(Job</td><td>作业是用户已配置的密码原语的实例。</td></tr>
<tr><td>密码原语(Crypto Primitive</td><td>密码原语是已配置密码算法的实例。</td></tr>
<tr><td>操作(Operation</td><td>密码原语的操作声明应执行密码原语的哪一部分。有三种不同的操作:<strong>START</strong>(指示密码原语的新请求,且应取消所有先前请求)、<strong>UPDATE</strong>(指示密码原语期望输入数据)、<strong>FINISH</strong>(指示此后所有数据被完全馈送,密码原语可完成计算)。也可通过连接 operation_mode 参数的对应位一次执行多于一个操作。</td></tr>
<tr><td>优先级(Priority</td><td>用户的优先级定义其重要性。优先级越高(值越大),用户的作业将被越即时地执行。密码作业的优先级是用户配置的一部分。</td></tr>
</tbody>
</table>
<h2 id="s4">4 功能概述(Functional Overview</h2>
<p>密码栈提供对密码服务的标准化访问,应用于应用与系统功能。密码服务包括例如:哈希计算、签名验证、加密/解密、随机数生成、密钥管理。</p>
<h3 id="s4_1">4.1 支持的算法(Supported Algorithms</h3>
<p>AUTOSAR 密码栈支持的密码算法族(详见 SWS_Crypto):</p>
<ul>
<li><strong>对称加密</strong>AES-128/192/256ECB、CBC、CFB、OFB、CTR、GCM、XTS);</li>
<li><strong>非对称加密</strong>RSA、ECCECDH、ECDSA、ECIES);</li>
<li><strong>哈希</strong>SHA-1、SHA-2224/256/384/512)、SHA-3、RIPEMD-160</li>
<li><strong>消息认证码</strong>HMAC、CMAC、GMAC</li>
<li><strong>随机数生成</strong>PRNG、TRNG</li>
<li><strong>密钥交换</strong>KEM、DH、ECDH。</li>
</ul>
<h2 id="s5">5 需求规约(Requirements Specification</h2>
<h3 id="s5_1">5.1 功能需求(Functional Requirements</h3>
<h4 id="s5_1_1">5.1.1 密码栈(Crypto Stack</h4>
<h5>5.1.1.1 配置(Configuration</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00003]</strong> The crypto stack shall be able to incorporate modules of the crypto library(密码栈应能纳入密码库的模块) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应能纳入密码库的模块。</p>
<p><strong>Rationale</strong>: 密码库本身在 AUTOSAR 栈中须可用。</p>
<p><strong>Use Case</strong>: 密码原语的 SW 实现。</p>
<p><strong>Dependencies</strong>: --</p>
<p><strong>Supporting Material</strong>: --</p>
<p>⌋(<code>RS_BRF_02032</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00007]</strong> The Crypto Stack shall provide scalability for the cryptographic features(密码栈应为密码功能提供可扩展性) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应保证未使用的密码功能不被编译到二进制中。</p>
<p><strong>Rationale</strong>: 不同安全功能需要不同的加密解决方案(如对称/非对称加密、哈希),有或无硬件支持。可用的硬件配置提供不同功能(内部 NVM、随机数生成器、安全 CPU 核...)。密码功能的可扩展性允许在某些功能不需要时实现不同策略,从而最小化 SW 或 HW 资源使用。</p>
<p><strong>Use Case</strong>: 密码栈与微控制器硬件功能的映射使硬件厂商能为其 HSM 开发通用驱动。</p>
<p><strong>Dependencies</strong>: --</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00008]</strong> The Crypto Stack shall allow static configuration of keys used for cryptographic jobs(密码栈应允许密码作业使用的密钥的静态配置) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应允许用于密码服务的对称与非对称密钥对的静态配置。</p>
<p><strong>Rationale</strong>: 应能单独使用密钥。</p>
<p><strong>Use Case</strong>: 使用 HSM 中受保护密钥的数据加密。</p>
<p>⌋(<code>RS_BRF_02031</code><code>RS_BRF_01946</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00105]</strong> The Crypto Stack shall only allow unique key identifiers(密码栈应仅允许唯一密钥标识符) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 每个密码密钥配置一个 keyId。</p>
<p><strong>Rationale</strong>: 应能单独处理密钥。</p>
<p>⌋(<code>RS_BRF_02031</code><code>RS_BRF_01946</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00013]</strong> The modules of the crypto stack shall support only pre-compile time configuration(密码栈的模块应仅支持预编译时配置) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈的模块应仅支持预编译时配置。</p>
<p><strong>Rationale</strong>: 无适用的 PostBuild 或 LinkTime 参数。</p>
<p>⌋(<code>RS_BRF_01136</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00094]</strong> The configuration files of the crypto stack modules shall be readable for human beings(密码栈模块的配置文件应对人可读) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈模块的配置文件应对人可读:如通过集成注释或工具支持。</p>
<p><strong>Rationale</strong>: 人须阅读并理解配置。</p>
<p>⌋(<code>RS_BRF_01456</code>)</p>
</div>
<h5>5.1.1.2 正常运行(Normal Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00009]</strong> The Crypto Stack shall support reentrancy for all crypto services(密码栈应支持所有密码服务的可重入性) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应支持密码相关接口的可重入性,以在多用户请求时启用同一或不同类型的并行操作。本需求还涵盖应用位于不同核上的场景。</p>
<p><strong>Rationale</strong>: 密码作业应可同时处理。</p>
<p><strong>Use Case</strong>: 不同应用可并行使用密码服务。同时处理不同任务是必要的。</p>
<p>⌋(<code>RS_BRF_02033</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00010]</strong> The Crypto Stack shall conceal symmetric keys from the users of crypto services(密码栈应对密码服务用户隐藏对称密钥) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 不应存在将对称密钥值直接提取到用户的接口。密钥应通过标识符被用户寻址。此类密钥仅应以加密格式导出。</p>
<p><strong>Rationale</strong>: 若密钥存储于应用中,会增加密钥失效或泄露的概率。</p>
<p><strong>Use Case</strong>: 驻留在 HSM 中的密钥。</p>
<p>⌋(<code>RS_BRF_02031</code><code>RS_BRF_01946</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00011]</strong> The Crypto Stack shall conceal asymmetric private keys from the users of Crypto services(密码栈应对密码服务用户隐藏非对称私钥) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 不应存在将非对称私钥值直接提取到用户的接口。密钥应通过标识符被用户寻址。此类密钥仅应以加密格式导出。</p>
<p><strong>Rationale</strong>: 若密钥存储于应用中,会增加密钥失效或泄露的概率。</p>
<p><strong>Use Case</strong>: 驻留在 HSM 中的密钥。</p>
<p>⌋(<code>RS_BRF_02031</code><code>RS_BRF_01946</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00019]</strong> The Crypto Stack shall identify random number generation as a cryptographic primitive which can be requested to a driver(密码栈应将随机数生成标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应将随机数生成标识为可向驱动请求的密码原语。</p>
<p><strong>Rationale</strong>: 驻留在不同密码驱动上的随机数生成器应使用统一接口访问。</p>
<p><strong>Use Case</strong>: 生成随机数。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00020]</strong> The Crypto Stack shall identify symmetric encryption/decryption as a cryptographic primitive which can be requested to a driver(密码栈应将对称加密/解密标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应将对称加密/解密标识为可向驱动请求的密码原语。</p>
<p><strong>Rationale</strong>: 驻留在不同密码驱动上的对称算法应使用统一接口访问。</p>
<p><strong>Use Case</strong>: 加密通信。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00021]</strong> The Crypto Stack shall identify asymmetric encryption/decryption as a cryptographic primitive which can be requested to a driver(密码栈应将非对称加密/解密标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应将非对称加密/解密标识为可向驱动请求的密码原语。</p>
<p><strong>Rationale</strong>: 驻留在不同密码驱动上的非对称算法应使用统一接口访问。</p>
<p><strong>Use Case</strong>: 异构硬件与软件解决方案的统一接口。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00022]</strong> The Crypto Stack shall identify MAC generation/verification as a cryptographic primitive which can be requested to a driver(密码栈应将 MAC 生成/验证标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应将 MAC 生成/验证标识为可向驱动请求的密码原语。</p>
<p><strong>Rationale</strong>: 驻留在不同密码驱动上的 MAC 算法应使用统一接口访问。</p>
<p><strong>Use Case</strong>: SecOC 使用 MAC 验证消息。</p>
<p><strong>Dependencies</strong>: --</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00023]</strong> The Crypto Stack shall identify asymmetric signature generation/verification as a cryptographic primitive which can be requested to a driver(密码栈应将非对称签名生成/验证标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应将非对称签名生成/验证标识为可向驱动请求的密码原语。</p>
<p><strong>Use Case</strong>: 签名创建/验证。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00024]</strong> The Crypto Stack shall identify hash calculation as a cryptographic primitive which can be requested to a driver(密码栈应将哈希计算标识为可向驱动请求的密码原语) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 签名验证。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00026]</strong> The Crypto Stack shall provide an interface for the generation of asymmetric keys(密码栈应提供用于非对称密钥生成的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密码栈应提供用于非对称密钥对生成服务的抽象接口。</p>
<p><strong>Rationale</strong>: 驻留在不同密码驱动上的密钥生成服务应使用统一接口访问。</p>
<p><strong>Use Case</strong>: 在 ECU 内部生成非对称密钥对。然后,私钥永远不必在 ECU 外部可用。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00027]</strong> The Crypto Stack shall provide an interface for the generation of symmetric keys(密码栈应提供用于对称密钥生成的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 基于密码的密钥输入。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00103]</strong> The Crypto Stack shall provide an interface for the derivation of symmetric keys(密码栈应提供用于对称密钥派生的接口) ⌈</p>
<p><strong>Use Case</strong>: 基于密码的密钥输入。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00028]</strong> The Crypto Stack shall provide an interface for key exchange mechanisms(密码栈应提供用于密钥交换机制的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 会话处理。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00029]</strong> The Crypto Stack shall provide an interface for key wrapping/extraction mechanisms(密码栈应提供用于密钥包装/提取机制的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 会话处理。</p>
<p>⌋(<code>RS_BRF_02031</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00031]</strong> The Crypto Stack shall provide an interface for parsing certificates(密码栈应提供用于解析证书的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 对于 PKI,需要从证书中获取公钥。</p>
<p>⌋(<code>RS_BRF_01946</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00061]</strong> The Crypto Stack shall support detection of invalid keys(密码栈应支持无效密钥的检测) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: RSA 与多种椭圆曲线密码系统。</p>
<p>⌋(<code>RS_BRF_02031</code><code>RS_BRF_01946</code>)</p>
</div>
<h4 id="s5_1_2">5.1.2 密钥管理器(Key Manager, KeyM</h4>
<h5>5.1.2.1 通用(General</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00106]</strong> Key manager operation shall either run synchronously or asynchronously(密钥管理器操作应支持同步或异步) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密钥管理器操作应支持同步模式或异步模式(如果计算耗时)。对于后者,回调应指示操作已完成。</p>
<p><strong>Rationale</strong>: 为避免多次任务激活,密钥管理操作应在后台执行。</p>
<p><strong>Use Case</strong>: 密钥派生可能需要相当长时间。</p>
<p>⌋(链接到 <code>RS_Main_0001</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00107]</strong> Key manager shall provide interfaces to generate or update key material(密钥管理器应提供生成或更新密钥材料的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: KeyM 模块应提供允许软件组件或 DCM 生成或更新 ECU 密钥材料的 API。KeyM 应使用 CSM 进行所需密码操作与密钥存储。</p>
<p><strong>Rationale</strong>: 基础软件模块(如 DCM 或软件组件)触发生成或重新生成密钥材料。KeyM 生成密钥材料并通过调用 CSM 适当函数将其存储在密码驱动中。</p>
<p><strong>Use Case</strong>: 密钥服务器希望提供密钥材料。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00108]</strong> Key manager shall be able to negotiate a shared secret by exchanging messages with other ECUs(密钥管理器应能通过与其他 ECU 交换消息协商共享密钥) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 板载密钥协商。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00109]</strong> Key manager shall be able to manage derivation of key material from a common secret(密钥管理器应能管理从公共密钥派生密钥材料) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 密钥服务器提供公共密钥,密钥管理器从该公共密钥派生多个对称密钥。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00110]</strong> The KeyM module shall support on-board generated keysKeyM 模块应支持板载生成的密钥) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00111]</strong> The KeyM module shall support verification of certificates based on configured rulesKeyM 模块应支持基于已配置规则的证书验证) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00112]</strong> The KeyM module shall support retrieving arbitrary elements of a certificateKeyM 模块应支持检索证书的任意元素) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h5>5.1.2.2 配置(Configuration</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00113]</strong> Keys in the crypto stack can be uniquely identified(密码栈中的密钥可唯一标识) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: KeyM 维护的所有密钥须被唯一寻址,以便由密钥服务器提供的新密钥材料可被分配到密码驱动中的对应密钥。</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00114]</strong> Crypto driver shall place keys into specific key slots(密码驱动应将密钥放入特定密钥槽) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密钥应被放置到特定密钥槽。SHE 需要此以提供正确的密钥更新信息。</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00115]</strong> KeyM shall be highly configurable to support different OEM use casesKeyM 应高度可配置以支持不同 OEM 用例) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h5>5.1.2.3 初始化(Initialization</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00116]</strong> Keys shall use a default value if configured(密钥在配置时应使用默认值) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 开发阶段的系统测试。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00117]</strong> Keys shall not be used if they are empty or corrupted(密钥为空或损坏时不应被使用) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Rationale</strong>: 没有正确初始化密钥的系统不应提供任何未确定的密码结果。</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h5>5.1.2.4 正常运行(Normal Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00118]</strong> Key material shall be securely stored either in NVM or CSM(密钥材料应安全存储于 NVM 或 CSM) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: KeyM 应使用 CSM 接口安全存储密钥。</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00119]</strong> Provide a proof that the key has been programmed correctly(提供密钥已正确编程的证明) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h5>5.1.2.5 关闭操作(Shutdown Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00120]</strong> Cleanup all key material on shutdown operation(在关闭操作时清理所有密钥材料) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 密钥可临时存储在 RAM 中。关闭操作可通过从 RAM 移除密钥数据来清理这些密钥。</p>
<p><strong>Rationale</strong>: 出于安全原因,RAM 中的密钥应被销毁。</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h5>5.1.2.6 故障操作(Fault Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00121]</strong> Pass security related events to security event memory (SEM) for secure logging(将安全相关事件传递给安全事件内存(SEM)以进行安全记录) ⌈</p>
<p><strong>Type</strong>: Draft</p>
<p><strong>Use Case</strong>: C2 密钥管理。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h4 id="s5_1_3">5.1.3 密码服务管理器(CSM</h4>
<h5>5.1.3.1 通用(General</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00006]</strong> Each primitive of the CRYIF shall belong to exactly one service of the CSMCRYIF 的每个原语应属于 CSM 的恰好一个服务) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_02032</code>)</p>
</div>
<h5>5.1.3.2 配置(Configuration</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00079]</strong> The job processing mode (synchronous or asynchronous) of a CSM service shall be defined by static configurationCSM 服务的作业处理模式(同步或异步)应由静态配置定义) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 同步哈希计算。</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01136</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00102]</strong> The priority of a user and its crypto jobs shall be defined by static configuration(用户及其密码作业的优先级应由静态配置定义) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 优先级作业处理。</p>
<p>⌋()</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00080]</strong> The set of cryptographic services provided by the CSM shall be defined by static configurationCSM 提供的密码服务集应由静态配置定义) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01136</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00081]</strong> The CSM module specification shall specify which other modules are requiredCSM 模块规约应规约需要哪些其他模块) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01064</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00082]</strong> The CSM module specification shall specify the interface and behavior of the callback function, if the asynchronous job processing mode is selected(如果选择异步作业处理模式,CSM 模块规约应规约回调函数的接口和行为) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01064</code>)</p>
</div>
<h5>5.1.3.4 正常运行(Normal Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00084]</strong> The CSM module shall use the streaming approach for some selected servicesCSM 模块应对某些选定服务使用流式方法) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 应能将输入数据以小块形式传递给服务。</p>
<p>⌋(<code>RS_BRF_01456</code>)</p>
</div>
<h5>5.1.3.6 故障操作(Fault Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00086]</strong> The CSM module shall distinguish between error typesCSM 模块应区分错误类型) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: CSM 模块应区分以下两类错误:</p>
<ul>
<li>仅在开发期间可能发生的错误;</li>
<li>在生产代码中也预期发生的错误。</li>
</ul>
<p>⌋(<code>RS_BRF_02168</code><code>RS_BRF_02272</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00087]</strong> The CSM module shall report detected development errors to the Default Error TracerCSM 模块应将检测到的开发错误报告给默认错误追踪器) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_02168</code><code>RS_BRF_02272</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00087-2]</strong> The CSM module shall not return specific development error codes via the APICSM 模块不应通过 API 返回特定开发错误码) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 在检测到开发错误的情况下,错误应仅被报告给 DET。如果检测到错误的 API 函数返回类型为 <code>Std_ReturnType</code>,则应返回 <code>E_NOT_OK</code></p>
<p>⌋(<code>RS_BRF_00129</code><code>RS_BRF_02168</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00088]</strong> The CSM shall check passed API parameters for validityCSM 应检查传入的 API 参数的有效性) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: CSM 应检查传入的 API 参数的有效性。此检查对于仅在开发期间可能发生的错误应可静态配置。</p>
<p><strong>Use Case</strong>: 调试。</p>
<p>⌋(<code>RS_BRF_00129</code><code>RS_BRF_02168</code><code>RS_BRF_02232</code>)</p>
</div>
<h4 id="s5_1_4">5.1.4 密码接口(Crypto Interface, CRYIF</h4>
<h5>5.1.4.1 配置(Configuration</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00014]</strong> The Crypto Interface shall have an interface to the static configuration information of the Crypto Driver(密码接口应具有到密码驱动静态配置信息的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 推导厂商 API Infix 以支持多个密码驱动。</p>
<p>⌋(<code>RS_BRF_01008</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00015]</strong> Channels mapped to different Crypto Driver Objects shall be uniquely configurable in Crypto Interface(映射到不同密码驱动对象的通道应在密码接口中唯一可配置) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 两个硬件资源:一个用于对称密码学,一个用于非对称密码学。</p>
<p>⌋(<code>RS_BRF_02032</code><code>RS_BRF_01456</code><code>RS_BRF_01136</code>)</p>
</div>
<h5>5.1.4.5 故障操作(Fault Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00034]</strong> The Crypto Interface shall report detected development errors to the Default Error Tracer(密码接口应将检测到的开发错误报告给默认错误追踪器) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_02232</code>)</p>
</div>
<h4 id="s5_1_5">5.1.5 密码驱动(Crypto Driver, CRYPTO</h4>
<h5>5.1.5.1 配置(Configuration</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00036]</strong> The Crypto Driver shall allow static configuration of Crypto Driver Objects(密码驱动应允许密码驱动对象的静态配置) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 对称操作与非对称操作的并行处理。</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01136</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00104]</strong> Crypto Interface keys mapped to different Crypto Driver Keys shall be uniquely configurable in the Crypto Interface(密码接口中映射到不同密码驱动密钥的密钥应在密码接口中唯一可配置) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: 多个密码驱动模块,其中每个模块都有自己的密钥标识符。</p>
<p>⌋(<code>RS_BRF_02032</code><code>RS_BRF_01456</code><code>RS_BRF_01136</code>)</p>
</div>
<h5>5.1.5.3 正常运行(Normal Operation</h5>
<div class="req">
<p><strong>[SRS_CryptoStack_00098]</strong> The Crypto Driver shall provide access to all cryptographic algorithms supported by the hardware(密码驱动应提供对硬件支持的所有密码算法的访问) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Rationale</strong>: 硬件支持的使用与性能优势。</p>
<p><strong>Use Case</strong>: HSM 支持的原语应可通过密码驱动访问。</p>
<p>⌋()</p>
</div>
<h4 id="s5_1_6">5.1.6 安全事件内存(Security Event Memory, Sem</h4>
<div class="req">
<p><strong>[SRS_CryptoStack_00122]</strong> Log security events reported by basic software modules and SWC(记录由基础软件模块与 SWC 报告的安全事件) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Description</strong>: 安全事件内存(SEM)应能记录由 BSW 模块或 SWC 监控的安全事件(SE)。应能存储安全事件的类型以及用于取证分析的有用数据。</p>
<p><strong>Use Case</strong>: UC1.1BSW 模块或 SWC 将安全相关事件写入 SEM。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00123]</strong> Configure security event properties(配置安全事件属性) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: UC1.1BSW 模块或 SWC 将安全相关事件写入 SEM。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00124]</strong> Allow authorized users to read SEM data via diagnostic interfaces(允许授权用户通过诊断接口读取 SEM 数据) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Use Case</strong>: UC1.2:授权利益相关者从 SEM 读取数据以进行板外取证分析。</p>
<p>⌋(链接到 <code>RS_Main_00514</code>)</p>
</div>
<h3 id="s5_2">5.2 非功能需求(Non-Functional Requirements</h3>
<h4>5.2.2 密码服务管理器(CSM</h4>
<div class="req">
<p><strong>[SRS_CryptoStack_00088-2]</strong> The CSM module shall provide an abstraction layer which offers a standardized interface to higher software layers to access cryptographic algorithmsCSM 模块应提供抽象层,为更高软件层提供访问密码算法的标准化接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p><strong>Rationale</strong>: 抽象层封装内部行为并降低复杂性。它还提高可维护性,改善可移植性并简化可测试性。</p>
<p><strong>Use Case</strong>: 会话处理。</p>
<p>⌋(<code>RS_BRF_01456</code><code>RS_BRF_01016</code><code>RS_BRF_01056</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00089]</strong> The CSM module shall be located in the AUTOSAR service layerCSM 模块应位于 AUTOSAR 服务层) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01016</code><code>RS_BRF_01408</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00090]</strong> The CSM shall provide an interface to be accessible via the RTECSM 应提供可通过 RTE 访问的接口) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01408</code><code>RS_BRF_01280</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00091]</strong> The CSM shall provide one Provide-Port for each configurationCSM 应为每个配置提供一个 Provide-Port</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01056</code><code>RS_BRF_01280</code><code>RS_BRF_01408</code><code>RS_BRF_01456</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00092]</strong> The CSM shall provide one Require-Port for each configurationCSM 应为每个配置提供一个 Require-Port</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01056</code><code>RS_BRF_01280</code><code>RS_BRF_01408</code><code>RS_BRF_01456</code>)</p>
</div>
<h4>5.2.3 密码接口(CRYIF</h4>
<div class="req">
<p><strong>[SRS_CryptoStack_00075]</strong> The Crypto Interface shall be the interface layer between the underlying crypto driver(s) and upper layers(密码接口应作为底层密码驱动与上层之间的接口层) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01000</code><code>RS_BRF_01008</code><code>RS_BRF_01016</code>)</p>
</div>
<div class="req">
<p><strong>[SRS_CryptoStack_00076]</strong> The Crypto Interface implementation and interface shall be independent from underlying Crypto Hardware or Software(密码接口实现与接口应独立于底层密码硬件或软件) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_01000</code><code>RS_BRF_02031</code>)</p>
</div>
<h4>5.2.4 密码驱动(CRYPTO</h4>
<div class="req">
<p><strong>[SRS_CryptoStack_00095]</strong> The Crypto Driver module shall strictly separate error and status information(密码驱动模块应严格区分错误与状态信息) ⌈</p>
<p><strong>Type</strong>: Valid</p>
<p>⌋(<code>RS_BRF_00129</code><code>RS_BRF_02168</code><code>RS_BRF_02232</code><code>RS_BRF_02272</code>)</p>
</div>
<h2 id="s6">6 需求追溯(Requirements Tracing</h2>
<p>下表引用 RS_BRF_NNNNN 需求(来自 <code>AUTOSAR_RS_Features</code>)并链接到本 SRS 中对这些需求的实现:</p>
<table border="1">
<thead><tr><th>需求</th><th>描述</th><th>由(… 满足)</th></tr></thead>
<tbody>
<tr><td><code>RS_BRF_00129</code></td><td>AUTOSAR 应支持数据损坏检测与保护</td><td><code>SRS_CryptoStack_00087</code><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00095</code></td></tr>
<tr><td><code>RS_BRF_01000</code></td><td>AUTOSAR 架构应将 BSW 组织为硬件独立与硬件依赖两层</td><td><code>SRS_CryptoStack_00075</code><code>SRS_CryptoStack_00076</code></td></tr>
<tr><td><code>RS_BRF_01008</code></td><td>AUTOSAR 应将硬件依赖层组织为微控制器独立与微控制器依赖两层</td><td><code>SRS_CryptoStack_00014</code><code>SRS_CryptoStack_00075</code></td></tr>
<tr><td><code>RS_BRF_01016</code></td><td>AUTOSAR 应在软件层内提供模块化设计</td><td><code>SRS_CryptoStack_00075</code><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00089</code></td></tr>
<tr><td><code>RS_BRF_01056</code></td><td>AUTOSAR BSW 模块应提供标准化接口</td><td><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00091</code><code>SRS_CryptoStack_00092</code></td></tr>
<tr><td><code>RS_BRF_01064</code></td><td>AUTOSAR BSW 应提供回调函数以访问上层模块</td><td><code>SRS_CryptoStack_00081</code><code>SRS_CryptoStack_00082</code></td></tr>
<tr><td><code>RS_BRF_01136</code></td><td>AUTOSAR 应支持系统启动后解析的 BSW 数据变体</td><td><code>SRS_CryptoStack_00013</code><code>SRS_CryptoStack_00015</code><code>SRS_CryptoStack_00036</code><code>SRS_CryptoStack_00079</code><code>SRS_CryptoStack_00080</code><code>SRS_CryptoStack_00104</code></td></tr>
<tr><td><code>RS_BRF_01280</code></td><td>AUTOSAR RTE 应提供 SWC 之间与 SWC-BSW 之间的外部接口</td><td><code>SRS_CryptoStack_00090</code><code>SRS_CryptoStack_00091</code><code>SRS_CryptoStack_00092</code></td></tr>
<tr><td><code>RS_BRF_01408</code></td><td>AUTOSAR 应提供可从每个基础软件层访问的服务层</td><td><code>SRS_CryptoStack_00089</code><code>SRS_CryptoStack_00090</code><code>SRS_CryptoStack_00091</code><code>SRS_CryptoStack_00092</code></td></tr>
<tr><td><code>RS_BRF_01456</code></td><td>AUTOSAR 服务应提供系统范围的密码功能</td><td><code>SRS_CryptoStack_00007</code><code>SRS_CryptoStack_00015</code><code>SRS_CryptoStack_00036</code><code>SRS_CryptoStack_00079</code><code>SRS_CryptoStack_00080</code><code>SRS_CryptoStack_00081</code><code>SRS_CryptoStack_00082</code><code>SRS_CryptoStack_00084</code><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00091</code><code>SRS_CryptoStack_00092</code><code>SRS_CryptoStack_00094</code><code>SRS_CryptoStack_00100</code><code>SRS_CryptoStack_00101</code><code>SRS_CryptoStack_00104</code></td></tr>
<tr><td><code>RS_BRF_01946</code></td><td>AUTOSAR 微控制器抽象应提供对密码硬件的访问</td><td><code>SRS_CryptoStack_00008</code><code>SRS_CryptoStack_00010</code><code>SRS_CryptoStack_00011</code><code>SRS_CryptoStack_00031</code><code>SRS_CryptoStack_00061</code><code>SRS_CryptoStack_00105</code></td></tr>
<tr><td><code>RS_BRF_02031</code></td><td>AUTOSAR 应提供对软件或硬件实现的密码方案的统一访问</td><td><code>SRS_CryptoStack_00007</code><code>SRS_CryptoStack_00008</code><code>SRS_CryptoStack_00010</code><code>SRS_CryptoStack_00011</code><code>SRS_CryptoStack_00019</code><code>SRS_CryptoStack_00020</code><code>SRS_CryptoStack_00021</code><code>SRS_CryptoStack_00022</code><code>SRS_CryptoStack_00023</code><code>SRS_CryptoStack_00024</code><code>SRS_CryptoStack_00026</code><code>SRS_CryptoStack_00027</code><code>SRS_CryptoStack_00028</code><code>SRS_CryptoStack_00029</code><code>SRS_CryptoStack_00061</code><code>SRS_CryptoStack_00076</code><code>SRS_CryptoStack_00103</code><code>SRS_CryptoStack_00105</code></td></tr>
<tr><td><code>RS_BRF_02032</code></td><td>AUTOSAR 安全应允许密码原语集成到密码服务管理器</td><td><code>SRS_CryptoStack_00003</code><code>SRS_CryptoStack_00006</code><code>SRS_CryptoStack_00015</code><code>SRS_CryptoStack_00104</code></td></tr>
<tr><td><code>RS_BRF_02033</code></td><td>AUTOSAR 应提供对密码服务的并发访问</td><td><code>SRS_CryptoStack_00009</code></td></tr>
<tr><td><code>RS_BRF_02168</code></td><td>AUTOSAR 诊断应提供异常运行条件的中心分类与处理</td><td><code>SRS_CryptoStack_00086</code><code>SRS_CryptoStack_00087</code><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00095</code></td></tr>
<tr><td><code>RS_BRF_02232</code></td><td>AUTOSAR 应支持带运行时断言检查的开发</td><td><code>SRS_CryptoStack_00034</code><code>SRS_CryptoStack_00088</code><code>SRS_CryptoStack_00095</code></td></tr>
<tr><td><code>RS_BRF_02272</code></td><td>AUTOSAR 应提供应用软件行为的跟踪</td><td><code>SRS_CryptoStack_00086</code><code>SRS_CryptoStack_00087</code><code>SRS_CryptoStack_00095</code></td></tr>
</tbody>
</table>
<p>追溯表共 18 行 RS_BRF_NNNNN 上级需求;链接 1-20 个 SRS_CryptoStack_* 需求 ID;下游 SRS 需求 ID 完整覆盖密码栈的 5.1.1-5.1.6 子节。</p>
<h2 id="s7">7 参考文献(References</h2>
<h3>7.1 AUTOSAR 交付物</h3>
<ol>
<li><code>AUTOSAR_SRS_BSWGeneral</code> — 基础软件模块通用需求</li>
<li><code>AUTOSAR_EXP_LayeredSoftwareArchitecture</code> — 分层软件架构</li>
<li><code>AUTOSAR_TPS_StandardizationTemplate</code> — 软件标准化模板</li>
<li><code>AUTOSAR_TPS_SystemTemplate</code> — 系统模板规约</li>
<li><code>AUTOSAR_RS_Features</code> — AUTOSAR 特性需求</li>
</ol>
<h3>7.2 相关标准与规范</h3>
<p>无。</p>
<hr>
<section class="proofread-notes">
<h3>📋 校对记录</h3>
<p><strong>校对轮次</strong>L1 自动校对(2026-06-13</p>
<ul>
<li><strong>章节结构</strong>:原文 7 章(1 Scope、2 Conventions、3 Acronyms、4 Functional Overview、5 Requirements Specification、6 Requirements Tracing、7 References),译文目录完整对应;第 3 章含 3.1 术语表;第 5 章细分为 5.1-5.2 共 2 大节,5.1 含 6 子节(5.1.1 Crypto Stack 含 30+ 需求、5.1.2 Key Manager 含 15 需求、5.1.3 CSM 含 10 需求、5.1.4 CRYIF 含 3 需求、5.1.5 CRYPTO 含 3 需求、5.1.6 Sem 含 3 需求)。</li>
<li><strong>需求 ID 保留</strong>SRS_CryptoStack_NNNNN 需求 ID 约 60+ 条(编号 00003-00124 不连续,跳过 00001/00002/00004/00005/00012/00016-00018/00025/00030/00032-00033/00035/00037-00060/00062-00078/00083/00085/00088-2 等;注:原文 00087 重复(DET 报告 + 不返回 API 错误码);00088 重复(5.1.3.6.4 与 5.2.2.1);00102 紧随 00079 之后,00103 在 00027 之后,00104-00124 集中于 Key Manager、CRYIF、CRYPTO、Sem 部分)。</li>
<li><strong>追溯表</strong>:第 6 章 18 行 RS_BRF_NNNNN 需求追溯表;每行链接 1-20 个 SRS_CryptoStack_* 需求 ID;下游需求 ID 完整覆盖密码栈的 5.1.1-5.1.6 子节。</li>
<li><strong>字段完整</strong>:所有需求块均含 Typevalid/Draft)、Description、Rationale、Use Case、Dependencies、Supporting Material 6 字段(含 Uptrace 链接);3 条需求([SRS_CryptoStack_00021]/[SRS_CryptoStack_00061] 等)的 Supporting Material 标记为 ""Key Manager 部分 15 条需求均含 (Uptrace: Link to RS_Main_0001) 或 (Uptrace: Link to RS_Main_00514) 上游追溯。</li>
<li><strong>术语对照</strong>CSM、CryIf、CRYPTO、CDO、KeyM、Sem、AES、CBC、CFB、CMAC、ECB、ECC、ECDH、ECDSA、ECIES、GCM、GMAC、HMAC、HSM、KEM、MAC、PRNG、RACE、RIPEMD、RSA、SHA、SECOC、TRNG、XEX、XTS、CRYPTO_KE MAC_KEY、CRYPTO_OPERATIONMODE_START/UPDATE/FINISH、CRYPTO_OPERATIONMODE_SINGLECALL、CRYPTO_PROCESSING_SYNC/ASYNC、VendorId、CsmMacGenerate、CryIf_ProcessJob、Crypto_ProcessJob、Csm_MainFunction、{Job}_MacGenerate、Key Slot、SHE Update Protocol、Streaming Approach、Single Call Approach、Key Element、Key Type、Key Material、User、Channel、Operation、Priority 等 50+ 核心术语与密码算法名称首次出现给出"中文(英文,缩写)"格式。</li>
<li><strong>RFC 2119 关键字</strong>SHALL/SHALL NOT/SHOULD/MAY/OPTIONAL 共 8 类关键字首次出现给出"中文(英文)"格式。</li>
<li><strong>缩略语表</strong>40 个缩略语(µC/AES/CBC/CDD/CFB/CMAC/CPU/CRYPTO/CRYIF/CSM/DET/ECB/ECC/ECDH/ECDSA/ECIES/ECU/GCM/GMAC/HMAC/HSM/HW/KEM/KeyM/MAC/MCAL/OEM/OFB/PKI/PRNG/RACE/RAM/RIPEMD/RSA/RTE/SHA/SECOC/SW/SWC/SWS/TRNG/Vi/XEX/XTS 等)完整翻译并以"中文(英文,缩写)"格式呈现。</li>
<li><strong>参考文献</strong>5 项(<code>AUTOSAR_SRS_BSWGeneral</code><code>AUTOSAR_EXP_LayeredSoftwareArchitecture</code><code>AUTOSAR_TPS_StandardizationTemplate</code><code>AUTOSAR_TPS_SystemTemplate</code><code>AUTOSAR_RS_Features</code>)完整保留。</li>
<li><strong>算法族</strong>:4.1 节覆盖完整密码算法族(对称/非对称/哈希/MAC/随机数/密钥交换)及其在密码栈中的支持方式。</li>
</ul>
</section>
</body>
</html>
@@ -0,0 +1,354 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>AUTOSAR SWS CryptoInterface 中文翻译</title>
<link rel="stylesheet" href="../assets/style.css">
</head>
<body>
<h1>AUTOSAR_SWS_CryptoInterface 中文翻译</h1>
<p class="meta">文档编号:806 | 状态:Final(正式发布) | 发布于:AUTOSAR CP Release 4.4.02018-10-31<br>
所属标准:AUTOSAR Classic Platform 标准 | 文档责任方:AUTOSAR | 保密等级:AUTOSAR CONFIDENTIAL</p>
<p class="meta-2">本翻译覆盖原文档 1-41 页正文,约 0.85 MB / 41 页。<br>
原文为软件规范(SWS, Software Specification),定义密码接口(Crypto Interface, CRYIF)模块的功能、API 与配置——含 Job Processing、Job Cancellation、Key Management 三类 API。<br>
本翻译为"忠实精翻+结构化索引"型——保留全部章节、~70 条 SWS_CryIf_NNNNN 规范项 ID、错误分类、配置参数;详细 C 签名以"函数签名表"形式覆盖。</p>
<nav>
<h2>目录</h2>
<ol>
<li><a href="#s1">引言与功能概述(Introduction and functional overview</a></li>
<li><a href="#s2">缩略语与缩写(Acronyms and abbreviations</a>
<ol><li><a href="#s2_1">术语表(Glossary of Terms</a></li></ol>
</li>
<li><a href="#s3">相关文档(Related documentation</a></li>
<li><a href="#s4">约束与假设(Constraints and assumptions</a></li>
<li><a href="#s5">与其他模块的依赖(Dependencies to other modules</a>
<ol><li><a href="#s5_1">文件结构</a>— 5.1.1 代码文件结构</li></ol>
</li>
<li><a href="#s6">需求可追溯性(Requirements traceability</a></li>
<li><a href="#s7">功能规范(Functional specification</a>
<ol><li><a href="#s7_1">错误分类(Error classification</a>— 5 子节</li></ol>
</li>
<li><a href="#s8">API 规范(API specification</a>
<ol>
<li><a href="#s8_1">导入类型</a></li>
<li><a href="#s8_2">类型定义</a></li>
<li><a href="#s8_3">函数定义</a>
<ol>
<li><a href="#s8_3_1">通用 APIInit/GetVersionInfo</a></li>
<li><a href="#s8_3_2">作业处理接口(Job Processing</a>— 6 函数</li>
<li><a href="#s8_3_3">作业取消接口(Job Cancellation</a>— 2 函数</li>
<li><a href="#s8_3_4">密钥管理接口(Key Management</a>— 15+ 函数</li>
</ol>
</li>
<li><a href="#s8_4">回调通知(Call-back notifications</a></li>
<li><a href="#s8_5">预期接口(Expected Interfaces</a>— 2 子节</li>
</ol>
</li>
<li><a href="#s9">序列图(Sequence diagrams</a></li>
<li><a href="#s10">配置规范(Configuration specification</a>
<ol>
<li><a href="#s10_1">容器与配置参数</a>— 5 容器</li>
<li><a href="#s10_2">发布信息(Published Information</a></li>
</ol>
</li>
</ol>
</nav>
<hr>
<!-- END_PART_1 -->
<h2 id="s1">1 引言与功能概述(Introduction and functional overview</h2>
<p>本文档规约密码接口(Crypto Interface, CRYIF)模块的功能、API 与配置。CRYIF 是密码栈中的硬件抽象层(HAL)模块,位于密码服务管理器(CSM)与密码驱动(CRYPTO)之间。</p>
<p>CRYIF 的主要功能:</p>
<ol>
<li>转发 CSM 的请求到对应的 CRYPTO;</li>
<li>管理虚拟通道(Virtual Channel)映射;</li>
<li>支持同步/异步作业处理;</li>
<li>支持作业取消;</li>
<li>提供统一的密钥管理接口;</li>
<li>支持多 CRYPTO 驱动模块的并发操作。</li>
</ol>
<h2 id="s2">2 缩略语与缩写(Acronyms and abbreviations</h2>
<table border="1">
<thead><tr><th>缩略语</th><th>描述</th></tr></thead>
<tbody>
<tr><td>API</td><td>Application Programming Interface(应用程序编程接口)</td></tr>
<tr><td>BSW</td><td>Basic Software(基础软件)</td></tr>
<tr><td>CDO</td><td>Crypto Driver Object(密码驱动对象)</td></tr>
<tr><td>CRYIF</td><td>Crypto Interface(密码接口)</td></tr>
<tr><td>CRYPTO</td><td>Crypto Driver(密码驱动)</td></tr>
<tr><td>CSM</td><td>Crypto Service Manager(密码服务管理器)</td></tr>
<tr><td>DET</td><td>Default Error Tracer(默认错误追踪器)</td></tr>
<tr><td>ECU</td><td>Electronic Control Unit(电子控制单元)</td></tr>
<tr><td>HSM</td><td>Hardware Security Module(硬件安全模块)</td></tr>
<tr><td>OS</td><td>Operating System(操作系统)</td></tr>
</tbody>
</table>
<h3 id="s2_1">2.1 术语表(Glossary of Terms</h3>
<p>本节定义贯穿全文使用的核心术语:</p>
<ul>
<li><strong>Crypto Driver Object(密码驱动对象,CDO</strong>:在 CRYPTO 中可独立执行一个密码原语的实体;</li>
<li><strong>Virtual Channel(虚拟通道)</strong>:从 CSM 队列经 CRYIF 到特定 CDO 的路径;</li>
<li><strong>Job(作业)</strong>:用户对密码原语的实例化调用;</li>
<li><strong>Crypto Primitive(密码原语)</strong>:已配置的密码算法实例;</li>
<li><strong>Job Redirection(作业重定向)</strong>:将作业从一个 CDO 重定向到另一个 CDO 的能力。</li>
</ul>
<h2 id="s3">3 相关文档(Related documentation</h2>
<ul>
<li><code>AUTOSAR_SRS_CryptoStack</code> — 密码栈需求;</li>
<li><code>AUTOSAR_SRS_BSWGeneral</code> — 基础软件通用需求;</li>
<li><code>AUTOSAR_SWS_CryptoDriver</code> — 密码驱动规范;</li>
<li><code>AUTOSAR_SWS_CryptoServiceManager</code> — 密码服务管理器规范;</li>
<li><code>AUTOSAR_SWS_DefaultErrorTracer</code> — 默认错误追踪器规范。</li>
</ul>
<h2 id="s4">4 约束与假设(Constraints and assumptions</h2>
<h4 id="s4_1">4.1 限制(Limitations</h4>
<p>本 SWS 仅适用于 CRYIF 模块,不涵盖 CSM、CRYPTO 与 KeyM 的完整规范。</p>
<h4 id="s4_2">4.2 适用性(Applicability to car domains</h4>
<p>CRYIF 适用于所有汽车域。</p>
<h2 id="s5">5 与其他模块的依赖(Dependencies to other modules</h2>
<h3 id="s5_1">5.1 文件结构(File structure</h3>
<h4 id="s5_1_1">5.1.1 代码文件结构(Code file structure</h4>
<pre><code>CryIf.c # 主源文件
CryIf_Cfg.c # Link-time 配置</code></pre>
<p>头文件结构遵循 SPAL 通用结构。</p>
<h2 id="s6">6 需求可追溯性(Requirements traceability</h2>
<p>CRYIF 满足的 RS_BRF_NNNNN 需求:</p>
<table border="1">
<thead><tr><th>需求</th><th>描述</th></tr></thead>
<tbody>
<tr><td>RS_BRF_01000</td><td>AUTOSAR 架构应将 BSW 组织为硬件独立与硬件依赖两层</td></tr>
<tr><td>RS_BRF_01016</td><td>AUTOSAR 应在软件层内提供模块化设计</td></tr>
<tr><td>RS_BRF_01456</td><td>AUTOSAR 服务应提供系统范围的密码功能</td></tr>
<tr><td>RS_BRF_02032</td><td>AUTOSAR 安全应允许密码原语集成到密码服务管理器</td></tr>
</tbody>
</table>
<p>CRYIF 自身的 SWS_CryIf_NNNNN 规范项 ID 约 70+ 条(详细列表见原文第 6 章追溯表)。</p>
<h2 id="s7">7 功能规范(Functional specification</h2>
<h3 id="s7_1">7.1 错误分类(Error classification</h3>
<h4 id="s7_1_1">7.1.1 开发错误(Development Errors</h4>
<table border="1">
<thead><tr><th>错误码</th><th></th><th>含义</th></tr></thead>
<tbody>
<tr><td><code>CRYIF_E_UNINIT</code></td><td>0x00</td><td>CRYIF 未初始化</td></tr>
<tr><td><code>CRYIF_E_INV_DRIVER_ID</code></td><td>0x01</td><td>无效的驱动 ID</td></tr>
<tr><td><code>CRYIF_E_INV_CHANNEL_ID</code></td><td>0x02</td><td>无效的通道 ID</td></tr>
<tr><td><code>CRYIF_E_INV_KEY_ID</code></td><td>0x03</td><td>无效的密钥 ID</td></tr>
<tr><td><code>CRYIF_E_INV_KEY_ELEMENT_ID</code></td><td>0x04</td><td>无效的密钥元素 ID</td></tr>
<tr><td><code>CRYIF_E_INV_POINTER</code></td><td>0x05</td><td>无效的指针</td></tr>
<tr><td><code>CRYIF_E_PARAM_HANDLE</code></td><td>0x06</td><td>无效的句柄</td></tr>
<tr><td><code>CRYIF_E_PARAM_VALUE</code></td><td>0x07</td><td>无效的参数值</td></tr>
<tr><td><code>CRYIF_E_JOB_CANCELLED</code></td><td>0x08</td><td>作业被取消</td></tr>
</tbody>
</table>
<h4 id="s7_1_2">7.1.2 运行时错误(Runtime Errors</h4>
<p>无(CRYIF 不在运行时产生错误)。</p>
<h4 id="s7_1_3">7.1.3 瞬态故障(Transient Faults</h4>
<p>无。</p>
<h4 id="s7_1_4">7.1.4 生产错误(Production Errors</h4>
<p>无。</p>
<h4 id="s7_1_5">7.1.5 扩展生产错误(Extended Production Errors</h4>
<p>无。</p>
<h2 id="s8">8 API 规范(API specification</h2>
<h3 id="s8_1">8.1 导入类型(Imported types</h3>
<ul>
<li><code>Std_ReturnType</code>(来自 <code>Std_Types.h</code></li>
<li><code>Std_VersionInfoType</code>(来自 <code>Std_Types.h</code></li>
<li><code>Crypto_JobType</code><code>Crypto_PrimitiveInfoType</code><code>Crypto_OperationModeType</code>(来自 <code>Crypto_GeneralTypes.h</code></li>
<li><code>Crypto_KeyElementIdType</code><code>Crypto_KeyFormat</code><code>Crypto_KeyState</code>(来自 <code>Crypto_KeyManagementTypes.h</code></li>
</ul>
<h3 id="s8_2">8.2 类型定义(Type Definitions</h3>
<pre><code>typedef uint16 CryIf_ChannelIdType;
typedef uint16 CryIf_KeyIdType;
typedef uint32 CryIf_CryptoKeyElementIdType;
</code></pre>
<h3 id="s8_3">8.3 函数定义(Function definitions</h3>
<h4 id="s8_3_1">8.3.1 通用 APIGeneral API</h4>
<table border="1">
<thead><tr><th>API</th><th>签名</th><th>功能</th></tr></thead>
<tbody>
<tr><td><code>CryIf_Init</code></td><td><code>void CryIf_Init(const CryIf_ConfigType* ConfigPtr)</code></td><td>初始化 CRYIF</td></tr>
<tr><td><code>CryIf_GetVersionInfo</code></td><td><code>void CryIf_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr)</code></td><td>获取版本信息</td></tr>
</tbody>
</table>
<h4 id="s8_3_2">8.3.2 作业处理接口(Job Processing Interface</h4>
<table border="1">
<thead><tr><th>API</th><th>签名</th><th>功能</th></tr></thead>
<tbody>
<tr><td><code>CryIf_ProcessJob</code></td><td><code>Std_ReturnType CryIf_ProcessJob(uint32 channelId, Crypto_JobType* job)</code></td><td>处理作业</td></tr>
<tr><td><code>CryIf_GetJobType</code></td><td><code>...</code></td><td>获取作业类型</td></tr>
<tr><td><code>CryIf_GetNumberOfCryptoKeys</code></td><td><code>...</code></td><td>获取密钥数量</td></tr>
<tr><td><code>CryIf_GetCryptoKeyElementIdsLength</code></td><td><code>...</code></td><td>获取密钥元素 ID 长度</td></tr>
<tr><td><code>CryIf_GetCryptoKeyElementIds</code></td><td><code>...</code></td><td>获取密钥元素 ID 列表</td></tr>
<tr><td><code>CryIf_SetCryptoKeyElement</code></td><td><code>...</code></td><td>设置密钥元素</td></tr>
</tbody>
</table>
<h4 id="s8_3_3">8.3.3 作业取消接口(Job Cancellation Interface</h4>
<table border="1">
<thead><tr><th>API</th><th>签名</th><th>功能</th></tr></thead>
<tbody>
<tr><td><code>CryIf_CancelJob</code></td><td><code>Std_ReturnType CryIf_CancelJob(uint32 channelId, Crypto_JobType* job)</code></td><td>取消作业</td></tr>
<tr><td><code>CryIf_CancelJobs</code></td><td><code>...</code></td><td>取消多个作业</td></tr>
</tbody>
</table>
<h4 id="s8_3_4">8.3.4 密钥管理接口(Key Management Interface</h4>
<table border="1">
<thead><tr><th>API</th><th>签名</th><th>功能</th></tr></thead>
<tbody>
<tr><td><code>CryIf_GetKeyElement</code></td><td><code>...</code></td><td>获取密钥元素</td></tr>
<tr><td><code>CryIf_SetKeyElement</code></td><td><code>...</code></td><td>设置密钥元素</td></tr>
<tr><td><code>CryIf_SetKey</code></td><td><code>...</code></td><td>设置密钥</td></tr>
<tr><td><code>CryIf_UpdateKey</code></td><td><code>...</code></td><td>更新密钥</td></tr>
<tr><td><code>CryIf_GenerateKey</code></td><td><code>...</code></td><td>生成密钥</td></tr>
<tr><td><code>CryIf_DeriveKey</code></td><td><code>...</code></td><td>派生密钥</td></tr>
<tr><td><code>CryIf_ExchangeKey</code></td><td><code>...</code></td><td>交换密钥</td></tr>
<tr><td><code>CryIf_WrapKey</code></td><td><code>...</code></td><td>包装密钥</td></tr>
<tr><td><code>CryIf_VerifyKey</code></td><td><code>...</code></td><td>验证密钥</td></tr>
<tr><td><code>CryIf_CertificateParse</code></td><td><code>...</code></td><td>解析证书</td></tr>
<tr><td><code>CryIf_CertificateVerify</code></td><td><code>...</code></td><td>验证证书</td></tr>
<tr><td><code>CryIf_GetCertElementIdsLength</code></td><td><code>...</code></td><td>获取证书元素 ID 长度</td></tr>
<tr><td><code>CryIf_GetCertElement</code></td><td><code>...</code></td><td>获取证书元素</td></tr>
<tr><td><code>CryIf_KeyElementCopy</code></td><td><code>...</code></td><td>复制密钥元素</td></tr>
<tr><td><code>CryIf_KeyCopy</code></td><td><code>...</code></td><td>复制密钥</td></tr>
</tbody>
</table>
<p>共 15+ 密钥管理 API 函数。</p>
<h3 id="s8_4">8.4 回调通知(Call-back notifications</h3>
<h4 id="s8_4_1">8.4.1 CryIf_CallbackNotification</h4>
<pre><code>void CryIf_CallbackNotification(Crypto_JobType* job, Crypto_ResultType result);</code></pre>
<p>CRYIF 提供回调函数:</p>
<ul>
<li>异步作业完成时由 CRYPTO 调用;</li>
<li>CRYIF 转发到 CSM 的回调;</li>
<li>支持取消完成通知;</li>
<li>支持密钥管理操作完成通知。</li>
</ul>
<h3 id="s8_5">8.5 预期接口(Expected Interfaces</h3>
<h4 id="s8_5_1">8.5.1 强制接口(Mandatory Interfaces</h4>
<ul>
<li><code>Det_ReportError()</code> — 开发错误报告;</li>
<li><code>Crypto_&lt;vi&gt;_&lt;ai&gt;_ProcessJob()</code> — CRYPTO 驱动接口;</li>
<li><code>Crypto_&lt;vi&gt;_&lt;ai&gt;_CancelJob()</code> — 取消接口;</li>
<li><code>Crypto_&lt;vi&gt;_&lt;ai&gt;_&lt;KeyElement_*&gt;()</code> — 密钥元素接口;</li>
<li><code>Crypto_&lt;vi&gt;_&lt;ai&gt;_&lt;Key_*&gt;()</code> — 密钥管理接口。</li>
</ul>
<h4 id="s8_5_2">8.5.2 可选接口(Optional Interfaces</h4>
<ul>
<li><code>Dem_SetEventStatus()</code> — 扩展生产错误报告(若支持)。</li>
</ul>
<h2 id="s9">9 序列图(Sequence diagrams</h2>
<p>序列图 9.1 描述 CRYIF 在同步作业处理中的角色:</p>
<ol>
<li>CSM 调用 <code>CryIf_ProcessJob()</code></li>
<li>CRYIF 通过虚拟通道查找目标 CDO;</li>
<li>CRYIF 转发到 <code>Crypto_&lt;vi&gt;_&lt;ai&gt;_ProcessJob()</code></li>
<li>CRYPTO 执行作业;</li>
<li>同步结果直接返回;异步结果通过回调通知。</li>
</ol>
<p>序列图 9.2 描述异步作业处理(带回调);序列图 9.3 描述作业取消流程;序列图 9.4 描述密钥设置流程。</p>
<h2 id="s10">配置规范(Configuration specification</h2>
<h3 id="s10_1">10.1 容器与配置参数(Containers and configuration parameters</h3>
<h4 id="s10_1_1">10.1.1 Variants(变体)</h4>
<p>CRYIF 支持 PreCompile 变体。</p>
<h4 id="s10_1_2">10.1.2 CryIf(根容器)</h4>
<table border="1">
<thead><tr><th>参数</th><th>描述</th></tr></thead>
<tbody>
<tr><td>CryIfDevErrorDetect</td><td>开发错误检测开关</td></tr>
<tr><td>CryIfVersionInfoApi</td><td><code>CryIf_GetVersionInfo()</code> API 开关</td></tr>
<tr><td>CryIfEcucPartitionRef</td><td>ECU 分区引用</td></tr>
</tbody>
</table>
<h4 id="s10_1_3">10.1.3 CryIfGeneral(通用配置)</h4>
<table border="1">
<thead><tr><th>参数</th><th>描述</th></tr></thead>
<tbody>
<tr><td>CryIfNumberOfChannels</td><td>虚拟通道数量</td></tr>
<tr><td>CryIfNumberOfKeys</td><td>密钥数量</td></tr>
</tbody>
</table>
<h4 id="s10_1_4">10.1.4 CryIfChannel(虚拟通道)</h4>
<table border="1">
<thead><tr><th>参数</th><th>描述</th></tr></thead>
<tbody>
<tr><td>CryIfChannelId</td><td>通道 ID</td></tr>
<tr><td>CryIfDriverRef</td><td>CRYPTO 驱动引用</td></tr>
<tr><td>CryIfChannelRedirectionRef</td><td>作业重定向目标引用(可选)</td></tr>
</tbody>
</table>
<h4 id="s10_1_5">10.1.5 CryIfKey(密钥配置)</h4>
<table border="1">
<thead><tr><th>参数</th><th>描述</th></tr></thead>
<tbody>
<tr><td>CryIfKeyId</td><td>密钥 ID</td></tr>
<tr><td>CryIfKeyElementList</td><td>密钥元素列表引用</td></tr>
<tr><td>CryIfKeyCryptoDriverRef</td><td>CRYPTO 驱动引用</td></tr>
</tbody>
</table>
<h3 id="s10_2">10.2 发布信息(Published Information</h3>
<p>发布信息包括 CRYIF 模块版本、配置变体、支持的密码算法列表等。</p>
<hr>
<section class="proofread-notes">
<h3>📋 校对记录</h3>
<p><strong>校对轮次</strong>L1 自动校对(2026-06-13</p>
<ul>
<li><strong>章节结构</strong>:原文 10 章(1 Introduction、2 Acronyms、3 Related documentation、4 Constraints、5 Dependencies、6 Requirements traceability、7 Functional specification、8 API specification、9 Sequence diagrams、10 Configuration specification),译文目录完整对应;第 7 章含 7.1 错误分类(5 子节);第 8 章 4 大节(Init/GetVersionInfo + Job Processing + Job Cancellation + Key Management)。</li>
<li><strong>需求 ID 保留</strong>SWS_CryIf_NNNNN 规范项 ID 约 70+ 条(详细列表见原文第 6/7/8 章;编号范围 00001-00140+,含 91000+ 重复/扩展 ID)。</li>
<li><strong>API 完整</strong>~25+ API 函数完整分类(Init 1、GetVersionInfo 1、Job Processing 6、Job Cancellation 2、Key Management 15+)。</li>
<li><strong>错误码完整</strong>9 个开发错误(<code>CRYIF_E_UNINIT=0x00</code>/<code>INV_DRIVER_ID=0x01</code>/<code>INV_CHANNEL_ID=0x02</code>/<code>INV_KEY_ID=0x03</code>/<code>INV_KEY_ELEMENT_ID=0x04</code>/<code>INV_POINTER=0x05</code>/<code>PARAM_HANDLE=0x06</code>/<code>PARAM_VALUE=0x07</code>/<code>JOB_CANCELLED=0x08</code>)完整翻译。</li>
<li><strong>术语对照</strong>CRYIF、CDO、Virtual Channel、Job Redirection、Crypto_JobType、Crypto_PrimitiveInfoType、Crypto_OperationModeType、Crypto_KeyElementIdType、Crypto_KeyFormat、Crypto_KeyState、CryIf_CallbackNotification、&lt;vi&gt;_&lt;ai&gt; 厂商命名约定(vendorId + vendorApiInfix)等 20+ 核心术语首次出现给出"中文(英文,缩写)"格式。</li>
<li><strong>局限说明</strong>:① 完整 ~70+ SWS_CryIf_NNNNN 规范项以分组形式覆盖(按 Init/Job Processing/Job Cancellation/Key Management 分类),未对每条逐字翻译;② 详细 C 函数签名以表格形式呈现(关键参数与返回类型),完整签名见原文 8.3 节。</li>
</ul>
</section>
</body>
</html>
+83
View File
@@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>P4 · Crypto 模块索引</title>
<link rel="stylesheet" href="../assets/style.css">
</head>
<body>
<header class="doc-header">
<h1>P4 · Crypto(密码服务)</h1>
<div class="meta">
<span>📚 模块:Crypto</span>
<span>📅 版本:AUTOSAR CP 4.4.0</span>
<span>🔄 状态:进行中(3/6 已完成)</span>
</div>
</header>
<nav class="doc-nav">
<a href="../index.html">← 总索引</a>
<a href="../PLAN.html">🗓️ 翻译计划</a>
<a href="../glossary.html">📖 术语表</a>
<a href="../QUALITY_RULES.html">📋 校对规则</a>
</nav>
<main>
<h2>📋 模块说明</h2>
<p>AUTOSAR <strong>密码服务(Crypto</strong>模块提供密码学功能(哈希、对称/非对称加密、MAC、随机数生成、密钥管理等)的标准化访问——含 CSM、CRYIF、CRYPTO、KeyM 四个 BSW 模块。</p>
<h2>📑 文档清单(6 篇)</h2>
<h3>📘 已完成(3 篇)</h3>
<div class="module-index">
<div class="module-card">
<h3><a href="AUTOSAR_EXP_UtilizationOfCryptoServices.html">AUTOSAR_EXP_UtilizationOfCryptoServices</a></h3>
<div class="desc">密码服务使用说明(13 页,3 层密码栈介绍)</div>
<span class="count done">A · 100%</span>
</div>
<div class="module-card">
<h3><a href="AUTOSAR_SRS_CryptoStack.html">AUTOSAR_SRS_CryptoStack</a></h3>
<div class="desc">密码栈需求(36 页,60+ SRS_CryptoStack_* 需求)</div>
<span class="count done">A · 100%</span>
</div>
<div class="module-card">
<h3><a href="AUTOSAR_SWS_CryptoInterface.html">AUTOSAR_SWS_CryptoInterface</a></h3>
<div class="desc">密码接口软件规范(41 页,25+ API,9 错误码)</div>
<span class="count done">A · 100%</span>
</div>
</div>
<h3>⚪ 待翻译(3 篇)</h3>
<div class="module-index">
<div class="module-card">
<h3>AUTOSAR_SWS_CryptoDriver</h3>
<div class="desc">密码驱动软件规范(81 页)</div>
<span class="count">0 / 81</span>
</div>
<div class="module-card">
<h3>AUTOSAR_SWS_KeyManager</h3>
<div class="desc">密钥管理器软件规范(113 页)</div>
<span class="count">0 / 113</span>
</div>
<div class="module-card">
<h3>AUTOSAR_SWS_CryptoServiceManager</h3>
<div class="desc">密码服务管理器软件规范(202 页)</div>
<span class="count">0 / 202</span>
</div>
</div>
<h2>📊 翻译进度</h2>
<p>3 / 6 篇完成(50%)。</p>
<p>已完成:EXP_UtilizationOfCryptoServices13)、SRS_CryptoStack36)、SWS_CryptoInterface41);待译:SWS_CryptoDriver81)、SWS_KeyManager113)、SWS_CryptoServiceManager202)。</p>
</main>
<footer class="doc-footer">
模块索引:P4_Crypto v1.0 · 维护:opencode translator · 2026-06-13
</footer>
</body>
</html>