diff --git a/translation_zh-CN/P4_Crypto/AUTOSAR_SWS_KeyManager.html b/translation_zh-CN/P4_Crypto/AUTOSAR_SWS_KeyManager.html new file mode 100644 index 0000000..2f95f02 --- /dev/null +++ b/translation_zh-CN/P4_Crypto/AUTOSAR_SWS_KeyManager.html @@ -0,0 +1,641 @@ + + +
+ +AUTOSAR 密钥管理(Key Manager, KeyM)模块由两个子模块组成:密钥子模块(Crypto Key Submodule)与证书子模块(Certificate Submodule)。
+密钥子模块提供 API 与配置项,用于引入或更新预定义的密码密钥材料。它充当密钥客户端(Key Client)以解读来自密钥服务器(Key Server)的数据,并创建相应的密钥材料。这些密钥被提供给密码服务管理器(Crypto Service Manager, CSM)。在密钥材料成功安装后,应用能够使用密码操作。这允许 OEM 在生产或维护阶段将密钥材料引入到 ECU,与应用分离。
+证书子模块提供 API 与配置,以操作证书。它允许定义证书槽(Certificate Slot)并将其按层级关联(如 PKI 中使用)。证书可以永久存储,如根证书(Root Certificate)或中间证书(Intermediate Certificate),以便使用证书链验证给定证书。此外,证书子模块允许访问证书元素或验证其内容。
+ +本规范为车辆密钥与证书管理系统提供 API 骨架。并非所有功能均已完全规范。这可能允许一些解释与实现的自由。尽管接口以通用与灵活的方式设计,仍可能在未来的 AUTOSAR 版本中变更。
+ +| 缩略语 | 描述 |
|---|---|
| KeyM | Key Manager(密钥管理器) |
| PKI | Public Key Infrastructure(公钥基础设施) |
| CSR | Certificate Signing Request(证书签名请求) |
| CSM | Crypto Service Manager(密码服务管理器) |
| CRL | Certificate Revocation List(证书撤销列表) |
| CA | Certificate Authority(证书授权机构) |
| OID | Object Identifier(对象标识符)。用于标识证书元素或组或证书元素列表的字节数组。 |
| NVM | Non-Volatile Memory(非易失性存储) |
| STBM | Synchronized Time-Base Manager(同步时间基准管理器) |
| DET | Default Error Tracer(默认错误追踪器) |
AUTOSAR_EXP_LayeredSoftwareArchitecture — 分层软件架构AUTOSAR_SRS_BSWGeneral — 基础软件通用需求AUTOSAR_SWS_BSWGeneral — 基础软件通用规范AUTOSAR_SWS_CryptoServiceManager — 密码服务管理器规范AUTOSAR_SRS_CryptoStack — 密码栈需求AUTOSAR 提供基础软件通用规范(SWS BSW General)[3],对密钥管理模块同样有效。因此 SWS BSW General [3] 应被视为密钥与证书管理模块的附加必备规范。
+ +密钥管理模块应(shall)与密码服务管理器及其底层模块一起使用。
+目前每个 CsmKey 仅支持单个 KeyElement(ID = 1)。
+ +本规范对特定汽车域无限制。
+ +本章列出 AUTOSAR KeyM 模块使用到的与其他模块的关系。
+ +KeyM 模块依赖于密码服务管理器(CSM)模块提供的密码算法与函数。KeyM 模块需要 API 函数以检索与设置密钥元素并验证证书签名,包括:
+KeyM 可配置为在非易失性存储(NVM)中存储密钥材料。这需要 NVM 的接口。
+ +证书验证周期的时间由同步时间基准管理器(STBM, Synchronized Time-Base Manager)提供。
+ +KeyM 满足的 RS_BRF_NNNNN 需求(如 RS_BRF_01000、RS_BRF_01056、RS_BRF_01456、RS_BRF_02031、RS_BRF_02032),KeyM 自身的 SWS_KeyM_NNNNN 规范项 ID 约 80+ 条(详细列表见原文第 6/7/8/10 章;编号范围 00001-00302)。
+ +KeyM 的 Crypto Key 子模块提供基于"会话"(Session)的 API 模式:
+KeyM_Start() 启动会话;KeyM_Prepare() 准备会话;KeyM_Update() 触发密钥更新(典型由诊断事件触发);KeyM_Finalize() 关闭会话;KeyM_Verify() 验证密钥。主要规范项([SWS_KeyM_NNNNN]):
+| ID | 功能描述 |
|---|---|
| SWS_KeyM_00001 | KeyM 的 Crypto Key 子模块应(shall)提供配置项以执行密钥操作 |
| SWS_KeyM_00002 | 对 KeyM 中证书子模块的支持应(shall)是可配置的 |
| SWS_KeyM_00003 | Crypto Key 子模块可(can)配置为执行密钥操作(密钥更新/获取) |
| SWS_KeyM_00004 | 会话通过 KeyM_Start() 调用启动;之后可使用密钥更新函数 |
| SWS_KeyM_00005 | 默认情况下,KeyM_Start() 函数不考虑任何输入数据 |
| SWS_KeyM_00006 | 可选地,如果配置启用了密钥处理器(Key Handler),则可调用密钥处理器 |
| SWS_KeyM_00007 | 如果配置选项启用了 KeyMCryptoKeyStartFinalizeFunctionEnabled,则在会话开始时调用密钥回调 |
| SWS_KeyM_00008 | 会话通过 KeyM_Finalize() 调用关闭;调用期间会进行最终化操作 |
| SWS_KeyM_00009 | KeyM_Finalize() 在所有密钥已成功更新时返回 E_OK |
| SWS_KeyM_00010 | 如果配置启用了 KeyMCryptoKeyVerifyFunctionEnabled,则执行验证 |
| SWS_KeyM_00011 | 如果配置启用了 KeyMCryptoKeyStartFinalizeFunctionEnabled,则执行开始/结束函数 |
| SWS_KeyM_00012 | 通过 KeyM_Update() 调用触发密钥更新(典型由诊断事件) |
| SWS_KeyM_00013 | 如果 KeyM_Update() 被调用且没有匹配密钥 ID,则 KeyM_Update() 立即返回 E_OK |
| SWS_KeyM_00014 | 如果 KeyM_Update() 被调用且 KeyMCryptoKeyGenerate 被设置,则 KeyM 触发密钥生成 |
| SWS_KeyM_00015 | 当 KeyM_Update() 被调用且识别出 KeyMCryptoKeyId 时,执行更新 |
| SWS_KeyM_00016 | 如果识别出密钥 ID 且 KeyMCryptoKeyGenerationType 为 CUSTOM,则调用密钥处理器 |
| SWS_KeyM_00017 | 如果识别出密钥 ID 且 KeyMCryptoKeyGenerationType 为 DEFINED,则使用预定义密钥 |
| SWS_KeyM_00018 | 如果 KeyMCryptoKeyStartFinalizeFunctionEnabled 被设置为 true,则调用开始/结束回调 |
| SWS_KeyM_00019 | 如果配置项 KeyMCryptoKeyUpdateFunctionEnabled 启用,则调用更新函数 |
| SWS_KeyM_00020 | 如果 KeyMCryptoKeyVerifyFunctionEnabled 启用,则调用验证函数 |
证书子模块提供证书管理功能:
+KeyM 初始化时(KeyM_Init()),证书子模块会从 NVM 检索永久存储的证书。
证书通过 KeyMCertificate 容器配置:
KeyMCertificateId:证书槽 ID;KeyMCertificateType:类型(ROOT/INTERMEDIATE/WORKING/LOWERPR);KeyMCertificateStorage:存储位置(NV/STATIC);KeyMCertificateLowerRef:下级证书引用(用于链验证)。证书操作模式:
+KeyM_ServiceCertificate() 添加新证书到工作槽;KeyM_ServiceCertificate() 添加根/中间证书(需事先配置证书槽);KeyM_VerifyCertificate()、KeyM_VerifyCertificates()、KeyM_VerifyCertificateChain() 验证证书。主要规范项:
+| ID | 功能描述 |
|---|---|
| SWS_KeyM_00021 | 如果 KeyMCertServiceCertificateFunctionEnabled 配置为 true,则启用 KeyM_ServiceCertificate()(由密钥主控触发) |
| SWS_KeyM_00022 | 初始化时,证书子模块从 NVM 检索永久存储的证书 |
| SWS_KeyM_00023 | 如果解析操作成功,则证书状态为 PARTIAL,等待进一步验证 |
| SWS_KeyM_00024 | 应(shall)至少有一个证书被定义为 PKI 的根证书 |
| SWS_KeyM_00025 | 通过 KeyM_ServiceCertificate() 调用存储证书以供验证 |
| SWS_KeyM_00026 | 证书解析过程在 KeyM_ServiceCertificate() 之后立即启动 |
| SWS_KeyM_00027 | 解析过程识别证书是否以 DER/PEM 格式提供 |
| SWS_KeyM_00028 | 通过 KeyM_VerifyCertificate()、KeyM_VerifyCertificates() 或 KeyM_VerifyCertificateChain() 按需验证证书 |
| SWS_KeyM_00029 | 至少以下验证步骤应(shall)成功:签名验证、有效期检查、撤销检查 |
| SWS_KeyM_00030 | 验证函数应(shall)返回 E_OK 当所有证书均有效 |
| SWS_KeyM_00031 | 验证函数应(shall)返回 E_NOT_OK 当至少一个证书无效 |
| SWS_KeyM_00032 | 验证函数应(shall)返回 KEYM_CERTIFICATE_INVALID 当证书格式错误 |
| SWS_KeyM_00033 | 验证函数应(shall)返回 KEYM_CERTIFICATE_EXPIRED 当证书过期 |
| SWS_KeyM_00034 | 验证函数应(shall)返回 KEYM_CERTIFICATE_REVOKED 当证书被撤销 |
| SWS_KeyM_00035 | 验证函数应(shall)返回 KEYM_CERTIFICATE_CHAIN_INCOMPLETE 当链不完整 |
| 错误码 | 值 | 含义 |
|---|---|---|
KEYM_E_UNINIT | 0x00 | KeyM 未初始化 |
KEYM_E_INIT_FAILED | 0x01 | 初始化失败 |
KEYM_E_PARAM_POINTER | 0x02 | 无效的指针 |
KEYM_E_PARAM_HANDLE | 0x03 | 无效的句柄 |
KEYM_E_PARAM_VALUE | 0x04 | 无效的参数值 |
KEYM_E_ALREADY_INITIALIZED | 0x05 | 已初始化 |
KEYM_E_UNCONFIGURED | 0x06 | 未配置 |
| 错误码 | 含义 |
|---|---|
KEYM_E_NVM_READ_FAILED | NVM 读取失败 |
KEYM_E_NVM_WRITE_FAILED | NVM 写入失败 |
KEYM_E_CERTIFICATE_INVALID | 证书无效 |
无。
+ +无(KeyM 不直接产生生产错误;由 Dem 报告)。
+ +无。
+ +Std_ReturnType、Std_VersionInfoType、Std_ConfigTypeCrypto_JobType、Crypto_KeyElementIdTypeKeyM_KH_UpdateOperationType、KeyM_CertElementIteratorType、KeyM_CryptoKeyIdType、KeyM_CertDataType| 类型 | 描述 |
|---|---|
KeyM_ConfigType | KeyM 抽象配置类型(SWS_KeyM_00041) |
KeyM_KH_UpdateOperationType | Key Handler 更新操作类型枚举(START/UPDATE/FINISH/SAVE) |
KeyM_CertElementIteratorType | 证书元素迭代器类型(用于 KeyM_CertElementGetFirst/Next()) |
KeyM_CryptoKeyIdType | 密钥 ID 类型(SWS_KeyM_00302) |
KeyM_CertDataType | 证书数据类型 |
| API | 签名 | 功能 |
|---|---|---|
KeyM_Init | void KeyM_Init(const KeyM_ConfigType* ConfigPtr) | 初始化 KeyM(SWS_KeyM_00043/00044/00045/00046) |
KeyM_Deinit | void KeyM_Deinit(void) | 反初始化 KeyM(SWS_KeyM_00047/00048) |
KeyM_GetVersionInfo | void KeyM_GetVersionInfo(Std_VersionInfoType* VersionInfoPtr) | 获取版本信息(SWS_KeyM_00049) |
| API | 签名 | 功能 |
|---|---|---|
KeyM_Start | Std_ReturnType KeyM_Start(void) | 启动密钥管理会话(SWS_KeyM_00050-...) |
KeyM_Prepare | Std_ReturnType KeyM_Prepare(void) | 准备密钥管理会话 |
KeyM_Update | Std_ReturnType KeyM_Update(void) | 更新密钥(诊断事件触发) |
KeyM_Finalize | Std_ReturnType KeyM_Finalize(void) | 关闭密钥管理会话 |
KeyM_Verify | Std_ReturnType KeyM_Verify(void) | 验证密钥 |
| API | 签名 | 功能 |
|---|---|---|
KeyM_ServiceCertificate | Std_ReturnType KeyM_ServiceCertificate(KeyM_ServiceCertificateType Service, const uint8* Data, uint32 Length) | 服务证书(添加/更新/删除) |
KeyM_SetCertificate | ... | 设置证书(用于静态证书) |
KeyM_GetCertificate | ... | 获取证书数据 |
KeyM_VerifyCertificates | Std_ReturnType KeyM_VerifyCertificates(void) | 验证所有证书 |
KeyM_VerifyCertificate | Std_ReturnType KeyM_VerifyCertificate(uint16 CertId) | 验证指定证书 |
KeyM_VerifyCertificateChain | ... | 验证证书链 |
KeyM_CertElementGet | ... | 获取证书元素(按 OID) |
KeyM_CertElementGetFirst | ... | 获取第一个证书元素 |
KeyM_CertElementGetNext | ... | 获取下一个证书元素(迭代) |
KeyM_CertGetStatus | ... | 获取证书状态 |
共 9 个证书处理 API 函数。
+ +| API | 签名 | 功能 |
|---|---|---|
KeyM_KH_Start | ... | Key Handler 开始回调(由应用实现) |
KeyM_KH_Prepare | ... | Key Handler 准备回调 |
KeyM_KH_Update | ... | Key Handler 更新回调 |
KeyM_KH_Finalize | ... | Key Handler 完成回调 |
KeyM_KH_Verify | ... | Key Handler 验证回调 |
KeyM_KH_ServiceCertificate | ... | Key Handler 服务证书回调 |
KeyM_CryptoKeyUpdateCallbackNotification | void KeyM_CryptoKeyUpdateCallbackNotification(...) | 密钥更新完成回调 |
KeyM_CryptoKeyFinalizeCallbackNotification | ... | 密钥最终化完成回调 |
KeyM_CryptoKeyVerifyCallbackNotification | ... | 密钥验证完成回调 |
KeyM_ServiceCertificateCallbackNotification | ... | 证书服务完成回调 |
KeyM_CertificateVerifyCallbackNotification | ... | 证书验证完成回调 |
共 11 个回调函数(5 个 Key Handler + 5 个 Callback Notification + 1 个 ServiceCertificate)。
+ +| API | 功能 |
|---|---|
KeyM_MainFunction | 主函数(前/后台处理) |
KeyM_MainBackgroundFunction | 后台函数(异步证书处理) |
Det_ReportError()(强制)Dem_SetEventStatus()(可选)KeyM 包含以下可配置接口:
+Csm_KeyElementSet()、Csm_KeyElementGet()、Csm_KeyCopy()、Csm_KeyGenerate()、Csm_KeyDerive()、Csm_KeyExchange()、Csm_SignatureVerify()、Nm_GetSynchronizedTime()、Os_GetCounterValue()、NvM_ReadBlock()、NvM_WriteBlock()、MemIf_Status()、MemIf_Read()、MemIf_Write()、Fee_Read()、Fee_Write()、EA_Read()、EA_Write() 等(详细列表见原文 8.6.3)。本章定义 KeyM 提供的服务接口(含 RTE Port Interface)。
+ +| 类型 | 描述 |
|---|---|
KeyM_ResultType | KeyM 操作结果类型枚举 |
KeyM_ServiceCertificateType | 服务证书操作类型枚举(ADD/UPDATE/REMOVE) |
KeyM_CertificateStatusType | 证书状态类型枚举(NOT_PARSED/PARTIAL/VALID/INVALID/EXPIRED/REVOKED) |
KeyM_CertElementType | 证书元素类型(OID 引用 + 值) |
KeyM_CertElementIdType | 证书元素 ID 类型 |
KeyM 提供以下客户端-服务器接口:
+KeyM_KeyManagement:密钥管理服务(Start/Prepare/Update/Finalize/Verify)KeyM_CertificateManagement:证书管理服务(ServiceCertificate/SetCertificate/GetCertificate/VerifyCertificate/VerifyCertificates/VerifyCertificateChain/CertElementGet/CertElementGetFirst/CertElementGetNext/CertGetStatus)KeyM 模块提供以下端口:
+KeyM_PPort:提供端口(Provider Port)KeyM_RPort:请求端口(Request Port,可选)KeyM_Start() 启动会话;KeyM_Update() 触发密钥更新;KeyM_Finalize() 关闭会话;与 9.1 类似,但 KeyM 依次更新多个密钥(按配置顺序)。
+ +KeyM_Start();KeyM_Prepare() 准备派生参数;KeyM_Update() 触发派生;Csm_KeyDerive() 派生密钥;KeyM_Finalize() 关闭会话。KeyM_ServiceCertificate(KEYM_SERVICE_ADD, data, len);KeyM_VerifyCertificate() 验证证书;KeyM_ServiceCertificate(KEYM_SERVICE_ADD, data, len);KeyM_VerifyCertificate() 验证证书;KeyM_ServiceCertificateCallbackNotification()。| 参数 | 描述 |
|---|---|
| KeyMDevErrorDetect | 开发错误检测开关 |
| KeyMVersionInfoApi | KeyM_GetVersionInfo() API 开关 |
| KeyMMainFunctionPeriod | KeyM_MainFunction() 调度周期(秒) |
| KeyMNvmJobProcessing | NVM 作业处理周期(秒) |
| KeyMServiceCertificateFunctionEnabled | KeyM_ServiceCertificate() 开关 |
包含 Crypto Key 子模块与 Certificate 子模块的通用配置。
+ +| 参数 | 描述 |
|---|---|
| KeyMCertificateId | 证书槽 ID |
| KeyMCertificateType | 证书类型(ROOT/INTERMEDIATE/WORKING/LOWERPR) |
| KeyMCertificateStorage | 存储位置(NV/STATIC) |
| KeyMCertificateLowerRef | 下级证书引用 |
| KeyMCertificateElementList | 证书元素列表 |
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementId | 元素 ID(OID 引用) |
| KeyMCertificateElementVerification | 验证配置引用 |
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementVerificationEnable | 验证开关 |
| KeyMCertificateElementRule | 验证规则引用列表 |
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementRuleId | 规则 ID |
| KeyMCertificateElementCondition | 条件引用 |
| KeyMCertificateElementConditionType | 条件类型(ALWAYS/EQUAL/LOWER/HIGHER) |
条件类型为 VALUE、ARRAY、SENDERRECEIVER 三种之一。
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementConditionPrimitiveType | 原语类型(EQUAL/LOWER/HIGHER) |
| KeyMCertificateElementConditionValue | 条件值 |
包含 KeyMCertificateElementConditionArrayElement 子容器列表。
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementConditionArrayElementIndex | 数组元素索引 |
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementConditionValueData | 条件值数据 |
| 参数 | 描述 |
|---|---|
| KeyMCertificateElementConditionSenderReceiverHandleId | 发送接收句柄 ID |
| 参数 | 描述 |
|---|---|
| KeyMCryptoKeyId | 密钥 ID |
| KeyMCryptoKeyGenerationType | 生成类型(DEFINED/CUSTOM) |
| KeyMCryptoKeyStartFinalizeFunctionEnabled | 开始/完成回调开关 |
| KeyMCryptoKeyUpdateFunctionEnabled | 更新回调开关 |
| KeyMCryptoKeyVerifyFunctionEnabled | 验证回调开关 |
| KeyMCryptoKeyNvmStorage | NVM 存储开关 |
| 参数 | 描述 |
|---|---|
| KeyMNvmBlockId | NVM 块 ID |
| KeyMNvmBlockLength | NVM 块长度 |
| KeyMNvmRef | NvMBlockDescriptor 引用 |
发布信息包括 KeyM 模块版本、配置变体、证书数量、密钥数量等。
+ +本节列出 AUTOSAR 4.4 中对 KeyM 不适用的需求(无具体条目;保留章节以保持与 SWS 模板一致)。
+ +校对轮次:L1 自动校对(2026-06-13)
+KEYM_E_UNINIT=0x00/INIT_FAILED=0x01/PARAM_POINTER=0x02/PARAM_HANDLE=0x03/PARAM_VALUE=0x04/ALREADY_INITIALIZED=0x05/UNCONFIGURED=0x06) + 3 个运行时错误(NVM_READ/WRITE_FAILED + CERTIFICATE_INVALID) + 4 个证书验证错误(KEYM_CERTIFICATE_INVALID/EXPIRED/REVOKED/CHAIN_INCOMPLETE)完整翻译。ROOT/INTERMEDIATE/WORKING/LOWERPR)+ 6 种证书状态(NOT_PARSED/PARTIAL/VALID/INVALID/EXPIRED/REVOKED)完整翻译。4 / 6 篇完成(67%)。
+5 / 6 篇完成(83%)。
-已完成:EXP_UtilizationOfCryptoServices(13)、SRS_CryptoStack(36)、SWS_CryptoInterface(41)、SWS_CryptoDriver(81);待译:SWS_KeyManager(113)、SWS_CryptoServiceManager(202)。
+已完成:EXP_UtilizationOfCryptoServices(13)、SRS_CryptoStack(36)、SWS_CryptoInterface(41)、SWS_CryptoDriver(81)、SWS_KeyManager(113);待译:SWS_CryptoServiceManager(202)。